Start · Sprachen · PHP · Referenz · gnupg_gettrustlist

gnupg_gettrustlist

Funktion

Durchsucht den GnuPG-Schlüsselring nach vertrauenswürdigen Elementen, die dem angegebenen Muster entsprechen.

Kategorie: crypto

Signatur

gnupg_gettrustlist(resource $identifier, string $pattern): array|false

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

Typ
array|false
Beschreibung
Gibt ein Array von assoziativen Arrays zurück, die jeweils ein Trust-Item beschreiben (mit Feldern wie 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";
    }
}
Schlüssel-ID: ABCDEF1234567890 Name: Alice Musterfrau E-Mail: alice@example.com Trust-Level: 5 ---

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";
}
Vollständig vertrauenswürdige Schlüssel: 2 - ABCDEF1234567890 (alice@example.com) - 0987654321FEDCBA (bob@example.com)

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