Las funciones S/MIME utilizan opciones que se especifican mediante un campo de bits. Los valores válidos son:
| Constante | Descripción | 
|---|---|
| PKCS7_TEXT(int) | Añade el texto en claro en los encabezados del mensaje firmado/cifrado. Al descifrar o verificar, se eliminan simplemente estos datos. Si el mensaje cifrado o firmado no es del tipo MIME, se producirá un error. | 
| PKCS7_BINARY(int) | Normalmente, el mensaje se convierte al formato canónico
        que utiliza efectivamente CRyLFcomo fin de línea, como se solicita en las especificaciones de S/MIME.
        Cuando esta opción está activada, el mensaje no se convertirá. Esto es útil cuando se manipulan datos binarios que no están en formato MIME. | 
| PKCS7_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 utiliza
        el certificado especificado por el
        argumento untrusted_certificates_filenamede la función
        openssl_pkcs7_verify(). Los certificados proporcionados pueden seguir utilizándose,
        con un nivel de confianza reducido. | 
| PKCS7_NOVERIFY(int) | No verifica los certificados de los firmantes de un mensaje firmado. | 
| PKCS7_NOCHAIN(int) | No encadena las verificaciones de los certificados de los firmantes. Es decir, no utiliza los certificados contenidos en el mensaje. | 
| PKCS7_NOCERTS(int) | Al firmar un mensaje, el certificado del firmante
        se incluye normalmente. Con esta opción, esto se desactiva. Esto reducirá el tamaño del mensaje,
        pero el verificador deberá tener una copia local del certificado
        del firmante (pasado al argumento untrusted_certificates_filename, con la función
        openssl_pkcs7_verify()). | 
| PKCS7_NOATTR(int) | Normalmente, cuando se firma un mensaje, se incluye un conjunto de atributos que contiene la hora de firma y el algoritmo simétrico soportado, en el mensaje. Con esta opción, no se incluye. | 
| PKCS7_DETACHED(int) | Al firmar un mensaje, se utiliza la firma en texto claro, con el tipo MIME "multipart/signed".
        Este es el valor por defecto del argumentoflagspara la función openssl_pkcs7_sign().
        Si se anula esta opción, el mensaje se firmará de
        manera opaca, lo que resiste mejor a la traducción
        de los relés de correo (algunos antiguos servidores de correo corrompen los mensajes), pero impide la lectura por los clientes de correo que no conocen S/MIME. | 
| PKCS7_NOSIGS(int) | No verifica las firmas de un mensaje | 
| PKCS7_NOOLDMIMETYPE(int) | Disponible a partir de PHP 8.3.0.
        Establece el encabezado HTTP Content-Type en application/pkcs7-mimeen lugar deapplication/x-pkcs7-mimepara cifrar un mensaje. | 
