Signatur
Beschreibung
gnupg_clearencryptkeys() löscht die interne Liste aller Verschlüsselungsschlüssel, die für eine GnuPG-Ressource registriert wurden. Nach dem Aufruf ist die Schlüsselliste leer, und eine anschließende Verschlüsselung ist erst wieder möglich, nachdem neue Schlüssel über gnupg_addencryptkey() hinzugefügt wurden.
Die Funktion ist besonders nützlich, wenn innerhalb eines Skripts Nachrichten nacheinander für unterschiedliche Empfänger verschlüsselt werden sollen. Durch das Zurücksetzen der Schlüsselliste können ungewollte Mehrfach-Empfänger aus früheren Operationen vermieden werden.
Die Funktion arbeitet auf einer GnuPG-Ressource, die zuvor mit gnupg_init() oder über die OOP-Schnittstelle (new gnupg()) erzeugt wurde. Sie hat keinen Einfluss auf Signierungsschlüssel (gnupg_clearsignkeys()) oder Entschlüsselungsschlüssel (gnupg_cleardecryptkeys()).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $identifier Pflicht | resource | Eine gültige GnuPG-Ressource, erzeugt durch gnupg_init(). |
Rückgabewert
true bei Erfolg zurück, false im Fehlerfall (z. B. ungültige Ressource).Beispiele
Verschlüsselungsschlüssel zurücksetzen und neu setzen
<?php
$gpg = gnupg_init();
// Ersten Empfänger hinzufügen und Nachricht verschlüsseln
gnupg_addencryptkey($gpg, 'fingerprint-empfaenger-1');
$verschluesselt1 = gnupg_encrypt($gpg, 'Nachricht für Empfänger 1');
echo "Verschlüsselt für Empfänger 1: " . substr($verschluesselt1, 0, 30) . "...\n";
// Schlüsselliste leeren, bevor neuer Empfänger gesetzt wird
gnupg_clearencryptkeys($gpg);
// Zweiten Empfänger hinzufügen und andere Nachricht verschlüsseln
gnupg_addencryptkey($gpg, 'fingerprint-empfaenger-2');
$verschluesselt2 = gnupg_encrypt($gpg, 'Nachricht für Empfänger 2');
echo "Verschlüsselt für Empfänger 2: " . substr($verschluesselt2, 0, 30) . "...\n";
Verwendung mit der OOP-Schnittstelle
<?php
$gpg = new gnupg();
// Mehrere Schlüssel für Gruppen-Mail hinzufügen
$gpg->addencryptkey('fingerprint-a');
$gpg->addencryptkey('fingerprint-b');
// Gruppen-Nachricht verschlüsseln
$gruppenNachricht = $gpg->encrypt('Vertrauliche Gruppeninformation');
// Schlüssel zurücksetzen für Einzelnachricht
$gpg->clearencryptkeys();
$gpg->addencryptkey('fingerprint-a');
$einzelNachricht = $gpg->encrypt('Nur für Empfänger A');
echo "Fertig.\n";
// Wichtig · Fallstricke
Sicherheitshinweis: Wird gnupg_clearencryptkeys() zwischen zwei Verschlüsselungsoperationen vergessen, können Nachrichten versehentlich für Empfänger früherer Operationen mitverschlüsselt werden. Bei vertraulichen Daten sollte die Schlüsselliste daher immer explizit vor dem Setzen neuer Empfänger geleert werden.
Die Funktion entfernt ausschließlich die Verschlüsselungsschlüssel. Signierungsschlüssel und Entschlüsselungsschlüssel bleiben unberührt. Zum Löschen dieser Schlüssel stehen gnupg_clearsignkeys() bzw. gnupg_cleardecryptkeys() zur Verfügung.