Signatur
Beschreibung
gnupg_export() durchsucht den GPG-Schlüsselbund der aktuellen GnuPG-Ressource nach einem Schlüssel, der dem angegebenen Muster ($pattern) entspricht, und gibt ihn als ASCII-Armor-formatierten String zurück. Das Muster kann eine E-Mail-Adresse, ein Name, eine Schlüssel-ID oder ein Fingerprint sein.
Die Funktion ist nützlich, wenn öffentliche Schlüssel programmatisch exportiert und z. B. per API an andere Systeme übermittelt, in Datenbanken gespeichert oder in Dateien geschrieben werden sollen. Nur öffentliche Schlüssel werden exportiert – private Schlüssel lassen sich mit dieser Funktion nicht extrahieren.
Voraussetzung ist, dass der gesuchte Schlüssel bereits im Schlüsselbund des konfigurierten GPG-Heimverzeichnisses vorhanden ist. Die GnuPG-Ressource muss zuvor mit gnupg_init() erzeugt worden sein.
Gibt die Funktion false zurück, konnte kein passender Schlüssel gefunden werden oder ist ein interner GnuPG-Fehler aufgetreten. Die genaue Fehlerursache kann mit gnupg_geterror() abgefragt werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $identifier Pflicht | resource | Eine gültige GnuPG-Ressource, die zuvor mit gnupg_init() erzeugt wurde. |
|
| $pattern Pflicht | string | Suchmuster zur Identifikation des Schlüssels. Kann eine E-Mail-Adresse, ein Name, eine Schlüssel-ID (z. B. 0xABCDEF12) oder ein vollständiger Fingerprint sein. |
Rückgabewert
false zurückgegeben.Beispiele
Öffentlichen Schlüssel exportieren und ausgeben
<?php
$gpg = gnupg_init();
// Suche nach Schlüssel über E-Mail-Adresse
$exportedKey = gnupg_export($gpg, 'alice@example.com');
if ($exportedKey === false) {
echo 'Fehler beim Exportieren: ' . gnupg_geterror($gpg);
} else {
echo $exportedKey;
}
Exportierten Schlüssel in Datei speichern
<?php
$gpg = gnupg_init();
$fingerprint = 'D1EB5B6B5B5F9B9B5B5B5B5B5B5B5B5B5B5B5B5B';
$exportedKey = gnupg_export($gpg, $fingerprint);
if ($exportedKey !== false) {
$filename = '/var/keys/alice_public.asc';
file_put_contents($filename, $exportedKey);
echo 'Schlüssel erfolgreich exportiert nach: ' . $filename;
} else {
echo 'Schlüssel nicht gefunden oder Fehler: ' . gnupg_geterror($gpg);
}
// Wichtig · Fallstricke
Sicherheitshinweis: gnupg_export() exportiert ausschließlich öffentliche Schlüssel. Private Schlüssel werden niemals über diese Funktion preisgegeben. Stellen Sie dennoch sicher, dass exportierte Schlüssel nur an autorisierte Empfänger weitergegeben werden, um Missbrauch (z. B. gefälschte Verschlüsselung) zu verhindern.
Das GPG-Heimverzeichnis wird standardmäßig über die Umgebungsvariable GNUPGHOME oder das Standardverzeichnis ~/.gnupg des Webserver-Benutzers bestimmt. Achten Sie darauf, dass der PHP-Prozess Leserechte auf dieses Verzeichnis besitzt.
Wenn das Suchmuster auf mehrere Schlüssel zutrifft, werden in der Regel alle übereinstimmenden öffentlichen Schlüssel zusammen im Rückgabe-String enthalten sein (aneinandergehängte ASCII-Armor-Blöcke). Verwenden Sie daher möglichst den vollständigen Fingerprint für eine eindeutige Auswahl.