openssl_pkcs7_decrypt

S/MIME 暗号化されたメッセージを復号する

説明

bool openssl_pkcs7_decrypt(
    string $input_filename,
    string $output_filename,
    #[\SensitiveParameter]OpenSSLCertificatestring $certificate,
    #[\SensitiveParameter]OpenSSLAsymmetricKeyOpenSSLCertificatearraystringnull $private_key = null
)

input_filename で指定したファイル中の S/MIME 暗号化されたメッセージを、 certificateprivate_key で 指定した証明書とそれに関連付けられた秘密鍵を用いて復号します。

パラメータ

input_filename

output_filename

復号したメッセージは、output_filename で指定したファイルに出力されます。

certificate

private_key

戻り値

成功した場合に true を、失敗した場合に false を返します。

変更履歴

バージョン 説明
8.0.0 private_key は、 OpenSSLAsymmetricKey または OpenSSLCertificate クラスのインスタンスを受け入れるようになりました。 これより前のバージョンでは、 OpenSSL key または OpenSSL X.509 CSR 型のリソースを受け入れていました。

例1 openssl_pkcs7_decrypt の例

<?php
// $cert および $key にはあなたの個人証明書と秘密鍵が含まれており、
// あなたはS/MIMEメッセージの受信者であると仮定します。
$infilename = "encrypted.msg";  // 暗号化されたメッセージを含むファイル
$outfilename = "decrypted.msg"; // このファイルへの書き込み権限が必要

if (openssl_pkcs7_decrypt($infilename, $outfilename, $cert, $key)) {
    echo "復号しました!";
} else {
    echo "復号に失敗しました!";
}
?>