Statement on glibc/iconv Vulnerability

gnupg_init

(PECL gnupg >= 0.4)

gnupg_initИнициализировать GnuPG

Описание

gnupg_init(?array $options = null): resource

Список параметров

options

Параметр принимает ассоциативный массив. Он используется для изменения конфигурации криптографического механизма по умолчанию.

Переопределение конфигурации
Ключ Тип Описание
file_name string Имя файла исполняемой программы, реализующей протокол, который обычно является путём к исполняемому файлу gpg.
home_dir string Имя каталога конфигурации. Оно также переопределяет переменную окружения GNUPGHOME, которая используется для той же цели.

Возвращаемые значения

Возвращает ресурс (resource) GnuPG, который используется другими функциями GnuPG.

Список изменений

Версия Описание
1.5.0 Добавлен параметр options.

Примеры

Пример #1 Пример использования gnupg_init() в процедурном стиле с настройками по умолчанию

<?php
$res
= gnupg_init();
?>

Пример #2 Пример использования gnupg_init() в процедурном стиле с переопределённым именем файла и домашним каталогом

<?php
$res
= gnupg_init(["file_name" => "/usr/bin/gpg2", "home_dir" => "/var/www/.gnupg"]);
?>

Пример #3 Пример использования инициализатора gnupg в объектно-ориентированном стиле с настройками по умолчанию

<?php
$gpg
= new gnupg();
?>

Пример #4 Пример использования в объектно-ориентированном стиле с переопределённым именем файла и домашним каталогом

<?php
$gpg
= new gnupg(["file_name" => "/usr/bin/gpg2", "home_dir" => "/var/www/.gnupg"]);
?>

add a note

User Contributed Notes 2 notes

up
7
der_axel at gmx dot de
6 years ago
Set the correct GNUPG environment, before you call gnupg_init()!

The current FPM/FastCGI/Module User must have read - if you import write - permissions on that directory. You won't get an error message, if something is not correct.
Without a correct environment, all other gnupg functions will not work as you expected.

<?php
// Enter your .gnupg environment
putenv('GNUPGHOME=/var/www/vhosts/yourdomain/.gnupg');
error_reporting(E_ALL);
$res = gnupg_init();
gnupg_seterrormode($res,GNUPG_ERROR_WARNING);
$info = gnupg_keyinfo($res, 'your-key-id');
echo
"Key - Info<pre>";
var_dump($info);
echo
"</pre>";
?>
up
2
djmaze
2 years ago
Make sure home_dir option is not too many characters or else private keys fail.

You will notice that functions take a long time (seconds).

Commandline test yield error:
> gpg: can't connect to the agent: IPC connect call failed

Executing `gpg-agent --daemon --homedir /very/long/path/to/.gnupg` gave the error.
> socket name for '/very/long/path/to/.gnupg/S.gpg-agent.extra' is too long

So you must check that home_dir + '/S.gpg-agent.extra' is:
* < 107 characters on Linux
* < 104 on BSD 4.4
To Top