CakeFest 2024: The Official CakePHP Conference

gnupg_init

(PECL gnupg >= 0.4)

gnupg_initInitialise une connexion

Description

gnupg_init(?array $options = null): resource

Liste de paramètres

options

Doit être un tableau associatif. Il est utilisé pour modifier la configuration par défaut du moteur cryptographique.

Remplacement de la configuration
Clé Type Description
file_name string C'est le nom de fichier du programme exécutable implémentant ce protocole qui est généralement le chemin de l'exécutable gpg.
home_dir string Il s'agit du nom du répertoire de configuration. Il remplace également la variable d'environnement GNUPGHOME qui est utilisée dans le même but.

Valeurs de retour

Une ressource de connexion GnuPG, utilisée par les autres fonctions GnuPG.

Historique

Version Description
1.5.0 Le paramètre options a été ajouté.

Exemples

Exemple #1 Exemple avec gnupg_init() avec réglage par défaut (Style procédural)

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

Exemple #2 Exemple avec gnupg_init() avec un nom de fichier et un répertoire d'origine surchargés (Style procédural)

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

Exemple #3 Exemple avec gnupg_init() avec réglage par défaut (Style orienté objet)

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

Exemple #4 Exemple avec gnupg_init() avec un nom de fichier et un répertoire d'origine surchargés (Style orienté objet)

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