PHPのお勉強!

PHP TOP

CMS (暗号メッセージシンタックス) 関連のフラグ/定数

CMS 関連の関数は、以下のうちひとつ以上の値をビットフィールドを使って指定することで、フラグを利用します。

CMS 関連の定数
定数 説明
OPENSSL_CMS_TEXT (int) 暗号化済み/署名済み のメッセージに対して text/plain のヘッダを追加します。 復号化 または 検証する際に、これらのヘッダは出力から削除されます - もし 複号化済み/検証済み メッセージの MIMEタイプ が text/plain でない場合、エラーが発生します。
OPENSSL_CMS_BINARY (int) 通常、入力されるメッセージは 行末を CRLF として用いる "canonical" フォーマットに変換されます: これは、CMS の仕様です。 このオプションが指定されると、変換は行われません。 これは、 CMS フォーマットではない可能性があるバイナリデータを扱うのに便利です。
OPENSSL_CMS_NOINTERN (int) メッセージを検証する際、 通常は(もしあれば)メッセージに含まれる証明書を 署名に用いた証明書として探します。 このオプションを使うと、 openssl_cms_verify() 関数の untrusted_certificates_filename 引数で指定した証明書だけを検証に使うようになります。 ここで証明書を指定しても、 それは信頼されない証明書のまま引き続き使われます。
OPENSSL_CMS_NOVERIFY (int) 署名されたメッセージの、署名者の証明書を検証しません。
OPENSSL_CMS_NOCERTS (int) メッセージに署名する場合、 通常は署名者の証明書がメッセージに付加されます - このオプションを使うと、その証明書を除去できます。 証明書を除去すると、署名済みのメッセージのサイズが減りますが、 (たとえば、openssl_cms_verify() 関数に untrusted_certificates_filename を使って渡すなどして) 検証する側が署名者の証明書をローカルに持っておく必要があります。
OPENSSL_CMS_NOATTR (int) 通常、メッセージが署名済みの場合、 署名した時刻やサポートされている共通鍵アルゴリズムの情報が含まれる、 一連の属性情報が付加されます。 このオプションを使うと、その属性を含めないようにすることができます。
OPENSSL_CMS_DETACHED (int) メッセージに署名する際、 MIMEタイプ "multipart/signed" を使って、 平文で署名します。 これは、openssl_cms_sign() で何も flags を指定しなかったときのデフォルトの動作です。 このオプションを無効にした場合、メッセージは opaque 署名を使って署名されます。 これは、メールがリレーされる際の変換を防ぐ一方で、 S/MIME をサポートしていないエージェントでは読めなくなります。
OPENSSL_CMS_NOSIGS (int) メッセージの署名を検証しません。
OPENSSL_CMS_OLDMIMETYPE (int) PHP 8.3.0 以降で利用可能です。 メッセージを暗号化する場合に、content-type の値として application/pkcs7-mime ではなく application/x-pkcs7-mime を設定します。

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top