Signatur
Beschreibung
gnupg_getengineinfo() gibt ein assoziatives Array zurück, das Details über die aktuell verwendete GnuPG-Kryptographie-Engine enthält. Dazu zählen unter anderem das verwendete Protokoll (z. B. OpenPGP oder CMS/S/MIME), die Version der Engine sowie der Pfad zur ausführbaren Datei (gpg bzw. gpg2) und der Pfad zum Heimatverzeichnis der Schlüsseldatenbank.
Diese Funktion ist besonders nützlich, wenn man sicherstellen möchte, dass eine bestimmte GnuPG-Mindestversion vorhanden ist, oder wenn man Debug-Informationen über die aktuelle Konfiguration der Kryptographie-Umgebung sammeln möchte. So lässt sich etwa vor dem Verschlüsseln oder Signieren prüfen, ob die richtige GnuPG-Binary verwendet wird.
Die Funktion gehört zur prozeduralen GnuPG-Erweiterung (gnupg) für PHP und benötigt eine zuvor erzeugte GnuPG-Ressource, die mit gnupg_init() erstellt wird. Sie gibt keine kritischen oder geheimen Informationen preis, eignet sich aber zur Systemdiagnose und zum Logging.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $identifier Pflicht | resource | Eine gültige GnuPG-Ressource, die zuvor mit gnupg_init() erzeugt wurde. |
Rückgabewert
Gibt ein assoziatives Array mit folgenden Schlüsseln zurück:
- protocol: Ganzzahl, die das verwendete Protokoll angibt (z. B.
0für OpenPGP,1für CMS). - file_name: Pfad zur ausführbaren GnuPG-Datei (z. B.
/usr/bin/gpg2). - home_dir: Pfad zum GnuPG-Heimatverzeichnis, in dem Schlüsseldateien gespeichert werden.
- version: Versionsnummer der GnuPG-Engine als Zeichenkette, z. B.
2.2.19.
Beispiele
Engine-Informationen ausgeben
<?php
// GnuPG-Ressource initialisieren
$gpg = gnupg_init();
// Engine-Informationen abrufen
$info = gnupg_getengineinfo($gpg);
echo 'Protokoll: ' . $info['protocol'] . PHP_EOL;
echo 'GnuPG-Binary: ' . $info['file_name'] . PHP_EOL;
echo 'Home-Verzeichnis: ' . $info['home_dir'] . PHP_EOL;
echo 'Version: ' . $info['version'] . PHP_EOL;
Mindestversion der GnuPG-Engine prüfen
<?php
$gpg = gnupg_init();
$info = gnupg_getengineinfo($gpg);
$minVersion = '2.1.0';
if (version_compare($info['version'], $minVersion, '>=')) {
echo 'GnuPG-Version ' . $info['version'] . ' ist ausreichend.' . PHP_EOL;
} else {
echo 'WARNUNG: GnuPG-Version ' . $info['version']
. ' ist älter als die erforderliche Mindestversion ' . $minVersion . '.' . PHP_EOL;
}
// Wichtig · Fallstricke
Verfügbarkeit: Die Funktion ist erst ab Version 1.5.0 der PHP-GnuPG-Erweiterung verfügbar. Ältere Versionen der Erweiterung kennen diese Funktion nicht – vor der Verwendung sollte daher function_exists('gnupg_getengineinfo') geprüft werden, wenn Abwärtskompatibilität erforderlich ist.
Das home_dir-Feld gibt Aufschluss darüber, wo GnuPG seine Schlüsseldateien ablegt. Wird PHP als Webserver-Prozess ausgeführt, kann sich dieses Verzeichnis von dem des ausführenden Systembenutzers unterscheiden – dies ist ein häufiger Konfigurationsfehler, der dazu führt, dass importierte Schlüssel nicht gefunden werden.