Les fonctions CMS utilise des drapeaux qui sont spécifiés utilisant un masque de bit qui inclus une ou plusieurs des valeurs suivantes :
| Constantes | Description | 
|---|---|
| OPENSSL_CMS_TEXT | Ajoute l'en-tête content type text/plain au message chiffré/signé. Lors du déchiffrement/vérification, ces en-têtes sont enlevés de la sortie, si le message déchiffré ou vérifié n'est pas du type MIME text/plain alors une erreur surviendra. | 
| OPENSSL_CMS_BINARY | Normalement le message d'entrée est converti en sa forme "canonique"
        qui en réalité utilise CRetLFcomme fin de ligne: tel que requis par la spécification CMS. Quand
        cette option est présente, aucune translation n'est effectué. Ceci
        est utile lors de la gestion de données binaire qui peuvent ne pas
        être en format CMS. | 
| OPENSSL_CMS_NOINTERN | Lors de la vérification d'un message, les certificats (le cas échéant)
        inclus dans le message sont normalement recherchés pour le certificat
        de signature. Avec cette option, seuls les certificats spécifiés dans
        le paramètre untrusted_certificates_filenamede openssl_cms_verify() sont utilisés.
        Les certificats fournis peuvent cependant toujours être utilisés comme
        des autorités de certification non fiables. | 
| OPENSSL_CMS_NOVERIFY | Ne vérifie pas le certificat du signataire d'un message signé. | 
| OPENSSL_CMS_NOCERTS | Lors de la signature d'un message le certificat du signataire est
        normalement inclus, avec cette option il est exclus. Ceci réduira
        la taille du message signé mais le vérificateur doit avoir une copie
        du certificat du signataire disponible localement (passé en utilisant untrusted_certificates_filenamede
        openssl_cms_verify() par exemple). | 
| OPENSSL_CMS_NOATTR | Normalement quand un message est signé, un jeu d'attributs sont inclus qui inclus l'heure de signature et les algorithmes symétriques supportés. Avec cette options ils ne sont pas inclus. | 
| OPENSSL_CMS_DETACHED | Lors de la signature d'un message, la signature cleartext est utilisé
        avec le MIME type "multipart/signed". Ceci est le
        comportement par défaut, si vous ne spécifiez aucunflagsà openssl_cms_sign().
        Si vous désactivez cette option, le message sera signé en utilisant
        une signature opaque, qui est plus résistante à la translation par
        les relais mail mais ne peut pas être lu par les agents mail qui ne
        supportent pas S/MIME. | 
| OPENSSL_CMS_NOSIGS | Ne tente pas de vérifier les signatures d'un message |