| 警告 |
| この拡張モジュールは、
実験的 なものです。この拡張モジュールの動作・
関数名・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP
のリリースにおいて変更される可能性があります。
このモジュールは自己責任で使用してください。 |
<?php
// 'example' にマッチするキーを抜き出して繰り返し処理をするイテレータを生成します
$iterator = new gnupg_keylistiterator("example");
foreach($iterator as $fingerprint => $userid){
echo $fingerprint." -> ".$userid."\n";
}
?>
<?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;
?>
<?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 から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/02/20 03:19 UTC 版)
| |
|
| |
|
| 作者 | ヴェルナー・コッホ |
|---|---|
| 開発元 | GNUプロジェクト |
| 初版 | 1999年9月7日[1] |
| 最新版 | |
| 最新評価版 |
2.5.2[4] |
| リポジトリ | |
| プログラミング 言語 |
C言語 |
| 対応OS | Microsoft Windows、macOS、RISC OS, Android, Linux |
| 種別 | 暗号化ソフトウェア |
| ライセンス | 2007: GPL-3.0-or-later[注釈 1] 1997: GPL-2.0-or-later[注釈 2] |
| 公式サイト | gnupg |
GNU Privacy Guard (GnuPG, GPG) とは、暗号化ソフトウェア Pretty Good Privacy (PGP) の代替として開発された自由ソフトウェアである。GPGは、OpenPGP の標準仕様である、現在は旧式となった[5] IETFの規格 RFC 4880に準拠している。PGP の最新バージョンは、GnuPG やその他の OpenPGP v4 準拠システムと相互運用可能である[6] 。
2023年11月には、2007年のOpenPGP v4仕様(RFC4880)の更新を目的とした2つの草案が発表され、最終的には2024年7月に RFC 9580標準となった。GnuPG開発者からの提案であるLibrePGPはOpenPGP Working Group に採用されず、GnuPGの将来のバージョンでは現在のバージョンのOpenPGPはサポートされない[7]。
GnuPGはGNUプロジェクトの一部であり、1999年にドイツ政府から多額の資金提供を受けた[8]。
GnuPG の開発は ヴェルナー・コッホ(Werner Koch) によって始められた。現在では David Shaw と Timo Schulz も加わっている。また、g10 Code が Werner Koch と Timo Schulz を資金面で援助している。
バージョン 1.0.0 は 1999 年にリリースされ、それ以降 2002 年の 1.2.0 や 2004 年の 1.4.0 のように、安定版は最初の小数部分が偶数になるバージョンでリリースされている。
一方、 S/MIME 機能の導入を目的とした別系列の開発版が 1.9 系列として開発が進められていた。この系列は2006年11月23日に 2.0 としてリリースされた。
2014年11月、楕円曲線暗号のサポートなど新しいOpenPGP規格に準拠した 2.1 系列がリリースされた。
2.0 系列、2.2/2.1 系列と並行して 1.4 系列のサポートは継続しており、1.4 系列は 2.2/2.1 系列あるいは 2.0 系列と同時にインストール、独立して運用することが可能である。2.2/2.1 系列と 2.0 系列を同時にインストールすることはできない[9]。
2022年8月現在、GnuPG には 3 つの系列が存在する。
既にサポートが終了した系列は 3 つ存在する。
GnuPG は数多くの OS に含められてきた。
また、GUI のフロントエンドも開発されており、KMail や Evolution といった電子メールクライアントに統合されたものや、 KDE の KGpg や GNOME の Seahorse のように単独のアプリケーションもある。これらフロントエンドの多くは GnuPG 開発者が用意した GPGME (GnuPG Made Easy) ライブラリを利用している。
GnuPG は、特許で制限されているアルゴリズムを含めていない。
したがって、従来の GnuPG では、PGP の過去のバージョンで標準で用いられていた International Data Encryption Algorithm (IDEA) を使うことができず、使用にはプラグインが必要であったが、各国における IDEA の特許切れ[18]に伴い、1.4.13/2.0.20 から IDEA が含まれるようになった[19][20]。これは、過去のコンテンツの署名検証、復号および古いPGPからGnuPGへの移行といった互換性維持のための最低限のサポートであり、既定では新しい鍵の作成における選択肢には現れない[21]。
RSA は 2000 年に特許が切れたので、1.0.3 から含まれるようになった[22]。
また、1.4.10/2.0.12 から Camellia も含まれるようになった[23]。
2.1系列以降では楕円曲線暗号(楕円曲線DSA (ECDSA)、楕円曲線ディフィー・ヘルマン鍵共有 (ECDH)、エドワーズ曲線デジタル署名アルゴリズム (EdDSA))に対応する[9]。
2022年時点での安定版である2.3系列および長期サポート版 (LTS) である2.2系列において対応しているアルゴリズムは、下記のとおりである。