Signatur
Beschreibung
gnupg_seterrormode konfiguriert das Fehlerverhalten einer GnuPG-Ressource. Je nach gewähltem Modus werden Fehler entweder als PHP-Fehler/-Ausnahmen ausgegeben oder lediglich intern gespeichert, sodass sie manuell über gnupg_geterror abgerufen werden können.
Es stehen drei Modi zur Verfügung: GNUPG_ERROR_WARNING gibt einen PHP-Warning-Fehler aus, GNUPG_ERROR_EXCEPTION wirft eine PHP-Exception und GNUPG_ERROR_SILENT unterdrückt die Fehlermeldung vollständig, sodass nur intern gemeldet wird. In produktiven Anwendungen empfiehlt sich oft der Exception-Modus, da er eine saubere Fehlerbehandlung über try/catch-Blöcke ermöglicht.
Der Fehlermodus gilt pro GnuPG-Ressource und sollte direkt nach der Initialisierung via gnupg_init gesetzt werden, bevor andere Operationen wie Signieren oder Verschlüsseln durchgeführt werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $identifier Pflicht | resource | Die GnuPG-Ressource, die zuvor mit gnupg_init() erstellt wurde. |
|
| $errormode Pflicht | int | Der gewünschte Fehlermodus. Mögliche Werte sind:
|
Rückgabewert
Beispiele
Fehlermodus auf Exception setzen
<?php
$gpg = gnupg_init();
// Fehlermodus auf Exception stellen
gnupg_seterrormode($gpg, GNUPG_ERROR_EXCEPTION);
try {
// Versuche, mit einem nicht vorhandenen Schlüssel zu verschlüsseln
gnupg_addencryptkey($gpg, 'NICHTVORHANDENER_FINGERPRINT');
$encrypted = gnupg_encrypt($gpg, 'Geheime Nachricht');
echo $encrypted;
} catch (Exception $e) {
echo 'GnuPG-Fehler: ' . $e->getMessage();
}
Fehlermodus auf SILENT setzen und Fehler manuell abrufen
<?php
$gpg = gnupg_init();
// Fehlermeldungen unterdrücken – Fehler manuell prüfen
gnupg_seterrormode($gpg, GNUPG_ERROR_SILENT);
$result = gnupg_addencryptkey($gpg, 'NICHTVORHANDENER_FINGERPRINT');
if ($result === false) {
$error = gnupg_geterror($gpg);
echo 'Fehler aufgetreten: ' . $error;
} else {
echo 'Schlüssel erfolgreich hinzugefügt.';
}
// Wichtig · Fallstricke
Hinweis: Der Standardmodus ist GNUPG_ERROR_SILENT. Wenn dieser Modus aktiv ist und kein manuelles Fehlerprüfen via gnupg_geterror stattfindet, können Fehler leicht übersehen werden – dies kann in sicherheitskritischen Anwendungen zu unbemerkt fehlgeschlagenen Verschlüsselungs- oder Signieroperationen führen.
Für produktive Systeme wird empfohlen, entweder GNUPG_ERROR_EXCEPTION zu verwenden oder nach jeder GnuPG-Operation den Rückgabewert zu prüfen und ggf. gnupg_geterror aufzurufen.