【PHP8.x】OPENSSL_CMS_BINARY定数の使い方
OPENSSL_CMS_BINARY定数の使い方について、初心者にもわかりやすく解説します。
基本的な使い方
OPENSSL_CMS_BINARY定数は、PHPのOpenSSL拡張機能において、CMS(Cryptographic Message Syntax)関連の処理結果をバイナリ形式で出力することを指定する定数です。この定数は、主にopenssl_cms_sign()やopenssl_cms_encrypt()といった、デジタル署名や暗号化を行うCMS関連の関数で、出力データの形式を制御するためのオプション(フラグ)として使用されます。
具体的には、CMSによって署名されたデータや暗号化されたデータが、DER(Distinguished Encoding Rules)という標準的な形式のバイナリデータとして生成されることを意味します。この定数を指定することで、アプリケーションはBase64エンコードなどのテキスト変換がされていない、生のバイナリデータを直接取得できるようになります。
通常、この定数を指定しない場合、CMS関連の関数は出力データをBase64エンコードされたテキスト形式(PEM形式など)で返すことが多いですが、OPENSSL_CMS_BINARYを指定することで、その挙動を変更します。これは、生成されたCMSデータを他のシステムやプロトコルに、そのままのバイナリ形式で渡す必要がある場合に特に重要です。例えば、特定の通信プロトコルがDER形式のCMSバイナリを要求する場合や、データの効率的な処理のためにテキストエンコードを避けたい場合にこの定数が役立ちます。セキュリティ関連のシステムを開発する際に、データの形式を正確に制御するために不可欠な定数の一つです。
構文(syntax)
1<?php 2openssl_cms_sign('path/to/input.txt', 'path/to/output.cms', 'file:///path/to/certificate.pem', 'file:///path/to/private_key.pem', [], OPENSSL_CMS_BINARY);
引数(parameters)
引数なし
引数はありません
戻り値(return)
戻り値なし
戻り値はありません