Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

GnuPG 2.0

219 views
Skip to first unread message

Katsumi Yamaoka

unread,
Nov 20, 2006, 9:49:28 PM11/20/06
to
どなたか GnuPG 2.0[1] を試した方はいらっしゃいませんか?

Fedora Core 6 上で試しました。単に署名や暗号をする分には問題無い
のですが、目玉である gpg-agent を使って passphrase を覚えておい
てもらおうとすると、そもそも passphrase を入力することができませ
ん。Gmane ニュースグループで質問してみた[2] のですが、今のところ
反応がありません。具体的には、

gpg-agent を使わなければ、例えばコマンドラインで以下を実行すると

echo test.|gpg2 --clearsign|gpg2 --verify

pinentry を介して passphrase を入力することができます。その際
pinentry のウィンドウには一文字入力するたびに * がエコーされます。
ところが gpg-agent を走らせて、環境変数 GPG_AGENT_INFO を設定す
ると、上記と同じ操作で pinentry が現れるものの、passphrase を入
力しても * がエコーされず、署名にも失敗します。なお pinentry は
pinentry-gtk-2 への symlink で、これを端末版の pinentry-curses
にすると、ちゃんと動きます。mew-pinentry は使えませんでした。

「うちでは動いているよ」だけでも結構ですので、何か情報がありまし
たらお願いします。なお、私がどうやってインストールしたかなどの情
報は、[2] に書いてあります。

[1] GnuPG 2.0 リリースアナウンス
http://lists.gnupg.org/pipermail/gnupg-announce/2006q4/000239.html

[2] 質問
http://article.gmane.org/gmane.comp.encryption.gpg.user/17095
ここにはちょっとした誤記があります。gpg-agent を起動するための正
しいスクリプトはこうです:

--8<---------------cut here---------------start------------->8---
if test -z "`ps x | grep gpg-agent|grep -v grep`"; then
gpg-agent --daemon --write-env-file
fi
. $HOME/.gpg-agent-info; export GPG_AGENT_INFO
--8<---------------cut here---------------end--------------->8---
--
山岡

Shinichiro HIDA

unread,
Nov 21, 2006, 12:52:20 AM11/21/06
to
飛田です。

>>>>> In <b4m4pst...@jpl.org>

>>>>> Katsumi Yamaoka <yam...@jpl.org> wrote:
> どなたか GnuPG 2.0[1] を試した方はいらっしゃいませんか?

[...]

> 「うちでは動いているよ」だけでも結構ですので、何か情報がありまし
> たらお願いします。なお、私がどうやってインストールしたかなどの情
> 報は、[2] に書いてあります。

;; 良く分かってないのですが.. _o_

Debian Sarge(安定版) 上で試してみました。
;; gnupg2, gnupg-agent は deb パッケージの物です。

最初、X 上のターミナルから 'gpg-agent --daemon' しただけだと環境変数が
export されてないようだったので、ssh-agent と同じような物か、と、思い、
eval してやったら小窓が popup し、そこへパスフレーズを入力した所キャッ
シュしてくれたようです。

やった事は、

$ eval `ssh-agent --daemon`
$ cat ~/tmp/test.txt |gpg2 --clearsign <- 小窓が popup してパスフレーズを入力。
gpg: NOTE: THIS IS A DEVELOPMENT VERSION!
gpg: It is only intended for test purposes and should NOT be
gpg: used in a production environment or with production keys!
gpg: WARNING: This version of gpg is not very matured and
gpg: WARNING: only intended for testing. Please keep using
gpg: WARNING: gpg 1.2.x, 1.3.x or 1.4.x for OpenPGP

You need a passphrase to unlock the secret key for
user: "Shinichiro HIDA (Stained Glass) <shini...@stained-g.net>"
1024-bit DSA key, ID 470C1CE9, created 2001-04-12

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

これは gpg のクリアサインのテストです。

うまく署名出来るのでしょうか?

ちなみに、euc-jp-unix です。
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.9.15 (GNU/Linux)

iD8DBQFFYpHl5BbTmEcMHOkRAoSgAJ9fnLEZfnLtpgIzLUjRKpdcvlhymACfV7ox
Sk0mVqNYx4KnP00W/23RNHI=
=6VBY
-----END PGP SIGNATURE-----

これ以降は、パスフレーズ入力なしで署名出来ました。


--
Shinichiro HIDA
sta...@po10.lcv.ne.jp

Katsumi Yamaoka

unread,
Nov 21, 2006, 1:31:46 AM11/21/06
to
>>>>> In <87bqn12vor.wl%sta...@po10.lcv.ne.jp> 飛田さん wrote:

