PHP Conference Nagoya 2025

gnupg_init

(PECL gnupg >= 0.4)

gnupg_initInitialisiert eine Verbindung

Beschreibung

gnupg_init(?array $options = null): resource

Parameter-Liste

options

Muss ein assoziatives Array sein. Es wird verwendet, um die Standardkonfiguration der Krypto-Engine zu ändern.

Konfigurationsänderungen
Schlüssel Typ Beschreibung
file_name string Der Dateiname des ausführbaren Programms, das dieses Protokoll implementiert. Üblicherweise ist das der Pfad des ausführbaren gpg-Programms.
home_dir string Der Verzeichnisname des Konfigurationsverzeichnisses. Er überschreibt auch die Umgebungsvariable GNUPGHOME, die für denselben Zweck verwendet wird.

Rückgabewerte

Eine GnuPG-Verbindungs-Ressource, die von anderen GnuPG-Funktionen benutzt wird.

Changelog

Version Beschreibung
PECL gnupg 1.5.0 Der Parameter options wurde hinzugefügt.

Beispiele

Beispiel #1 Prozedurales gnupg_init()-Beispiel mit Standardeinstellung

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

Beispiel #2 Prozedurales gnupg_init()-Beispiel mit geänderten Dateinamen und Home-Verzeichnis

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

Beispiel #3 OO (objektorientiertes) gnupg-Initialisierungsbeispiel mit Standardeinstellung

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

Beispiel #4 OO gnupg-Initialisierungsbeispiel mit geänderten Dateinamen und Home-Verzeichnis

<?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
7 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