1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-25 16:22:18 +01:00
Files
archived-doc-ru/reference/openssl/constants.xml
2024-01-03 00:40:58 +03:00

805 lines
28 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 5380fa1f30a0beacd62aec0d331939015f395fd6 Maintainer: aur Status: ready -->
<!-- Reviewed: no -->
<appendix xml:id="openssl.constants" xmlns="http://docbook.org/ns/docbook">
&reftitle.constants;
&extension.constants;
<section xml:id="openssl.purpose-check">
<title>Флаги проверки</title>
<variablelist>
<varlistentry xml:id="constant.x509-purpose-ssl-client">
<term>
<constant>X509_PURPOSE_SSL_CLIENT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.x509-purpose-ssl-server">
<term>
<constant>X509_PURPOSE_SSL_SERVER</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.x509-purpose-ns-ssl-server">
<term>
<constant>X509_PURPOSE_NS_SSL_SERVER</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.x509-purpose-smime-sign">
<term>
<constant>X509_PURPOSE_SMIME_SIGN</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.x509-purpose-smime-encrypt">
<term>
<constant>X509_PURPOSE_SMIME_ENCRYPT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.x509-purpose-crl-sign">
<term>
<constant>X509_PURPOSE_CRL_SIGN</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.x509-purpose-any">
<term>
<constant>X509_PURPOSE_ANY</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="openssl.padding">
<title>Флаги заполнения для ассиметричного шифрования</title>
<variablelist>
<varlistentry xml:id="constant.openssl-pkcs1-padding">
<term>
<constant>OPENSSL_PKCS1_PADDING</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-sslv23-padding">
<term>
<constant>OPENSSL_SSLV23_PADDING</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-no-padding">
<term>
<constant>OPENSSL_NO_PADDING</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-pkcs1-oaep-padding">
<term>
<constant>OPENSSL_PKCS1_OAEP_PADDING</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="openssl.key-types">
<title>Типы ключей</title>
<variablelist>
<varlistentry xml:id="constant.openssl-keytype-rsa">
<term>
<constant>OPENSSL_KEYTYPE_RSA</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-keytype-dsa">
<term>
<constant>OPENSSL_KEYTYPE_DSA</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-keytype-dh">
<term>
<constant>OPENSSL_KEYTYPE_DH</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-keytype-ec">
<term>
<constant>OPENSSL_KEYTYPE_EC</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Эта константа доступна, только если PHP скомпилирован с OpenSSL 0.9.8+.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="openssl.pkcs7.flags">
<title>Флаги/константы <acronym>PKCS7</acronym></title>
<para>
Функции S/MIME используют флаги, которые определяются как набор битов,
который может включать одну или несколько следующих констант:
<table>
<title>Константы <acronym>PKCS7</acronym></title>
<tgroup cols="2">
<thead>
<row>
<entry>Константа</entry>
<entry>Описание</entry>
</row>
</thead>
<tbody>
<row xml:id="constant.pkcs7-text">
<entry>
<constant>PKCS7_TEXT</constant>
(<type>int</type>)
</entry>
<entry>
Добавляет заголовок содержимого text/plain в зашифрованное
или подписанное сообщение. При расшифровке или проверке заголовки
будут получены при выводе. Если после расшифровки или проверки полученное
сообщение не имеет MIME-тип text/plain, произойдёт ошибка.
</entry>
</row>
<row xml:id="constant.pkcs7-binary">
<entry>
<constant>PKCS7_BINARY</constant>
(<type>int</type>)
</entry>
<entry>
Обычно входящее сообщение приводится к «каноничному» формату,
что эффективно при использовании <literal>CR</literal> и <literal>LF</literal>
в конце строки: это требуется сертификацией S/MIME. Когда данная опция указана,
проблем с трансляцией символов конца строки не происходит. Это удобно
в случае обработки бинарных данных, которые могут быть не в формате MIME.
</entry>
</row>
<row xml:id="constant.pkcs7-nointern">
<entry>
<constant>PKCS7_NOINTERN</constant>
(<type>int</type>)
</entry>
<entry>
Обычно при проверке сообщения во включённых в него сертификатах (если есть)
выполняется поиск подписанного сертификата.
Эту опцию указывают только для сертификатов, переданных в параметр
<parameter>untrusted_certificates_filename</parameter> функции <function>openssl_pkcs7_verify</function>.
Все прочие сертификаты остаются неподтверждёнными центром сертификации.
</entry>
</row>
<row xml:id="constant.pkcs7-noverify">
<entry>
<constant>PKCS7_NOVERIFY</constant>
(<type>int</type>)
</entry>
<entry>Не проверять подписантов сертификата подписанного сообщения.</entry>
</row>
<row xml:id="constant.pkcs7-nochain">
<entry>
<constant>PKCS7_NOCHAIN</constant>
(<type>int</type>)
</entry>
<entry>
Не проверять подписантов сертификата по цепочке: то есть не использовать
сертификаты в подписанном сообщении как неавторизованные центром сертификации.
</entry>
</row>
<row xml:id="constant.pkcs7-nocerts">
<entry>
<constant>PKCS7_NOCERTS</constant>
(<type>int</type>)
</entry>
<entry>
При подписании сообщения сертификат подписанта обычно включается
в сообщение — с данной опцией сертификат не добавляется. Это позволяет снизить
размер подписанного сообщения, но проверяющий должен иметь копию сертификата подписанта,
доступную локально (это не требуется при использовании параметра
<parameter>untrusted_certificates_filename</parameter> функции
<function>openssl_pkcs7_verify</function>).
</entry>
</row>
<row xml:id="constant.pkcs7-noattr">
<entry>
<constant>PKCS7_NOATTR</constant>
(<type>int</type>)
</entry>
<entry>
Обычно, когда сообщение подписано, в набор атрибутов также включается
время подписания и поддерживаемый симметричный алгоритм. С помощью данной опции
такое добавление не происходит.
</entry>
</row>
<row xml:id="constant.pkcs7-detached">
<entry>
<constant>PKCS7_DETACHED</constant>
(<type>int</type>)
</entry>
<entry>При подписании сообщения, используйте подписание в открытом виде (cleartext signing)
с MIME-типом <literal>"multipart/signed"</literal>. Это выполняется по умолчанию,
если не указывать ничего в <parameter>flags</parameter> функции
<function>openssl_pkcs7_sign</function>.
Если выключить эту опцию, сообщение будет подписано с использованием opaque signing,
что более устойчиво к передаче почтой, но не может быть прочитано почтовыми агентами, которые
не поддерживают S/MIME.</entry>
</row>
<row xml:id="constant.pkcs7-nosigs">
<entry>
<constant>PKCS7_NOSIGS</constant>
(<type>int</type>)
</entry>
<entry>Не пытаться проверить подписи у сообщения</entry>
</row>
<row xml:id="constant.pkcs7-nooldmimetype">
<entry>
<constant>PKCS7_NOOLDMIMETYPE</constant>
(<type>int</type>)
</entry>
<entry>
Доступно начиная с PHP 8.3.0.
Устанавливает тип содержимого <literal>application/pkcs7-mime</literal>
вместо <literal>application/x-pkcs7-mime</literal> для шифрования сообщения.
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</section>
<section xml:id="openssl.cms.flags">
<title>Флаги/Константы <acronym>CMS</acronym></title>
<para>
Функции CMS используют флаги, которые задаются с помощью
битового поля, которое может включать одно или несколько следующих значений:
<table>
<title>Константы <acronym>CMS</acronym></title>
<tgroup cols="2">
<thead>
<row>
<entry>Константа</entry>
<entry>Описание</entry>
</row>
</thead>
<tbody>
<row xml:id="constant.openssl-cms-text">
<entry>
<constant>OPENSSL_CMS_TEXT</constant>
(<type>int</type>)
</entry>
<entry>
Добавляет заголовки content-type text/plain в зашифрованное/подписанное
сообщение. При расшифровке или проверке эти заголовки удаляются из вывода —
если расшифрованное или проверенное сообщение не относится к MIME-типу
text/plain, произойдёт ошибка.
</entry>
</row>
<row xml:id="constant.openssl-cms-binary">
<entry>
<constant>OPENSSL_CMS_BINARY</constant>
(<type>int</type>)
</entry>
<entry>
Обычно входное сообщение преобразовывается в «каноничный» формат, который
эффективно использует символы <literal>CR</literal> и <literal>LF</literal>
в качестве конца строки: как требует спецификация CMS. Когда
присутствует эта опция, перевод не выполняется. Это полезно при обработке
двоичных данных, которые могут быть не в формате CMS.
</entry>
</row>
<row xml:id="constant.openssl-cms-nointern">
<entry>
<constant>OPENSSL_CMS_NOINTERN</constant>
(<type>int</type>)
</entry>
<entry>
При проверке сообщения сертификаты (если есть), включённые в сообщение,
обычно проверяются на наличие сертификата подписи. С этой опцией используются
только сертификаты, указанные в параметре <parameter>untrusted_certificates_filename</parameter>
функции <function>openssl_cms_verify</function>.
Однако предоставленные сертификаты можно использовать как ненадёжные центры сертификации.
</entry>
</row>
<row xml:id="constant.openssl-cms-noverify">
<entry>
<constant>OPENSSL_CMS_NOVERIFY</constant>
(<type>int</type>)
</entry>
<entry>
Не проверять сертификат подписавшего у подписанного сообщения.
</entry>
</row>
<row xml:id="constant.openssl-cms-nocerts">
<entry>
<constant>OPENSSL_CMS_NOCERTS</constant>
(<type>int</type>)
</entry>
<entry>
При подписании сообщения сертификат подписывающей стороны обычно
включается — с этой опцией он исключается. Это уменьшит размер
подписанного сообщения, но у проверяющего должна быть копия сертификата
подписавшего, доступная локально (например, переданная в параметр <parameter>untrusted_certificates_filename</parameter>
функции <function>openssl_cms_verify</function>).
</entry>
</row>
<row xml:id="constant.openssl-cms-noattr">
<entry>
<constant>OPENSSL_CMS_NOATTR</constant>
(<type>int</type>)
</entry>
<entry>
Обычно при подписании сообщения включается набор атрибутов,
который включает время подписи и поддерживаемые симметричные алгоритмы.
С этой опцией они не включены.
</entry>
</row>
<row xml:id="constant.openssl-cms-detached">
<entry>
<constant>OPENSSL_CMS_DETACHED</constant>
(<type>int</type>)
</entry>
<entry>
При подписании сообщения используйте подпись открытым текстом с MIME-типом
<literal>"multipart/signed"</literal>. Это значение по умолчанию,
если вы не укажете никаких <parameter>flags</parameter> для
<function>openssl_cms_sign</function>.
Если вы отключите эту опцию, сообщение будет подписано с использованием
непрозрачной подписи, которая более устойчива к переводу почтовыми
ретрансляторами, но не может быть прочитана почтовыми агентами,
не поддерживающими S/MIME.
</entry>
</row>
<row xml:id="constant.openssl-cms-nosigs">
<entry>
<constant>OPENSSL_CMS_NOSIGS</constant>
(<type>int</type>)
</entry>
<entry>Не пытаться проверять подписи в сообщении</entry>
</row>
<row xml:id="constant.openssl-cms-oldmimetype">
<entry>
<constant>OPENSSL_CMS_OLDMIMETYPE</constant>
(<type>int</type>)
</entry>
<entry>
Доступно начиная с PHP 8.3.0.
Устанавливает тип содержимого <literal>application/x-pkcs7-mime</literal>
вместо <literal>application/pkcs7-mime</literal> для шифрования сообщения.
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</section>
<section xml:id="openssl.signature-algos">
<title>Алгоритмы подписи</title>
<variablelist>
<varlistentry xml:id="constant.openssl-algo-dss1">
<term>
<constant>OPENSSL_ALGO_DSS1</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-algo-sha1">
<term>
<constant>OPENSSL_ALGO_SHA1</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Используется как алгоритм по умолчанию для функций <function>openssl_sign</function> и
<function>openssl_verify</function>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-algo-sha224">
<term>
<constant>OPENSSL_ALGO_SHA224</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-algo-sha256">
<term>
<constant>OPENSSL_ALGO_SHA256</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-algo-sha384">
<term>
<constant>OPENSSL_ALGO_SHA384</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-algo-sha512">
<term>
<constant>OPENSSL_ALGO_SHA512</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-algo-rmd160">
<term>
<constant>OPENSSL_ALGO_RMD160</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-algo-md5">
<term>
<constant>OPENSSL_ALGO_MD5</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-algo-md4">
<term>
<constant>OPENSSL_ALGO_MD4</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-algo-md2">
<term>
<constant>OPENSSL_ALGO_MD2</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Эта константа доступна, только если
PHP скомпилирован с поддержкой MD2. Для этого нужно передать в
-DHAVE_OPENSSL_MD2_H CFLAG при компиляции PHP и включить md2 при компиляции OpenSSL 1.0.0+.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="openssl.ciphers">
<title>Алгоритмы шифрования</title>
<variablelist>
<varlistentry xml:id="constant.openssl-cipher-rc2-40">
<term>
<constant>OPENSSL_CIPHER_RC2_40</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-cipher-rc2-128">
<term>
<constant>OPENSSL_CIPHER_RC2_128</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-cipher-rc2-64">
<term>
<constant>OPENSSL_CIPHER_RC2_64</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-cipher-des">
<term>
<constant>OPENSSL_CIPHER_DES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-cipher-3des">
<term>
<constant>OPENSSL_CIPHER_3DES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
</variablelist>
<variablelist>
<varlistentry xml:id="constant.openssl-cipher-aes-128-cbc">
<term>
<constant>OPENSSL_CIPHER_AES_128_CBC</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-cipher-aes-192-cbc">
<term>
<constant>OPENSSL_CIPHER_AES_192_CBC</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-cipher-aes-256-cbc">
<term>
<constant>OPENSSL_CIPHER_AES_256_CBC</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="openssl.constversion">
<title>Константы версий</title>
<variablelist>
<varlistentry xml:id="constant.openssl-version-text">
<term>
<constant>OPENSSL_VERSION_TEXT</constant>
(<type>string</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-version-number">
<term>
<constant>OPENSSL_VERSION_NUMBER</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
</simpara>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="openssl.constsni">
<title>Константа SNI (Server Name Indication)</title>
<variablelist>
<varlistentry xml:id="constant.openssl-tlsext-server-name">
<term>
<constant>OPENSSL_TLSEXT_SERVER_NAME</constant>
(<type>string</type>)
</term>
<listitem>
<simpara>
Независимо от доступности SNI.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<note>
<para>
Эта константа требует PHP собранного
с библиотекой OpenSSL версии 0.9.8j или выше.
</para>
</note>
</section>
<section xml:id="openssl.constants.other">
<title>Другие константы</title>
<variablelist>
<varlistentry xml:id="constant.openssl-raw-data">
<term>
<constant>OPENSSL_RAW_DATA</constant>
(<type>bool</type>)
</term>
<listitem>
<simpara>
Если константа <constant>OPENSSL_RAW_DATA</constant> передана
в функции <function>openssl_encrypt</function> или <function>openssl_decrypt</function>,
данные возвращаются как есть.
Если константа не указана, вызывающей стороне возвращаются данные в кодировке Base64.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-zero-padding">
<term>
<constant>OPENSSL_ZERO_PADDING</constant>
(<type>bool</type>)
</term>
<listitem>
<simpara>
По умолчанию операции шифрования дополняются стандартным заполнением блока,
а заполнение проверяется и удаляется при дешифровании.
Если константа <constant>OPENSSL_ZERO_PADDING</constant> передана в параметр <parameter>options</parameter>
функций <function>openssl_encrypt</function> или <function>openssl_decrypt</function>,
то заполнение не выполняется, общий объем
зашифрованных или расшифрованных данных должен быть кратен размеру
блока, иначе возникнет ошибка.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-encoding-smime">
<term>
<constant>OPENSSL_ENCODING_SMIME</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Указывает, что выбрана кодировка S/MIME.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-encoding-der">
<term>
<constant>OPENSSL_ENCODING_DER</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Указывает, что выбрана кодировка <acronym>DER</acronym> (Distinguished Encoding Rules).
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.openssl-encoding-pem">
<term>
<constant>OPENSSL_ENCODING_PEM</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Указывает, что выбрана кодировка <acronym>PEM</acronym> (Privacy-Enhanced Mail).
</simpara>
</listitem>
</varlistentry>
</variablelist>
</section>
</appendix><!-- 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
-->