Учебник РНР
Назад Вперёд

openssl_open

(PHP 4 >= 4.0.4)

openssl_open - открывает пломбированные данные.

Описание

bool openssl_open (string sealed_data, string open_data, string env_key, mixed priv_key_id)

Предупреждение!

Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.

Возвращает TRUE при успехе, FALSE при неудаче. При успехе открытые данные возвращаются в open_data .

openssl_open() открывает (дешифрует) sealed_data с использованием private ключа, ассоциированного с идентификатором ключа priv_key_id , и ключ конверта/envelope env_key и заполняет open_data дешифрованными данными. Ключ envelope генерируется, когда данные пломбированы и могут использоваться только одним специфическим private ключом. См. дополнительно openssl_seal() .

Пример 1. openssl_open()
// предполагается, что $sealed и $env_key содержат пломбированные данные // и наш envelope ключ, данные нам пломбировщиком. // извлечь private ключ из файла и готовить его $fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r"); $priv_key = fread($fp, 8192); fclose($fp); $pkeyid = openssl_get_privatekey($priv_key); // дешифровать данные и сохранить их в $open if (openssl_open($sealed, $open, $env_key, $pkeyid)) echo "here is the opened data: ", $open; else echo "failed to open data"; // освободить private ключ из памяти openssl_free_key($pkeyid);

См. также openssl_seal() .


Назад Оглавление Вперёд
openssl_get_publickey Вверх openssl_pkcs7_decrypt