Start · Sprachen · PHP · Referenz · gnupg_clearencryptkeys

gnupg_clearencryptkeys

Funktion

Entfernt alle Schlüssel, die zuvor mit <code>gnupg_addencryptkey()</code> zur Verschlüsselung hinterlegt wurden.

Kategorie: crypto

Signatur

gnupg_clearencryptkeys(resource $identifier): bool

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

Typ
bool
Beschreibung
Gibt 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";
Verschlüsselt für Empfänger 1: -----BEGIN PGP MESSAGE-----... Verschlüsselt für Empfänger 2: -----BEGIN PGP MESSAGE-----...

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";
Fertig.

// 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.