svn: /phpdoc/ru/trunk/reference/openssl/functions/ openssl-x509-verify.xml
[email protected] (Andrey Gromov)
| Newsgroups | php.doc.ru |
|---|---|
| Message-ID | <[email protected]> |
rjhdby Sun, 16 Feb 2020 20:54:08 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=349229
Log:
new
Changed paths:
A phpdoc/ru/trunk/reference/openssl/functions/openssl-x509-verify.xml
Added: phpdoc/ru/trunk/reference/openssl/functions/openssl-x509-verify.xml
===================================================================
--- phpdoc/ru/trunk/reference/openssl/functions/openssl-x509-verify.xml (rev 0)
+++ phpdoc/ru/trunk/reference/openssl/functions/openssl-x509-verify.xml 2020-02-16 20:54:08 UTC (rev 349229)
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision$ -->
+<!-- EN-Revision: 349222 Maintainer: rjhdby Status: ready -->
+<!-- Reviewed: no -->
+
+<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.openssl-x509-verify">
+ <refnamediv>
+ <refname>openssl_x509_verify</refname>
+ <refpurpose>Проверка цифровой подписи сертификата x509 с помощью публичного ключа</refpurpose>
+ </refnamediv>
+
+ <refsect1 role="description">
+ &reftitle.description;
+ <methodsynopsis>
+ <type>int</type><methodname>openssl_x509_verify</methodname>
+ <methodparam><type>mixed</type><parameter>x509</parameter></methodparam>
+ <methodparam><type>mixed</type><parameter>pub_key_id</parameter></methodparam>
+ </methodsynopsis>
+ <para>
+ <function>openssl_x509_verify</function> проверяет, что сертификат
+ <parameter>x509</parameter> был подписан приватным ключем,
+ соответствующим публичному ключу
+ <parameter>pub_key_id</parameter>.
+ </para>
+ </refsect1>
+
+ <refsect1 role="parameters">
+ &reftitle.parameters;
+ <para>
+ <variablelist>
+ &openssl.param.x509;
+ <varlistentry>
+ <term><parameter>pub_key_id</parameter></term>
+ <listitem>
+ <para>
+ <type>resource</type> - ключ, возвращённый функцией
+ <function>openssl_get_publickey</function>
+ </para>
+ <para>
+ <type>string</type> - ключ в формате PEM, такого вида: : "-----BEGIN PUBLIC KEY-----
+ MIIBCgK..."
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect1>
+
+ <refsect1 role="returnvalues">
+ &reftitle.returnvalues;
+ <para>
+ Возвращает 1, если подпись корректна, 0, если нет, и -1 в случае ошибки.
+ </para>
+ </refsect1>
+
+ <refsect1 role="examples">
+ &reftitle.examples;
+ <para>
+ <example>
+ <title>Пример использования <function>openssl_x509_verify</function> </title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+$hostname = "news.php.net";
+$ssloptions = array(
+ "capture_peer_cert" => true,
+ "capture_peer_cert_chain" => true,
+ "allow_self_signed"=> false,
+ "CN_match" => $hostname,
+ "verify_peer" => true,
+ "SNI_enabled" => true,
+ "SNI_server_name" => $hostname,
+);
+
+$ctx = stream_context_create( array("ssl" => $ssloptions) );
+$result = stream_socket_client("ssl://$hostname:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $ctx);
+$cont = stream_context_get_params($result);
+$x509 = $cont["options"]["ssl"]["peer_certificate"];
+$certparsed = openssl_x509_parse($x509);
+
+foreach($cont["options"]["ssl"]["peer_certificate_chain"] as $chaincert)
+{
+ $chainparsed = openssl_x509_parse($chaincert);
+ $chain_public_key = openssl_get_publickey($chaincert);
+ $r = openssl_x509_verify($x509, $chain_public_key);
+ if ($r==1)
+ {
+ echo $certparsed['subject']['CN'];
+ echo " was digitally signed by ";
+ echo $chainparsed['subject']['CN']."\n";
+ }
+}
+?>
+]]>
+ </programlisting>
+ </example>
+
+ </para>
+ </refsect1>
+
+ <refsect1 role="seealso">
+ &reftitle.seealso;
+ <para>
+ <simplelist>
+ <member><function>openssl_verify</function></member>
+ <member><function>openssl_get_publickey</function></member>
+ </simplelist>
+ </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
+-->
Property changes on: phpdoc/ru/trunk/reference/openssl/functions/openssl-x509-verify.xml
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL
\ No newline at end of property