>> どなたか GnuPG 2.0[1] を試した方はいらっしゃいませんか?

> ;; 良く分かってないのですが.. _o_

同じく。^^;;

> Debian Sarge(安定版) 上で試してみました。
> ;; gnupg2, gnupg-agent は deb パッケージの物です。

ご確認ありがとうございます。

> 最初、X 上のターミナルから 'gpg-agent --daemon' しただけだと環境変数が
> export されてないようだったので、

はい、その式が gpg-agent を起動するとともに export 用のスクリプ
トを返すので、飛田さんのように eval `gpg-agent --daemon` とやれ
ば良いそうです。 csh 系の shell だったら eval `gpg-agent --csh
--daemon` ですね。ぼくは、複数の agent を起動してしまうことを避
けて、login 後の環境全体に適用させるために、~/.Xclients にこう書
いたわけです。

--8<---------------cut here---------------start------------->8---
if test -z "`ps x | grep gpg-agent|grep -v grep`"; then
gpg-agent --daemon --write-env-file
fi
. $HOME/.gpg-agent-info; export GPG_AGENT_INFO
--8<---------------cut here---------------end--------------->8---

> ssh-agent と同じような物か、と、思い、


> eval してやったら小窓が popup し、そこへパスフレーズを入力した所キャッ
> シュしてくれたようです。

ふうむ、問題無いようですねえ。ただし飛田さんがお使いのものは
GnuPG v1.9.15 (GNU/Linux) ですね。うちでは以下の版を使っているん
ですが、そういう問題なのか、はたまた Fedora Core 6 固有の問題な
のか...

gpg2 --version
=> gpg (GnuPG) 2.0.0
gpg-agent --version
=> gpg-agent (GnuPG) 2.0.0
pinentry --version
=> pinentry-gtk2 0.7.2

> やった事は、

> $ eval `ssh-agent --daemon`
> $ cat ~/tmp/test.txt |gpg2 --clearsign <- 小窓が popup してパスフレーズを入力。

[...]

> これは gpg のクリアサインのテストです。
> うまく署名出来るのでしょうか?
> ちなみに、euc-jp-unix です。

> これ以降は、パスフレーズ入力なしで署名出来ました。

うーむ。

gpg: Signature made Tue Nov 21 14:43:01 2006 JST using DSA key ID 470C1CE9
[GNUPG:] BADSIG E416D398470C1CE9 Shinichiro HIDA (Stained Glass) <stained at po10.lcv.invalid>
gpg: BAD signature from "Shinichiro HIDA (Stained Glass) <stained <at> po10.lcv.invalid>"

試していませんが、署名されたパートを euc-jp-unix でエンコードし
直して認証にかければ OK になるのかなあ。でも、生記事すなわち
iso-2022-jp で送信したものと同じものに署名するのが普通ではないで
すか? ちなみに、この記事はそうやって署名されているはずです (た
だし gpg-agent は殺しています ;_;)。

公開鍵: http://www.jpl.org/pubkey.txt
--
山岡

Shinichiro HIDA

unread,
Nov 21, 2006, 1:43:24 AM11/21/06
to
飛田です。

>>>>> In <87bqn12vor.wl%sta...@po10.lcv.ne.jp>
>>>>> Shinichiro HIDA <sta...@po10.lcv.ne.jp> wrote:
> 飛田です。

> Debian Sarge(安定版) 上で試してみました。
> ;; gnupg2, gnupg-agent は deb パッケージの物です。

> 最初、X 上のターミナルから 'gpg-agent --daemon' しただけだと環境変数が
> export されてないようだったので、ssh-agent と同じような物か、と、思い、
> eval してやったら小窓が popup し、そこへパスフレーズを入力した所キャッ
> シュしてくれたようです。

手元では、いつも 'ssh-agent' は X を起動する前 (runlevel 2 で起動してま
す) にコンソールから eval しているので、'gpg-agent --daemon' もそうして
みた[0]所、startx で X を起動した後に開いた複数のターミナルでも環境変数
GPG_AGENT_INFO が有効である[1]事を確認しました。

[0] コンソールから $ eval `gpg-agent --daemon` してみました。

[1] $ cat test.txt |gpg2 --clearsign すると、パスフレーズ入力用の小窓が
popup し、それ以降は他のターミナルからでもパスフレーズ入力なしにサ
イン可能。

;; タイムアウト設定があるようなので、0 とかにするとタイムアウトなしにな
;; るのかな、というのは試してません。

--
Shinichiro HIDA
sta...@po10.lcv.ne.jp

Shinichiro HIDA

unread,
Nov 21, 2006, 2:50:37 AM11/21/06
to
飛田です。

