CMS 関連の関数は、以下のうちひとつ以上の値をビットフィールドを使って指定することで、フラグを利用します。
定数 | 説明 |
---|---|
OPENSSL_CMS_TEXT
(int)
|
暗号化済み/署名済み のメッセージに対して text/plain のヘッダを追加します。 復号化 または 検証する際に、これらのヘッダは出力から削除されます - もし 複号化済み/検証済み メッセージの MIMEタイプ が text/plain でない場合、エラーが発生します。 |
OPENSSL_CMS_BINARY
(int)
|
通常、入力されるメッセージは
行末を CR と LF として用いる
"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 を設定します。
|