You CAN list all keys in the keyring, you only have to pass an empty string ''.
<?php
$gpg = new gnupg();
$info = $gpg -> keyinfo('');
print_r($info);
?>
That's it! ;)
(PECL gnupg >= 0.1)
gnupg_keyinfo — Gibt ein Array mit Informationen über alle Schlüssel zurück, die dem gegebenen Muster entsprechen
identifier
Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.
pattern
Das Muster, das mit den Schlüsseln verglichen werden soll.
Gibt ein Array mit Informationen über alle Schlüssel, die dem übergebenen Muster
entsprechen oder false
, wenn ein Fehler auftritt.
Beispiel #1 Prozedurales gnupg_keyinfo()-Beispiel
<?php
$res = gnupg_init();
$info = gnupg_keyinfo($res, 'test');
print_r($info);
?>
Beispiel #2 OO (objektorientiertes) gnupg_keyinfo()-Beispiel
<?php
$gpg = new gnupg();
$info = $gpg->keyinfo("test");
print_r($info);
?>
You CAN list all keys in the keyring, you only have to pass an empty string ''.
<?php
$gpg = new gnupg();
$info = $gpg -> keyinfo('');
print_r($info);
?>
That's it! ;)
Returns an array of information blocks. An information block looks like
<?php
array (
'disabled' => <bool>,
'expired' => <bool>,
'revoked' => <bool>,
'is_secret' => <bool>,
'can_sign' => <bool>,
'can_encrypt' => <bool>,
'uids' => <array of uid blocks>,
'subkeys' => <array of subkey blocks>,
)
?>
An uid data block looks like
<?php
array (
'name' => <string>,
'comment' => <string>,
'email' => <string>,
'uid' => <string>,
'revoked' => <bool>,
'invalid' => <bool>,
)
?>
A subkey block looks like
<?php
array (
'fingerprint' => <string>,
'keyid' => <string>,
'timestamp' => <int>,
'expires' => <int>,
'is_secret' => <bool>,
'invalid' => <bool>,
'can_encrypt' => <bool>,
'can_sign' => <bool>,
'disabled' => <bool>,
'expired' => <bool>,
'revoked' => <bool>,
),
?>
It appears that listing *all* keys is not possible:
<?php
$gpg -> keyinfo(); // throws an error
$gpg -> keyinfo('*'); // is matched literally, not treated as a shell wildcard
$gpg -> keyinfo('.*'); // is matched literally, not treated as a regex wildcard
?>
This seems like a glaring omission to me.