Forum und email

gnupg Fonctions

Introduction

Ce module vous permet d'interagir avec » gnupg.

Warning

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Pré-requis

L'extension gnupg requiert PHP 4.3. Pour utiliser cette extension dans le style orienté objet, PHP 5 est requis.

Cette extension requière la » bibliothèque gpgme

Installation

L'extension gnupg n'est pas intégrée avec PHP. Il s'agit d'une extension » PECL et elle peut être trouvée ici : » http://pecl.php.net/package/gnupg.

Constantes pré-définies

GNUPG_SIG_MODE_NORMAL (entier)
GNUPG_SIG_MODE_DETACH (entier)
GNUPG_SIG_MODE_CLEAR (entier)
GNUPG_VALIDITY_UNKNOWN (entier)
GNUPG_VALIDITY_UNDEFINED (entier)
GNUPG_VALIDITY_NEVER (entier)
GNUPG_VALIDITY_MARGINAL (entier)
GNUPG_VALIDITY_FULL (entier)
GNUPG_VALIDITY_ULTIMATE (entier)
GNUPG_PROTOCOL_OpenPGP (entier)
GNUPG_PROTOCOL_CMS (entier)
GNUPG_SIGSUM_VALID (entier)
GNUPG_SIGSUM_GREEN (entier)
GNUPG_SIGSUM_RED (entier)
GNUPG_SIGSUM_KEY_REVOKED (entier)
GNUPG_SIGSUM_KEY_EXPIRED (entier)
GNUPG_SIGSUM_KEY_MISSING (entier)
GNUPG_SIGSUM_SIG_EXPIRED (entier)
GNUPG_SIGSUM_CRL_MISSING (entier)
GNUPG_SIGSUM_CRL_TOO_OLD (entier)
GNUPG_SIGSUM_BAD_POLICY (entier)
GNUPG_SIGSUM_SYS_ERROR (entier)
GNUPG_ERROR_WARNING (entier)
GNUPG_ERROR_EXCEPTION (entier)
GNUPG_ERROR_SILENT (entier)

Notes

Cette extension utilise le trousseau de l'usager courant. Ce trousseau est normalement situé dans ~./.gnupg/. Pour spécifier un emplacement différent, enregistrer le chemin de votre trousseau dans la variable d'environnement GNUPGHOME. Voyez putenv pour plus d'information pour savoir comment faire cela.

Certaines fonctions requièrent la spécification d'une clé. Cette spécification peut être quelque chose qui réfère à une clé unique (userid, key-id, fingerprint, ...). Cette documentation utilise les fingerprint dans tous les exemples.

keylistiterator

Cette extension vient aussi avec un Itérateur pour votre trousseau.

<?php
// Crée un nouvel itérateur pour lister toutes les clés publiques qui
// correspondent à 'exemple'
$iterator = new gnupg_keylistiterator("exemple");
foreach(
$iterator as $fingerprint => $userid){
    echo 
$fingerprint." -> ".$userid."\n";
}
?>

Exemples

Cet exemple signera en clair un texte donné.

Example#1 Exemple avec gnupg clearsign (Style procédural)

<?php
// initialise gnupg
$res gnupg_init();
// pas vraiment besoin. Clearsign est par défaut
gnupg_setsignmode($res,GNUPG_SIG_MODE_CLEAR);
// ajoute une clé avec une passphrase 'test' pour signer
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
// signer
$signed gnupg_sign("juste un test");
echo 
$signed;
?>

Example#2 Exemple avec gnupg clearsign (Style orienté objet)

<?php
// nouvelle classe
$gnupg = new gnupg();
// pas vraiment besoin. Clearsign est par défaut
$gnupg->setsignmode(gnupg::SIG_MODE_CLEAR);
// ajoute une clé avec une passphrase 'test' pour signer
$gnupg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
// signer
$signed gnupg_sign($res,"just a test");
echo 
$signed;
?>

Table of Contents