Las funciones S/MIME hacen uso de banderas que están especificadas utilizando un campo de bit que puede incluir uno o más de los siguientes valores:
| Constante | Descripción | 
|---|---|
| PKCS7_TEXT | Añade cabeceras de tipo de contenido texto/plano al mensaje encriptado/firmado. Si se desencripta o verifica, se desmontan esas cabeceras de la salida - si el mensaje desencriptado o verificado no es del tipo MIME texto/plano ocurrirá un error. | 
| PKCS7_BINARY | Normalmente el mensaje de entrada es convertido a formato "canónico" en el que de hecho se usa CR y LF como final de línea: como se require por la especificación S/MIME. Cuando esta opción está presente, no se realiza ninguna traducción. Ésto es útil cuando se maneja información binaria que puede no estar en formato MIME. | 
| PKCS7_NOINTERN | Cuando se verifica un mensaje, los certificados (si
        hay alguno) incluidos en el mensaje son buscados normalmente por el
        certificado de firma. Con esta opción sólo los
        certificados especificados el el parámetro extracertsde openssl_pkcs7_verify() se usan.
        Sin embargo, los certificados proporcionados pueden aún ser
        usados como AC que no son de confianza. | 
| PKCS7_NOVERIFY | No verificar los certificados de firmas de un mensaje firmado. | 
| PKCS7_NOCHAIN | No encadenar la verificación de certificados de firmas: es decir, no usar los certificados en el mensaje firmado como AC que no es de confianza. | 
| PKCS7_NOCERTS | Cuando se firma un mensaje, el certificado del firmante normalmente está
        incluido - 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 que esté disponible localmente (usando al pasar extracertsa
        openssl_pkcs7_verify() por ejemplo). | 
| PKCS7_NOATTR | Normalmente cuando un mensaje está firmado se incluyen un conjunto de atributos como el momento de la firma y los algoritmos simétricos soportados. Con esta opción todos éstos no se incluyen. | 
| PKCS7_DETACHED | Cuando se firma un mensaje, se usa la firma de texto claro con el tipo
        MIME "multiparte/firmado". Esto es lo predeterminado
        si no se especifican algunos flagsa
        openssl_pkcs7_sign().
        Si se desactiva esta opción, el mensaje será firmado usando
        la firma opaca, que es más resistente a traducciones por transmisiones de correo,
        pero no puede ser leída por agentes de correo que no soporten S/MIME. | 
| PKCS7_NOSIGS | No poner a prueba y verificar las firmas de un mensaje | 
Nota:
Estas constantes fueron añadidas en la versión 4.0.6.