PHP 8.5.0 Alpha 2 available for testing

gnupg_import

(PECL gnupg >= 0.3)

gnupg_importImporta una clave

Descripción

gnupg_import(resource $identifier, string $keydata): array|false

Importa la clave keydata y devuelve un array con la información sobre el proceso de importación.

Parámetros

identifier

El identificador gnupg, generado por una llamada a la función gnupg_init() o a la función gnupg.

keydata

La clave a importar.

Valores devueltos

En caso de éxito, esta función devuelve un array de información sobre el proceso de importación. En caso de fallo, esta función devuelve false.

Ejemplos

Ejemplo #1 Ejemplo con gnupg_import() (Estilo procedimental)

<?php
$res
= gnupg_init();
$info = gnupg_import($res,$keydata);
print_r($info);
?>

Ejemplo #2 Ejemplo con gnupg_import() (Estilo orientado a objetos)

<?php
$gpg
= new gnupg();
$info = $gpg->import($keydata);
print_r($info);
?>

add a note

User Contributed Notes 4 notes

up
10
gst
3 years ago
In case anybody tries to import keys from file and ends up with return value "false", and absolutely no errors or warnings whatsoever.

gpg module still operates the same way as command line / bash invoked gpg.

If you are runnig a script from under apache, gpg is trying to acces it's ~/.gnupg that likely does not exist for apache user www-data or equivalent:

# su www-data -s /bin/bash -c "gpg"
gpg: Fatal: can't create directory '/var/www/.gnupg': Permission denied

You simply need to created that folder and chown it to apache user www-data or equivalent.

# mkdir /var/www/.gnupg
# chown www-data:www-data /var/www/.gnupg
up
5
php at cdauth dot de
17 years ago
The return array consists of the following values:
(
[imported] => (int),
[unchanged] => (int),
[newuserids] => (int),
[newsubkeys] => (int),
[secretimported] => (int),
[secretunchanged] => (int),
[newsignatures] => (int),
[skippedkeys] => (int),
[fingerprint] => (string)
)

When invalid content is passed, all values, even skippedkeys, is 0. The fingerprint value does not exist then.
up
0
Anonymous
3 days ago
The function does not work if the keydata string starts with "-----BEGIN PGP MESSAGE-----" but works if the keydata starts with "-----BEGIN PGP PRIVATE KEY BLOCK-----" (I guess that was the same for the ending so I str_replace both)
up
-2
dimitri at digirati dot com dot br
16 years ago
I recommend that the key may be generated in shell command line, then you export the keys using this group of commands.

gpg --export -a "User Name" > public.key
gpg --export-secret-key -a "User Name" > private.key

to use it, at the import and use it for encryption and decryption.

<?php

$GnuPG
= new gnupg();

$PublicData = file_get_contents('public.key');
$PrivateData = file_get_contents('public.key');

$PublicKey = $GnuPG->import($PublicData);
$PrivateKey = $GnuPG->import($PrivateData);

echo
'Public Key : ',$PublicKey['fingerprint'],' & Private Key : ',$PrivateKey['fingerprint'];

?>
To Top