« openssl_pkcs12_read
openssl_pkcs7_encrypt »

openssl_pkcs7_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

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

説明

function openssl_pkcs7_decrypt(
    string $input_filename,
    string $output_filename,
    #[\SensitiveParameter] OpenSSLCertificate|string $certificate,
    #[\SensitiveParameter] OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null $private_key = null
): bool

input_filename で指定したファイル中の S/MIME 暗号化されたメッセージを、 certificate と private_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 "復号に失敗しました!";
}
?>

関連キーワード:
メッセージ   復号   openssl   pkcs   filename   暗号化   decrypt   private   OpenSSL   input   output   OpenSSLCertificate   certificate   SensitiveParameter   OpenSSLAsymmetricKey   証明書   秘密   cert   infilename   outfilename   read   encrypt   関連   成功   履歴
関連する関数・ページ:
function.openssl-cms-decrypt   function.openssl-pkcs7-sign   function.openssl-pkcs7-encrypt   function.openssl-pkcs12-export-to-file   function.openssl-public-decrypt   function.openssl-private-decrypt