Signatur
Beschreibung
gnupg_geterrorinfo() liefert detaillierte Informationen über den zuletzt aufgetretenen Fehler bei einer GnuPG-Operation. Das zurückgegebene Array enthält einen numerischen Fehlercode (gpgerr_code), eine lesbare Quellangabe (gpgerr_source) sowie eine menschenlesbare Fehlermeldung (gpgerr_str).
Die Funktion ist besonders nützlich, wenn eine vorherige GnuPG-Funktion – wie gnupg_encrypt(), gnupg_decrypt() oder gnupg_sign() – fehlgeschlagen ist und man mehr als nur ein false als Rückgabewert benötigt. Damit lässt sich gezielt auf unterschiedliche Fehlerklassen reagieren, z. B. fehlende Schlüssel, ungültige Passphrasen oder Netzwerkprobleme beim Keyserver-Zugriff.
Diese Funktion setzt ein gültiges GnuPG-Ressource-Handle voraus, das zuvor mit gnupg_init() erzeugt wurde. Im OO-Stil der PECL-Erweiterung steht die äquivalente Methode GnuPG::geterrorinfo() zur Verfügung.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $identifier Pflicht | resource | Das GnuPG-Ressource-Handle, das mit gnupg_init() erzeugt wurde. |
Rückgabewert
gpgerr_code(int) – Numerischer GnuPG-Fehlercodegpgerr_source(string) – Quelle des Fehlers (z. B. Unbekannt, GPGME)gpgerr_str(string) – Lesbare Fehlermeldung als Zeichenkette
Beispiele
Fehlermeldung nach fehlgeschlagener Entschlüsselung ausgeben
<?php
$res = gnupg_init();
// Ungültige verschlüsselte Daten übergeben
$result = gnupg_decrypt($res, 'das-ist-kein-gueltiger-pgp-block');
if ($result === false) {
$error = gnupg_geterrorinfo($res);
echo 'Fehler aufgetreten!' . PHP_EOL;
echo 'Code: ' . $error['gpgerr_code'] . PHP_EOL;
echo 'Quelle: ' . $error['gpgerr_source'] . PHP_EOL;
echo 'Meldung: ' . $error['gpgerr_str'] . PHP_EOL;
}
OO-Stil: Fehlerinfo nach misslungenem Signieren
<?php
$gpg = new gnupg();
// Kein Schlüssel zum Signieren ausgewählt
$result = $gpg->sign('Nachrichtentext');
if ($result === false) {
$error = $gpg->geterrorinfo();
printf(
"Signierung fehlgeschlagen (Code %d): %s\n",
$error['gpgerr_code'],
$error['gpgerr_str']
);
}
// Wichtig · Fallstricke
Hinweis zur PECL-Erweiterung: gnupg_geterrorinfo() steht nur zur Verfügung, wenn die PECL-Erweiterung gnupg installiert und geladen ist. Sie ist nicht Bestandteil der PHP-Standardbibliothek. Stelle sicher, dass GnuPG (libgpgme) auf dem System korrekt installiert ist.
Fehlercode-Bedeutung: Die numerischen Fehlercodes entsprechen den GPGME-Fehlercodes. Ihre Bedeutung ist in der GPGME-Dokumentation nachschlagbar. Nicht jeder Fehler wird durch gnupg_geterrorinfo() korrekt befüllt – prüfe stets sowohl Code als auch Meldung.
Passphrasen-Sicherheit: Vermeide es, Fehlerinformationen (inkl. Schlüssel-IDs oder Passphrasen-Hinweise) direkt an den Endnutzer auszugeben; logge sie stattdessen serverseitig, um keine sicherheitsrelevanten Details zu enthüllen.