|
(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.
|
|