Files
php-doc-ru/reference/rnp/functions/rnp-ffi-set-pass-provider.xml
2022-11-01 22:55:44 +03:00

112 lines
4.3 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: 79bc1248b2295d9c9f0837d1ddcaea9d7c2853a7 Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.rnp-ffi-set-pass-provider" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>rnp_ffi_set_pass_provider</refname>
<refpurpose>Устанавливает callback-функцию поставщика паролей</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>rnp_ffi_set_pass_provider</methodname>
<methodparam><type>RnpFFI</type><parameter>ffi</parameter></methodparam>
<methodparam><type>callable</type><parameter>password_callback</parameter></methodparam>
</methodsynopsis>
<para>
Устанавливает callback-функцию поставщика пароля. Функция может запрашивать пароль на стандартном входе
(если PHP скрипт выполняется в среде командной строки), отображать диалог GUI или предоставлять пароль
любым другим возможным способом. Запрашиваемые пароли используются для шифрования или расшифровки
секретных ключей или выполнения операций симметричного шифрования/дешифрования.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>ffi</parameter></term>
<listitem>
<para>
&rnp.parameter.ffi-description;
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>password_callback</parameter></term>
<listitem>
<para>
Функция, которая будет вызываться для каждого запроса пароля. У неё следующая сигнатура:
<methodsynopsis>
<type>bool</type><methodname><replaceable>password_callback</replaceable></methodname>
<methodparam><type>string</type><parameter>key_fp</parameter></methodparam>
<methodparam><type>string</type><parameter>pgp_context</parameter></methodparam>
<methodparam><type>string</type><parameter role="reference">password</parameter></methodparam>
</methodsynopsis>
<simplelist>
<member><literal>$key_fp</literal> - Цифровой отпечаток, если таковой имеется. Может быть пустым.</member>
<member><literal>$pgp_context</literal> - Строка, описывающая, почему запрашивается ключ.</member>
<member><literal>$password</literal> - Ссылка на строку пароля, в которой должен храниться предоставленный пароль.</member>
</simplelist>
Callback-функция должна возвращать &true;, если пароль был успешно установлен&return.falseforfailure;.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает &true; в случае успешного выполнения&return.falseforfailure;.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример простой callback-функции</title>
<programlisting role="php">
<![CDATA[
<?php
function password_callback(string $key_fp, string $pgp_context, string &$password)
{
$password = "password";
return true;
}
$ffi = rnp_ffi_create('GPG', 'GPG');
rnp_ffi_set_pass_provider($ffi, 'password_callback');
]]>
</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
-->