>>>>> In <b4m8xi5...@jpl.org>
>>>>> Katsumi Yamaoka <yam...@jpl.org> wrote:

> うーむ。

> gpg: Signature made Tue Nov 21 14:43:01 2006 JST using DSA key ID 470C1CE9
> [GNUPG:] BADSIG E416D398470C1CE9 Shinichiro HIDA (Stained Glass) <stained at po10.lcv.invalid>
> gpg: BAD signature from "Shinichiro HIDA (Stained Glass) <stained <at> po10.lcv.invalid>"

> 試していませんが、署名されたパートを euc-jp-unix でエンコードし
> 直して認証にかければ OK になるのかなあ。でも、生記事すなわち
> iso-2022-jp で送信したものと同じものに署名するのが普通ではないで
> すか?

ぁ、すみません。先日、ちと 'gpg --edit-key' して余分な物を消してか
ら、'gpg -a -o file --export' してなかったせい(鍵は先ほど置き直しまし
た)かもしれません。(良く分かってません)

;; 手元では pgg-verify-region だと valid になりました。また、ターミナル
;; にペーストして検証(echo "mouse2" |gpg2 --verify)しても Good
;; signature になります。

--
Shinichiro HIDA
sta...@po10.lcv.ne.jp

Shinichiro HIDA

unread,
Nov 21, 2006, 11:26:24 AM11/21/06
to
飛田です。

>>>>> In <b4m8xi5...@jpl.org>
>>>>> Katsumi Yamaoka <yam...@jpl.org> wrote:

[...]

> ふうむ、問題無いようですねえ。ただし飛田さんがお使いのものは
> GnuPG v1.9.15 (GNU/Linux) ですね。うちでは以下の版を使っているん
> ですが、そういう問題なのか、はたまた Fedora Core 6 固有の問題な
> のか...

> gpg2 --version
> => gpg (GnuPG) 2.0.0
> gpg-agent --version
> => gpg-agent (GnuPG) 2.0.0
> pinentry --version
> => pinentry-gtk2 0.7.2

Debian Etch (もうすぐリリース) のインストールテストを兼ねてテストマシン
上に環境を作ってみました。

;; Desctop 環境は慣れない Gnome です。

gpg2 --version
=> gpg (GnuPG) 2.0.0
gpg-agent --version
=> gpg-agent (GnuPG) 2.0.0
pinentry --version

=> pinentry-qt (pinentry) 0.7.2

一応、テストマシンへの新規インストール直後で、必要な物は deb パッケージ
で揃えました。これでテストしたのですが、素直に使えてます。

;; pinentry-gtk2 (/usr/bin/pinentry-gtk-2)も同時に入れたのですが、どう
;; も /usr/bin/pinentry は、/usr/bin/pinentry-qt を指してますね。
;; /usr/sbin/update-alternatives --display pinentry すると、gtk2 の方は
;; priority 85 で、qt の方が 90 になってるので優先されてるようです。

;; ちなみに、update-alternatives --config pinentry で、gtk2 に切替えて
;; みましたが、こちらでも問題なく動きました。

gtk2 あたりの問題ですかね..

--
Shinichiro HIDA
sta...@po10.lcv.ne.jp

Shinichiro HIDA

unread,
Nov 21, 2006, 11:45:27 AM11/21/06
to
飛田です。

>>>>> In <87wt5osr4f.wl%sta...@po10.lcv.ne.jp>

>>>>> Shinichiro HIDA <sta...@po10.lcv.ne.jp> wrote:
> 飛田です。

> >>>>> In <b4m8xi5...@jpl.org>
> >>>>> Katsumi Yamaoka <yam...@jpl.org> wrote:

> [...]

> Debian Etch (もうすぐリリース) のインストールテストを兼ねてテストマシン
> 上に環境を作ってみました。

> ;; Desctop 環境は慣れない Gnome です。

すんません。<del>Desctop</del> -> Desktop の間違いです。

[...]

> gtk2 あたりの問題ですかね..

これ、動いた deb パッケージの pinentry-gtk2 を調べてみると、

$ ldd /usr/bin/pinentry-gtk-2
linux-gate.so.1 => (0xffffe000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xa7c9c000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xa7c1b000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xa7be1000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xa7ba7000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xa7b15000)
libncurses.so.5 => /lib/libncurses.so.5 (0xa7ad3000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xa79a2000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xa798c000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xa7984000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xa7898000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xa787e000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xa787a000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xa7876000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0xa7814000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xa77ef000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xa77c5000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xa77b7000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0xa77ae000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xa77ab000)
libXi.so.6 => /usr/lib/libXi.so.6 (0xa77a3000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xa779f000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xa7796000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xa7791000)
librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xa7787000)
/lib/ld-linux.so.2 (0xa7f95000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xa775c000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xa76f2000)
libz.so.1 => /usr/lib/libz.so.1 (0xa76de000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xa76db000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xa76d5000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0xa76b1000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0xa7692000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xa7680000)

