Signatur
Beschreibung
gnupg_getprotocol() liefert das Protokoll zurück, das für alle kryptographischen Operationen der angegebenen GnuPG-Ressource aktuell verwendet wird. Das Protokoll wird beim Erstellen der Ressource über gnupg_init() bzw. durch gnupg_setprotocol() festgelegt.
Die Rückgabe ist eine ganzzahlige Konstante: GNUPG_PROTOCOL_OpenPGP (Wert 0) steht für das weit verbreitete OpenPGP-Protokoll (RFC 4880), GNUPG_PROTOCOL_CMS (Wert 1) für das CMS/S/MIME-Protokoll (RFC 3852). Die Funktion ist nützlich, um das derzeit aktive Protokoll einer GnuPG-Instanz zur Laufzeit zu prüfen – beispielsweise bevor signiert, verschlüsselt oder entschlüsselt wird.
Diese Funktion ist rein lesend und verändert den Zustand der GnuPG-Ressource nicht. Sie eignet sich besonders für Diagnosezwecke oder zur Absicherung, dass die richtige Protokoll-Konfiguration vor einer kritischen Operation vorliegt.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $identifier Pflicht | resource | Eine gültige GnuPG-Ressource, wie sie von gnupg_init() zurückgegeben wird. |
Rückgabewert
GNUPG_PROTOCOL_OpenPGP (0) für OpenPGP oder GNUPG_PROTOCOL_CMS (1) für CMS/S/MIME.Beispiele
Aktives Protokoll einer GnuPG-Ressource abfragen
<?php
$gpg = gnupg_init();
$protocol = gnupg_getprotocol($gpg);
if ($protocol === GNUPG_PROTOCOL_OpenPGP) {
echo 'Aktives Protokoll: OpenPGP';
} elseif ($protocol === GNUPG_PROTOCOL_CMS) {
echo 'Aktives Protokoll: CMS (S/MIME)';
} else {
echo 'Unbekanntes Protokoll: ' . $protocol;
}
Protokoll nach explizitem Setzen prüfen
<?php
$gpg = gnupg_init();
// Protokoll auf CMS/S/MIME umstellen
gnupg_setprotocol($gpg, GNUPG_PROTOCOL_CMS);
$protocol = gnupg_getprotocol($gpg);
echo 'Protokoll-ID: ' . $protocol . PHP_EOL;
if ($protocol === GNUPG_PROTOCOL_CMS) {
echo 'CMS-Protokoll ist aktiv – bereit für S/MIME-Operationen.';
}
// Wichtig · Fallstricke
Die Konstanten GNUPG_PROTOCOL_OpenPGP und GNUPG_PROTOCOL_CMS sind nur verfügbar, wenn die PECL-Erweiterung gnupg korrekt installiert und geladen ist. Ohne diese Erweiterung führt die Verwendung der Funktion zu einem fatalen Fehler.
Das Standard-Protokoll nach gnupg_init() ist GNUPG_PROTOCOL_OpenPGP. Es sollte vor sensiblen Operationen geprüft werden, ob das gewünschte Protokoll tatsächlich aktiv ist, da ein falsches Protokoll zu Fehlschlägen oder unerwarteten Ergebnissen führen kann.