S/MIME 関数はビットフィールドを使用して指定したフラグを使用します。 このビットフィールドには、以下の値を一つ以上含むことが可能です。
| 定数 | 説明 | 
|---|---|
| PKCS7_TEXT(int) | text/plaincontent type ヘッダを暗号化/署名されたメッセージに
          追加します。復号化または認証を行う際には、このヘッダは出力から
          取り除かれます。復号化または認証されたメッセージが MIME
          型text/plainでない場合、エラーとなります。 | 
| PKCS7_BINARY(int) | 通常は、入力されたメッセージは CRおよびLFを行端として使用した
          「正規化」された形式に変換されます。こらは、S/MIME の規格に
          基づくものです。このオプションが指定された場合、変換は行われません。
          この機能は、MIME 形式でないバイナリデータを処理する際に
          便利です。 | 
| PKCS7_NOINTERN(int) | メッセージを認証する際に、通常、メッセージに含まれる証明書が
          証明書にサインする際に検索されます。
          このオプションでは、
          openssl_pkcs7_verify() の untrusted_certificates_filenameパラメータで指定した証明書
          のみが使用されます。しかし、指定された証明書を信頼されていな
          い CA として使用することも可能です。 | 
| PKCS7_NOVERIFY(int) | サインつきメッセージをサインした証明書の署名について 検証しません。 | 
| PKCS7_NOCHAIN(int) | サインを行った側の証明書の認証の連鎖を行いません。 この場合、サイン付きのメッセージにある証明書を未認証の CA として使用しません。 | 
| PKCS7_NOCERTS(int) | メッセージにサインする際、通常はサインをする人の証明書が挿入
          されますが、このオプションを指定した場合はそうなりません。これに
          よりサイン付きのメッセージのサイズは小さくなりますが、認証
          側が(例えば、openssl_pkcs7_verify() の untrusted_certificates_filenameを用いて渡すことにより)
          サインをした人の証明書のコピーをローカルに用意する必要があります。 | 
| PKCS7_NOATTR(int) | 通常、メッセージがサインされる時、サインした時間やサポートされる 対象アルゴリズムを含む一連の属性が付加されます。このオプションを 指定した場合、それらの属性は付加されません。 | 
| PKCS7_DETACHED(int) | メッセージにサインをする際、MIME型 "multipart/signed"を指定してクリアテキストでサインを行います。これは、
          openssl_pkcs7_sign() において
          フラグを指定しなかった場合のflagsパラメータのデフォルトです。このオプションをオフにした場合、
          メッセージは不透明なサインによりサインされます。これは、
          メールリレイによる変換に対してより耐性がありますが、S/MIME を
          サポートしないメールエージェントでは読むことはできません。 | 
| PKCS7_NOSIGS(int) | メッセージにサインや認証を試みません。 | 
| PKCS7_NOOLDMIMETYPE(int) | PHP 8.3.0 以降で利用可能です。
          メッセージを暗号化する場合に、content-type の値として application/x-pkcs7-mimeではなくapplication/pkcs7-mimeを設定します。 | 
