查询

openssl_cms_verify()函数—用法及示例

「 验证 CMS 签名 」


函数名称:openssl_cms_verify()

适用版本:PHP 5 >= 5.4.0, PHP 7

函数描述:openssl_cms_verify() 函数用于验证 CMS 签名。

用法: openssl_cms_verify( string $input_filename, int $flags, string $certificates [, array $ca_info [, string $untrusted_certificates [, string $content [, string $pk7 [, string $sigfile [, int $encoding ]]]]]] ) : bool

参数:

  • $input_filename:输入文件名,包含要验证的 CMS 签名
  • $flags:可选参数,用于指定验证选项的位掩码。例如,使用 OPENSSL_CMS_NOINTERN 指定不验证内部证书
  • $certificates:包含用于验证签名的证书链的文件名。可以是一个单独的证书文件或包含多个证书的文件。
  • $ca_info:可选参数,用于指定证书颁发机构的附加信息的文件名。
  • $untrusted_certificates:可选参数,包含不受信任的证书的文件名。这些证书将被用于验证签名。
  • $content:可选参数,包含签名的原始内容的文件名。如果提供了此参数,则验证过程将检查签名是否与原始内容匹配。
  • $pk7:可选参数,包含 PKCS#7 格式签名的文件名。如果提供了此参数,则验证过程将使用该文件中的签名。
  • $sigfile:可选参数,包含签名的文件名。如果提供了此参数,则验证过程将使用该文件。
  • $encoding:可选参数,指定签名的编码方式。默认为 PKCS7_BINARY。

返回值:如果验证成功,则返回 true,否则返回 false。

示例:

$input_filename = 'signed_message.txt';
$flags = OPENSSL_CMS_NOINTERN;
$certificates = 'certificates.pem';
$ca_info = 'ca_info.pem';
$untrusted_certificates = 'untrusted_certificates.pem';
$content = 'original_content.txt';
$pk7 = 'signature.pk7';
$sigfile = 'signature.txt';
$encoding = PKCS7_BINARY;

if (openssl_cms_verify($input_filename, $flags, $certificates, $ca_info, $untrusted_certificates, $content, $pk7, $sigfile, $encoding)) {
    echo "验证成功!";
} else {
    echo "验证失败!";
}

以上示例演示了如何使用 openssl_cms_verify() 函数验证一个 CMS 签名。首先,我们提供了要验证的 CMS 签名的文件名、验证选项、用于验证签名的证书链文件名等参数。然后,使用 openssl_cms_verify() 函数进行验证。如果验证成功,则输出 "验证成功!",否则输出 "验证失败!"。

补充纠错
上一个函数: openssl_csr_export()函数
下一个函数: openssl_cms_read()函数
热门PHP函数
分享链接