[Mew-dist 12496] Re: PGP unsupported signature ?
Kazu Yamamoto ( 山本和彦 )
kazu at example.com
2000年 2月 21日 (月) 12:08:57 JST
From: Koyama Mituru <mkoya at example.com>
Subject: [Mew-dist 12484] PGP unsupported signature ?
> PGP unsupported signature(2).は何を意味するのでしょ
> うか。
すいません。以下のパッチを当て下さい。
これはあまりユーザが知らなくてもいいことですが、PGP の相互接続性を複雑
にしているのは、以下のような要因があります。
PGP 全般の書式の新、旧
サポートしている暗号アルゴリズムの種類
署名の書式の新(v3)、旧(v4)
GNUPG はデフォルトで v4 の署名を生成します。PGP 5.0i では、v3 の署名し
か扱えません。pre9 ではこのエラーを拾っていなかったので、Mew-dist
12397 で二宮さんが解説してくれているように、
X-Mew: <body>
という訳のわからない検証結果になっていました。
pre10 では、このエラーを unsupported signature(2) としたのですが、この
方法には副作用があったようです。以下は、知らない署名の書式すべてを
unsupported signature (2 ではない)とするパッチです。
P.S.
次の次の BSD Magazine で GNUPG を解説する企画があるんですが、こういう
相互接続性のことを考えると、どうも書くのが億劫になってしまいます。
--かず@知りすぎていると、恐くて書けないの法則
Index: mew-pgp.el
===================================================================
RCS file: /usr/home/kazu/cvsroot/Mew/mew/mew-pgp.el,v
retrieving revision 1.98.2.5
retrieving revision 1.98.2.6
diff -c -r1.98.2.5 -r1.98.2.6
*** mew-pgp.el 2000/02/16 02:41:29 1.98.2.5
--- mew-pgp.el 2000/02/21 03:01:18 1.98.2.6
***************
*** 101,107 ****
": decryption failed: secret key not available"))
(defconst mew-pgp-msg-unsupported
'("Unsupported packet format" ;; including algorithms and packets
! "Unsupported packet format"
"xxx"))
(defconst mew-pgp-verify-addr
'(".* \\(signature from user\\) " "\\( \\)" "gpg: .* \\(from\\|aka\\) "))
--- 101,107 ----
": decryption failed: secret key not available"))
(defconst mew-pgp-msg-unsupported
'("Unsupported packet format" ;; including algorithms and packets
! "Unsupported packet format\\|None of the signatures were understood"
"xxx"))
(defconst mew-pgp-verify-addr
'(".* \\(signature from user\\) " "\\( \\)" "gpg: .* \\(from\\|aka\\) "))
***************
*** 153,159 ****
(defvar mew-pgp-result-sec-succ "PGP decrypted. ")
(defvar mew-pgp-result-dec-fail "PGP NOT decrypted for some reasons.")
(defvar mew-pgp-result-unsup "PGP unsupported signature.")
- (defvar mew-pgp-result-unsup2 "PGP unsupported signature(2).")
(defvar mew-pgp-prompt-enter-pass "Enter pass phrase (%s): ")
(defvar mew-pgp-prompt-reenter-pass "Re-enter pass phrase (%s): ")
--- 153,158 ----
***************
*** 236,244 ****
(if (search-forward (mew-pgp-get mew-pgp-msg-no-keyring) nil t)
(setq ret mew-pgp-result-pubring)
(goto-char (point-min))
! (if (search-forward (mew-pgp-get mew-pgp-msg-unsupported) nil t)
(setq ret mew-pgp-result-unsup)
! (setq ret mew-pgp-result-unsup2))))) ;; ret may be nil
;; Signature result is found.
(setq ret (concat (mew-match 1) " PGP sign "))
(goto-char (point-max))
--- 235,247 ----
(if (search-forward (mew-pgp-get mew-pgp-msg-no-keyring) nil t)
(setq ret mew-pgp-result-pubring)
(goto-char (point-min))
! (if (re-search-forward (mew-pgp-get mew-pgp-msg-unsupported) nil t)
(setq ret mew-pgp-result-unsup)
! ;; this line must be nil since this function is used
! ;; by the decryption function, too, for signed-then-encrypted
! ;; messages. We can't tell whether or not signatures exist
! ;; from the outside of the cipher.
! ))))
;; Signature result is found.
(setq ret (concat (mew-match 1) " PGP sign "))
(goto-char (point-max))
Mew-dist メーリングリストの案内