Signatur
Beschreibung
gnupg_gettrustlist() ist Teil der PECL-GnuPG-Erweiterung und ermöglicht es, den lokalen GnuPG-Schlüsselring nach vertrauenswürdigen Elementen (sog. trust items) zu durchsuchen. Als Suchbegriff kann ein Name, eine E-Mail-Adresse oder eine Schlüssel-ID übergeben werden.
Die Funktion gibt ein Array von assoziativen Arrays zurück, wobei jedes Element Informationen über ein gefundenes Trust-Item enthält, z. B. keyid, type, level, name und email. Dies ist nützlich, wenn du überprüfen möchtest, welchen Schlüsseln auf einem System explizit vertraut wird.
Der typische Anwendungsfall liegt in der Verwaltung und Prüfung von Vertrauensbeziehungen im Rahmen kryptografischer Workflows, etwa beim automatisierten Verifizieren von signierten E-Mails oder Paketen. In Kombination mit gnupg_verify() lässt sich so sicherstellen, dass ein Schlüssel nicht nur bekannt, sondern auch explizit als vertrauenswürdig markiert ist.
Hinweis: Die Funktion ist nur verfügbar, wenn die PECL-Erweiterung gnupg installiert und aktiviert ist. Sie funktioniert ausschließlich mit dem prozeduralen GnuPG-Interface über eine gültige Ressource.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $identifier Pflicht | resource | Eine gültige GnuPG-Ressource, die zuvor mit gnupg_init() erzeugt wurde. |
|
| $pattern Pflicht | string | Suchmuster zum Filtern der Trust-Items, z. B. eine E-Mail-Adresse, ein Name oder eine Schlüssel-ID. Ein leerer String oder '' kann alle Einträge zurückliefern, sofern die Implementierung dies unterstützt. |
Rückgabewert
keyid, type, level, name, email). Im Fehlerfall oder wenn kein Ergebnis gefunden wird, wird false zurückgegeben.Beispiele
Vertrauensliste für eine E-Mail-Adresse abrufen
<?php
// GnuPG-Ressource initialisieren
$gpg = gnupg_init();
// Vertrauenswürdige Elemente für eine bestimmte E-Mail suchen
$trustItems = gnupg_gettrustlist($gpg, 'alice@example.com');
if ($trustItems === false) {
echo "Keine Trust-Items gefunden oder Fehler aufgetreten.\n";
} else {
foreach ($trustItems as $item) {
echo "Schlüssel-ID: " . $item['keyid'] . "\n";
echo "Name: " . $item['name'] . "\n";
echo "E-Mail: " . $item['email'] . "\n";
echo "Trust-Level: " . $item['level'] . "\n";
echo "---\n";
}
}
Alle Trust-Items auflisten und auf vollständiges Vertrauen prüfen
<?php
// GnuPG-Ressource initialisieren
$gpg = gnupg_init();
// Alle Trust-Items durchsuchen (leeres Muster für alle Einträge)
$trustItems = gnupg_gettrustlist($gpg, '');
if (is_array($trustItems)) {
$fullyTrusted = array_filter($trustItems, function ($item) {
// Trust-Level 5 = vollständig vertrauenswürdig
return isset($item['level']) && $item['level'] === 5;
});
echo "Vollständig vertrauenswürdige Schlüssel: " . count($fullyTrusted) . "\n";
foreach ($fullyTrusted as $item) {
echo " - " . $item['keyid'] . " (" . $item['email'] . ")\n";
}
} else {
echo "Fehler beim Abrufen der Trust-Liste.\n";
}
// Wichtig · Fallstricke
Verfügbarkeit: Diese Funktion ist Teil der PECL-Erweiterung gnupg und nicht standardmäßig in PHP enthalten. Sie muss separat installiert werden (pecl install gnupg).
Trust-Level: Die Bedeutung der zurückgegebenen level-Werte entspricht den GnuPG-Vertrauensstufen (0 = unbekannt, 1 = nicht vertrauenswürdig, 2 = kaum vertrauenswürdig, 3 = teilweise vertrauenswürdig, 4 = vollständig vertrauenswürdig, 5 = absolut vertrauenswürdig/ultimativ).
Dokumentationslage: Die Funktion ist in der offiziellen PHP-Dokumentation nur rudimentär beschrieben. Verhalten und Rückgabeformat können je nach installierter gnupg-Version variieren. Prüfe die Rückgabewerte stets auf false, bevor du mit den Daten arbeitest.
Sicherheit: Vertraue nie allein auf den Trust-Level aus dieser Liste, ohne die Schlüsselintegrität zusätzlich zu verifizieren. Ein als vertrauenswürdig markierter Schlüssel kann widerrufen worden sein.