openssl_pkcs7_decrypt

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

openssl_pkcs7_decryptРасшифровывает S/MIME-сообщение

Описание

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

Функция расшифровывает S/MIME-сообщение, которое содержится в файле input_filename. Для расшифровки сообщения функция использует сертификат certificate и закрытый ключ private_key, который связан с сертификатом.

Список параметров

input_filename

output_filename

Функция расшифрует сообщение и запишет сообщение в файл, который указали в параметре output_filename.

certificate

private_key

Возвращаемые значения

Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.

Список изменений

Версия Описание
8.0.0 Параметр private_key теперь принимает экземпляр класса OpenSSLAsymmetricKey или OpenSSLCertificate; раньше принимался ресурс (resource), который принадлежал типу OpenSSL key или OpenSSL X.509 CSR.

Примеры

Пример #1 Пример использования функции openssl_pkcs7_decrypt()

<?php

// Переменные сертификата $cert и ключа $key содержат пару с личным сертификатом и закрытым ключом
$infilename = "encrypted.msg"; // Этот файл содержит зашифрованное сообщение
$outfilename = "decrypted.msg"; // Пользователю, который будет записывать сообщение в файл, требуются права на запись

if (openssl_pkcs7_decrypt($infilename, $outfilename, $cert, $key)) {
echo
"Функция расшифровала сообщение!";
} else {
echo
"Возникла ошибка при расшифровке!";
}

?>