## Constantes/options PKCS7

Les fonctions S/MIME utilisent des options qui sont spécifiées par un champ de bits. Les valeurs valides sont :

Constantes PKCS7
Constante | Description
--- | ---
`PKCS7_TEXT` (int) | Ajoute le texte plein en clair dans les en-têtes du message signé/chiffré. Lors du déchiffrement ou la vérification, il supprime purement et simplement ces données. Si le message chiffré ou signé n'est pas du type MIME, une erreur surviendra.
`PKCS7_BINARY` (int) | Normalement, le message est converti au format canonique qui utilise effectivement des `CR` et `LF` comme fin de ligne, comme demandé dans les spécifications de S/MIME. Lorsque cette option est activée, le message ne sera pas converti. Cela sert lorsque vous manipulez des données binaires qui ne sont pas au format MIME.
`PKCS7_NOINTERN` (int) | Lors de la vérification d'un message, les certificats (s'il y en a) inclus dans le message sont normalement utilisés pour rechercher le certificat de signature. Avec cette option, seul le certificat spécifié par le paramètre `untrusted_certificates_filename` de la fonction openssl_pkcs7_verify() est utilisé. Les certificats fournis peuvent toujours être utilisés, avec un niveau de confiance réduit.
`PKCS7_NOVERIFY` (int) | Ne vérifie pas les certificats des signataires d'un message signé.
`PKCS7_NOCHAIN` (int) | N'enchaîne pas les vérifications des signataires de certificats. C'est-à-dire, n'utilise pas les certificats contenu dans le message.
`PKCS7_NOCERTS` (int) | Lors de la signature d'un message, le certificat du signataire est normalement inclus. Avec cette option, c'est désactivé. Cela va réduire la taille du message, mais le vérificateur devra avoir une copie locale du certificat du signataire (passée au paramètre `untrusted_certificates_filename`, avec la fonction openssl_pkcs7_verify()).
`PKCS7_NOATTR` (int) | Normalement, lorsqu'un message est signé, un jeu d'attributs contenant l'heure de signature et l'algorithme symétrique supporté, est inclus dans le message. Avec cette option, il n'est pas inclus.
`PKCS7_DETACHED` (int) | Lors de la signature d'un message, utilise la signature en texte clair, avec le type MIME `"multipart/signed"`. C'est la valeur par défaut du paramètre `flags` pour la fonction openssl_pkcs7_sign(). Si vous annulez cette option, le message sera signé de manière opaque, ce qui résiste mieux à la traduction des relais mail (certains anciens serveurs mail corrompent les messages), mais empêche la lecture par les client emails qui ne connaissent pas S/MIME.
`PKCS7_NOSIGS` (int) | Ne vérifie pas les signatures d'un message
`PKCS7_NOOLDMIMETYPE` (int) | Disponible à partir de PHP 8.3.0. Définit l'en-tête HTTP Content-Type sur `application/pkcs7-mime` au lieu de `application/x-pkcs7-mime` pour chiffrer un message.