LI. gnupg 関数

導入

このモジュールにより、 gnupg を扱うことが可能となります。

警告

この拡張モジュールは、 実験的 なものです。この拡張モジュールの動作・ 関数名・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 このモジュールは自己責任で使用してください。

要件

gnupg 拡張モジュールは PHP 4.3 以降を必要とします。 この拡張モジュールをオブジェクト指向形式で使用するには、PHP 5 が必要です。

この拡張モジュールは gpgme ライブラリ を必要とします。

インストール手順

gnupg 拡張モジュールは PHP にバンドルされていません。これは PECL 拡張モジュールであり、 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 )

注意

この拡張モジュールは、現在のユーザのキーリングを使用します。キーリングは、 通常は ~./.gnupg/ にあります。別の場所を指定するには、環境変数 GNUPGHOME にキーリングへのパスを格納します。その詳細な方法については putenv を参照ください。

キーを特定する設定項目を必要とする関数も存在します。この設定項目は、何らかの ユニークなキー (ユーザ ID、キー ID、フィンガープリント、…) を参照します。 このドキュメントでは、すべての例でフィンガープリントを使用しています。

keylistiterator

この拡張モジュールでは、キーリングの内容を繰り返し処理することも可能です。

<?php
// 'example' にマッチするキーを抜き出して繰り返し処理をするイテレータを生成します
$iterator = new gnupg_keylistiterator ( "example" );
foreach(
$iterator as $fingerprint => $userid ){
    echo
$fingerprint . " -> " . $userid . "\n" ;
}
?>

この例は、指定したテキストに署名をします。

例 1. gnupg での署名の例 (手続き型)

<?php
// gnupg を初期化します
$res = gnupg_init ();
// 必須ではありません。Clearsign はデフォルト値です
gnupg_setsignmode ( $res , GNUPG_SIG_MODE_CLEAR );
// 署名のためのキーを、パスフレーズ 'test' で追加します
gnupg_addsignkey ( $res , "8660281B6051D071D94B5B230549F9DC851566DC" , "test" );
// 署名します
$signed = gnupg_sign ( "just a test" );
echo
$signed ;
?>

例 2. gnupg での署名の例 (オブジェクト指向)

<?php
// 新しいクラス
$gnupg = new gnupg ();
// 必須ではありません。Clearsign はデフォルト値です
$gnupg -> setsignmode ( gnupg :: SIG_MODE_CLEAR );
// 署名のためのキーを、パスフレーズ 'test' で追加します
$gnupg -> addsignkey ( "8660281B6051D071D94B5B230549F9DC851566DC" , "test" );
// 署名します
$signed = $gnupg -> sign ( "just a test" );
echo
$signed ;
?>
目次
gnupg_adddecryptkey  -- 復号のためのキーを追加する
gnupg_addencryptkey  -- 暗号化のためのキーを追加する
gnupg_addsignkey  -- 署名のためのキーを追加する
gnupg_cleardecryptkeys  -- 事前に復号のために設定されたすべてのキーを削除する
gnupg_clearencryptkeys  -- 事前に暗号化のために設定されたすべてのキーを削除する
gnupg_clearsignkeys  -- 事前に署名のために設定されたすべてのキーを削除する
gnupg_decrypt  -- 指定されたテキストを復号する
gnupg_decryptverify  -- 指定されたテキストを復号し、検証する
gnupg_encrypt  -- 指定したテキストを暗号化する
gnupg_encryptsign  -- 指定したテキストを暗号化し、署名する
gnupg_export  -- キーをエクスポートする
gnupg_geterror  -- 関数が失敗した場合にエラー文字列を返す
gnupg_getprotocol  -- すべての操作で現在アクティブなプロトコルを返す
gnupg_import  -- キーをインポートする
gnupg_keyinfo  --  指定したパターンに一致するすべてのキーについての情報を配列で返す
gnupg_setarmor  -- armor 形式を切り替える
gnupg_seterrormode  -- エラー報告モードを設定する
gnupg_setsignmode  -- 署名方式を設定する
gnupg_sign  -- 指定したテキストに署名する
gnupg_verify  -- 署名済みテキストを検証する