查詢

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函式
分享連結