【PHP8.x】openssl_pkcs7_verify関数の使い方
openssl_pkcs7_verify関数は、PKCS#7形式で署名されたデータの署名を検証する関数です。この関数は、特定のデジタルコンテンツが、信頼できる発行元によって署名され、かつ内容が改ざんされていないことを確認するために使用されます。
具体的には、入力されたPKCS#7形式のデータに対し、署名者の証明書と信頼できる認証局(CA)の証明書チェーンを用いて、署名が有効であるかを調べます。例えば、ダウンロードしたソフトウェアパッケージや電子メールの添付ファイルなどが本物であるか、途中で悪意のある変更が加えられていないかを判断する際に非常に役立ちます。
この関数は、検証したい署名付きのファイルパス、署名者の公開鍵証明書、信頼するCA証明書のファイルパス、および検証結果を出力するためのファイルパスなどを引数として受け取ります。検証が成功すれば、データが正当であることを示し、失敗すれば署名が無効であるか、データが破損している可能性を示します。セキュアなシステムを構築する上で、データの整合性と認証を保証するための重要な機能を提供します。
基本的な使い方
構文(syntax)
<?php
openssl_pkcs7_verify(
string $filename,
int $flags,
?string $signercertfile = null,
array $cainfo = [],
?string $extracertsfile = null
): bool;
?>
引数(parameters)
string $input_filename, int $flags, string|array|null $signers_certificates_filename = null, array|string|null $ca_info = [], array|string|null $untrusted_certificates_filename = null, string|null $content = null, string|null $output_filename = null
- string $input_filename: 検証するPKCS#7署名ファイルへのパス
- int $flags: 検証の挙動を制御するフラグ
- string|array|null $signers_certificates_filename: 検証対象の署名者の証明書ファイルへのパス(複数指定可能)
- array|string|null $ca_info: CA証明書(信頼できる証明書発行機関)のパスまたは情報
- array|string|null $untrusted_certificates_filename: untrusted証明書ファイルへのパス(複数指定可能)
- string|null $content: 検証対象の元のコンテンツ(指定しない場合はファイルから読み込まれる)
- string|null $output_filename: 検証結果の詳細を出力するファイルへのパス
戻り値(return)
int|bool
openssl_pkcs7_verify 関数は、PKCS#7 署名付きデータの検証結果を示す整数値、または検証に失敗した場合は FALSE を返します。検証が成功した場合は 1、有効な証明書チェーンが見つからなかった場合は 0 が返されます。