gnupg 函数

简介

This module allows you to interact with » gnupg.

警告:

本扩展模块是实验性的。本模块的行为,包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本扩展模块风险自担。

需求

The gnupg extension requires PHP 4.3. To use this extension in an OO style, PHP 5 is required.

This extension requires the » gpgme library

安装

The gnupg-extension is not bundled with PHP. It is a » PECL extension and can be located here: » http://pecl.php.net/package/gnupg.

预定义常量

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

注释

This extension makes use of the keyring of the current user. This keyring is normally located in ~./.gnupg/. To specify a custom location, store the path to the keyring in the environment variable GNUPGHOME. See putenv for more information how to do this.

Some functions require the specification of a key. This specification can be anything that refers to an unique key (userid, key-id, fingerprint, ...). This documentation uses the fingerprint in all examples.

keylistiterator

This extension also comes with an Iterator for your keyring.

<?php
// create a new iterator for listing all public keys that matches 'example'
$iterator = new gnupg_keylistiterator("example");
foreach(
$iterator as $fingerprint => $userid){
   echo
$fingerprint." -> ".$userid."\n";
}
?>

范例

This example will clearsign a given text.

例 700. gnupg clearsign example (procedural)

<?php
// init gnupg
$res = gnupg_init();
// not really needed. Clearsign is default
gnupg_setsignmode($res,GNUPG_SIG_MODE_CLEAR);
// add key with passphrase 'test' for signing
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
// sign
$signed = gnupg_sign("just a test");
echo
$signed;
?>

例 701. gnupg clearsign example (OO)

<?php
// new class
$gnupg = new gnupg();
// not really needed. Clearsign is default
$gnupg->setsignmode(gnupg::SIG_MODE_CLEAR);
// add key with passphrase 'test' for signing
$gnupg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
// sign
$signed = $gnupg->sign("just a test");
echo
$signed;
?>

目录

gnupg_adddecryptkey - Add a key for decryption
gnupg_addencryptkey - Add a key for encryption
gnupg_addsignkey - Add a key for signing
gnupg_cleardecryptkeys - Removes all keys which were set for decryption before
gnupg_clearencryptkeys - Removes all keys which were set for encryption before
gnupg_clearsignkeys - Removes all keys which were set for signing before
gnupg_decrypt - Decrypts a given text
gnupg_decryptverify - Decrypts and verifies a given text
gnupg_encrypt - Encrypts a given text
gnupg_encryptsign - Encrypts and signs a given text
gnupg_export - Exports a key
gnupg_geterror - Returns the errortext, if a function fails
gnupg_getprotocol - Returns the currently active protocol for all operations
gnupg_import - Imports a key
gnupg_keyinfo - Returns an array with information about all keys that matches the given pattern
gnupg_setarmor - Toggle armored output
gnupg_seterrormode - Sets the mode for error_reporting
gnupg_setsignmode - Sets the mode for signing
gnupg_sign - Signs a given text
gnupg_verify - Verifies a signed text