[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 メーリングリストの案内