Las funciones CMS utilizan banderas que se especifican utilizando una máscara de bits que incluye una o más de las siguientes opciones:
| Constantes | Descripción | 
|---|---|
| OPENSSL_CMS_TEXT(int) | Añade el encabezado content type text/plainal mensaje cifrado/firmado.
        Al descifrar/verificar, estos encabezados se eliminan de la
        salida, si el mensaje descifrado o verificado no es del tipo MIMEtext/plainentonces se producirá un error. | 
| OPENSSL_CMS_BINARY(int) | Normalmente el mensaje de entrada se convierte a su forma "canónica"
        que en realidad utiliza CRyLFcomo fin de línea: tal como se requiere por la especificación CMS. Cuando
        esta opción está presente, ninguna traducción se realiza. Esto es útil al manejar datos binarios que pueden no estar en formato CMS. | 
| OPENSSL_CMS_NOINTERN(int) | Al verificar un mensaje, los certificados (si los hay)
        incluidos en el mensaje se utilizan normalmente para buscar el certificado
        de firma. Con esta opción, solo se utilizan los certificados especificados en
        el argumento untrusted_certificates_filenamede openssl_cms_verify().
        Los certificados proporcionados pueden seguir utilizándose como
        autoridades de certificación no fiables. | 
| OPENSSL_CMS_NOVERIFY(int) | No verifica el certificado del firmante de un mensaje firmado. | 
| OPENSSL_CMS_NOCERTS(int) | Al firmar un mensaje el certificado del firmante se
        incluye normalmente, con esta opción se excluye. Esto reducirá
        el tamaño del mensaje firmado pero el verificador debe tener una copia
        del certificado del firmante disponible localmente (pasado utilizando untrusted_certificates_filenamede
        openssl_cms_verify() por ejemplo). | 
| OPENSSL_CMS_NOATTR(int) | Normalmente cuando un mensaje es firmado, se incluyen un conjunto de atributos que incluyen la hora de firma y los algoritmos simétricos soportados. Con esta opción no se incluyen. | 
| OPENSSL_CMS_DETACHED(int) | Al firmar un mensaje, se utiliza la firma en texto claro
        con el tipo MIME "multipart/signed". Este es el
        comportamiento por defecto, si no se especifica ningúnflagsa openssl_cms_sign().
        Si se desactiva esta opción, el mensaje se firmará utilizando
        una firma opaca, que es más resistente a la traducción por
        los relés de correo pero no puede ser leída por los agentes de correo que no
        soportan S/MIME. | 
| OPENSSL_CMS_NOSIGS(int) | No intenta verificar las firmas de un mensaje | 
| OPENSSL_CMS_OLDMIMETYPE(int) | Disponible a partir de PHP 8.3.0.
        Establece el encabezado HTTP Content-Type en application/x-pkcs7-mimeen lugar deapplication/pkcs7-mimepara cifrar un mensaje. | 
