top

Описание функции openssl-pkcs7-sign



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.
corner
My pencil ;)
Главная     Сервисы     Портфолио     Проги     Видео     Контакты     Ссылки     Текст