mirror of
https://github.com/php/doc-ru.git
synced 2025-08-15 23:42:35 +00:00

git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@344193 c90b9560-bf6c-de11-be94-00142212c4b1
168 lines
6.0 KiB
XML
168 lines
6.0 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- $Revision$ -->
|
||
<!-- EN-Revision: 904d0aeccde44f12b8e87e326febc091bf3466f9 Maintainer: rjhdby Status: ready -->
|
||
<!-- Reviewed: yes Maintainer: lex -->
|
||
|
||
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.openssl-pkcs7-sign">
|
||
<refnamediv>
|
||
<refname>openssl_pkcs7_sign</refname>
|
||
<refpurpose>Подписать сообщение S/MIME</refpurpose>
|
||
</refnamediv>
|
||
|
||
<refsect1 role="description">
|
||
&reftitle.description;
|
||
<methodsynopsis>
|
||
<type>bool</type><methodname>openssl_pkcs7_sign</methodname>
|
||
<methodparam><type>string</type><parameter>infilename</parameter></methodparam>
|
||
<methodparam><type>string</type><parameter>outfilename</parameter></methodparam>
|
||
<methodparam><type>mixed</type><parameter>signcert</parameter></methodparam>
|
||
<methodparam><type>mixed</type><parameter>privkey</parameter></methodparam>
|
||
<methodparam><type>array</type><parameter>headers</parameter></methodparam>
|
||
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer>PKCS7_DETACHED</initializer></methodparam>
|
||
<methodparam choice="opt"><type>string</type><parameter>extracerts</parameter></methodparam>
|
||
</methodsynopsis>
|
||
<para>
|
||
<function>openssl_pkcs7_sign</function> берет содержимое файла
|
||
<parameter>infilename</parameter> и подписывает его с использованием сертификата
|
||
<parameter>signcert</parameter> и закрытого ключа <parameter>privkey</parameter>.
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="parameters">
|
||
&reftitle.parameters;
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term><parameter>infilename</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Файл, который нужно подписать.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>outfilename</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Файл, в который будет записана цифровая подпись.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>signcert</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Сертификат X.509, который будет использован для подписи.
|
||
См. <link linkend="openssl.certparams">параметры ключа/сертификата</link>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>privkey</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
<parameter>privkey</parameter> задается секретным ключем, соответствующим сертификату.
|
||
См. <link linkend="openssl.certparams">параметры открытого/секретного ключа</link>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>headers</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
<parameter>headers</parameter> задается массивом заголовков,
|
||
которые будут добавлены в начало данных после подписания. (см. <function>openssl_pkcs7_encrypt</function>
|
||
для получения дополнительной информации о формате этого параметра).
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>flags</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
<parameter>flags</parameter> используется для настройки вывода. См. <link
|
||
linkend="openssl.pkcs7.flags">константы PKCS7</link>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>extracerts</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
<parameter>extracerts</parameter> может содержать имя файла,
|
||
в котором хранятся дополнительные сертификаты для добавления их
|
||
к подписи, например для облегчения верификации подписи разными пользователями.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="returnvalues">
|
||
&reftitle.returnvalues;
|
||
<para>
|
||
&return.success;
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="examples">
|
||
&reftitle.examples;
|
||
<para>
|
||
<example>
|
||
<title>Пример использования <function>openssl_pkcs7_sign</function></title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
// сообщение, которое вы хотите подписать для того, чтобы получатели могли
|
||
// проверить, что его послали именно вы
|
||
$data = <<<EOD
|
||
|
||
Разрешаю потратить на обед с контрагентом не более 100,000 рублей.
|
||
|
||
Ваш директор.
|
||
EOD;
|
||
// сохраняем сообщение в фалй
|
||
$fp = fopen("msg.txt", "w");
|
||
fwrite($fp, $data);
|
||
fclose($fp);
|
||
// шифруем
|
||
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "file://mycert.pem",
|
||
array("file://mycert.pem", "mypassphrase"),
|
||
array("To" => "joes@example.com", // ассоциативный синтаксис
|
||
"From: HQ <ceo@example.com>", // индексированный синтаксис
|
||
"Subject" => "Представительские расходы")
|
||
)) {
|
||
// сообщение подписано - отправляем!
|
||
exec(ini_get("sendmail_path") . " < signed.txt");
|
||
}
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
</refsect1>
|
||
|
||
</refentry>
|
||
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|