## PKCS7 フラグ/定数

S/MIME 関数はビットフィールドを使用して指定したフラグを使用します。 このビットフィールドには、以下の値を一つ以上含むことが可能です。

PKCS7 定数
定数 | 説明
--- | ---
`PKCS7_TEXT` (int) | `text/plain` content 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` を設定します。
`PKCS7_NOSMIMECAP` (int) | PHP 8.5.0 以降で利用可能です。 S/MIME の機能 (SMIMECapabilities) を署名に含めません。
`PKCS7_CRLFEOL` (int) | PHP 8.5.0 以降で利用可能です。 出力の行末として `CRLF` を使用します。
`PKCS7_NOCRL` (int) | PHP 8.5.0 以降で利用可能です。 PKCS7 構造に CRL を含めません。
`PKCS7_NO_DUAL_CONTENT` (int) | PHP 8.5.0 以降で利用可能です。 重複したコンテンツを含めないことで、署名済みコンテンツの重複を回避します。

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open