こんな感じになってました。

--
Shinichiro HIDA
sta...@po10.lcv.ne.jp

Katsumi Yamaoka

unread,
Nov 21, 2006, 6:40:31 PM11/21/06
to
>>>>> In <87vel8sq8o.wl%sta...@po10.lcv.ne.jp> 飛田さん wrote:

>> Debian Etch (もうすぐリリース) のインストールテストを兼ねてテストマシン
>> 上に環境を作ってみました。
>> ;; Desctop 環境は慣れない Gnome です。

わざわざ試して下さってありがとうございます。

Debian では問題無いのですねえ。その後 metacity の代わりに twm を
試してみたりなどしたのですが、らちが明かないので bug-gnupg にも
投げてみました。後で結果を報告します。

>> gtk2 あたりの問題ですかね..
> これ、動いた deb パッケージの pinentry-gtk2 を調べてみると、

> $ ldd /usr/bin/pinentry-gtk-2
[...]
> こんな感じになってました。

微妙に違いますね。

山> libcap.so.1 => /lib/libcap.so.1
飛> (none)

山> libexpat.so.0 => /lib/libexpat.so.0
飛> libexpat.so.1 => /usr/lib/libexpat.so.1

あと、うちには無い /lib/tls/i686/cmov/* をいくつか使っているとか。
--
山岡

Katsumi Yamaoka

unread,
Nov 22, 2006, 6:09:38 AM11/22/06
to
>>>>> In <b4mr6vw...@jpl.org> 山岡 wrote:

> bug-gnupg にも投げてみました。後で結果を報告します。

GnuPG メインテナの Werner Koch さんからすぐに返事がきました。
かいつまんでその内容を書くと、

まず環境変数 GPG_TTY を設定する必要があるとのこと。例えば
~/.bashrc だったら:

GPG_TTY=`tty`; export GPG_TTY

しかし、これをやっても状況は変わりませんでした。飛田さんはそんな
ものは設定していないでしょう? それに Emacs ではどうやるんだか。

さらに、稼働中の gpg-agent で何がどうなっているかを見るための
gpg-connect-agent コマンドの使い方を教わりました。いわく:

gpg-connect-agent

で起動して以下を入力。

GET_PASSPHRASE X X X X

すると 16進で表現した passphrase が以下のように現れるはず。

OK 313233343536

そして以下を入力すると、

GET_PASSPHRASE --data -- X X X X

次のようなものが現れるはず。

D 123456
OK

しかし、私の手元では単に OK という返事が返ってくるだけです。
どうも Fedora Core 6 の何かが悪さをしているのではないかと思い始
めました。後で Solaris のマシンでも試してみようと思います。

というようなことを Werner Koch さんに返事しておきました。
--
山岡

Katsumi Yamaoka

unread,
Nov 28, 2006, 11:35:21 PM11/28/06
to
>>>>> In <b4m4pst...@jpl.org> 山岡 wrote:

> 単に署名や暗号をする分には問題無いのですが、目玉であるgpg-agent を使っ


> て passphrase を覚えておいてもらおうとすると、そもそも passphrase を
> 入力することができません。

scim-imengine-dev メーリングリストで助けていただき、この問題は解
決しました。原因は、詳しくはわかりませんが、私が Emacs 以外の X
クライアントで日本語入力に使っている SCIM と GnuPG の相性の問題
のようです。

解決策は gpg-agent をデーモンとして起動するときだけ GTK_IM_MODULE
という環境変数の値を "scim" または "" にすることです。

現在 gpg-agent は ~/.Xclients ファイルに入れた以下のスクリプトで
起動させていますが、正しく passphrase を入力することができ、以後
は gpg-agent が覚えている値が使われるようになりました。

--8<---------------cut here---------------start------------->8---
if ! gpg-agent 2>/dev/null; then
GTK_IM_MODULE= gpg-agent --daemon --use-standard-socket --write-env-file


fi
. $HOME/.gpg-agent-info; export GPG_AGENT_INFO
--8<---------------cut here---------------end--------------->8---

詳しくは (よくわかっていないので、たいしたことは書いていませんが)
以下の Fedora.jp 掲示板をご覧下さい。

http://bbs.fedora.jp/read.php?FID=10&TID=4774
--
山岡

0 new messages