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

openssl_pkcs7_sign

(PHP 4 >= 4.0.6)

openssl_pkcs7_sign - подписывает сообщение S/MIME.

Описание

bool openssl_pkcs7_sign (string infilename, string outfilename, mixed signcert, mixed privkey, array headers [, long flags [, string extracertsfilename]])

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

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

openssl_pkcs7_sign() принимает содержимое файла infilename и подписывает его с использованием сертификата и совпадающего private-ключа, специфицированных параметрами signcert и privkey .

headers это массив шапок/headers, которые будут присоединяться впереди данных после их подписывания (см. в openssl_pkcs7_encrypt() о формате этого параметра).

flags можно использовать для изменения вывода - см. PKCS7-константы; если не специфицирован, по умолчанию будет PKCS7_DETACHED.

extracerts специфицирует имя файла, содержащего узел дополнительных сертификатов для включения в подпись, что может использоваться, например, для того, чтобы принимающий мог проверить сертификат, используемый вами.

Пример 1. openssl_pkcs7_sign()
// сообщение, которое вы хотели бы подписать, чтобы принимающий/recipient // мог убедиться, что это именно вы его отправили $data = <<<EOD You have my authorization to spend $10,000 on dinner expenses. The CEO EOD; // сохранить сообщение в файл $fp = fopen("msg.txt", "w"); fwrite($fp, $data); fclose($fp); // зашифровать его if (openssl_pkcs7_sign("msg.txt", "signed.txt", "mycert.pem", array("mycert.pem", "mypassphrase"), array("To" => "joes@sales.com", // синтаксис с ключами "From: HQ <ceo@sales.com>", // синтаксис с индексами "Subject" => "Eyes only")) { // сообщение подписано - отправить его! exec(ini_get("sendmail_path") . " < signed.txt"); }

Примечание: эта функция была добавлена в 4.0.6.


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