[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-devel:15407] Re: how to gpg sign with mew?



On November 14, 2002, [debian-devel:15406],
Atsuhito Kohda <kohda@xxxxxxxxxxxxxxxxxxxx> wrote:

> 受け手から 
> gpg: BAD signature from "Atsuhito KOHDA <kohda@debian.org>"
> と言われました。
> 
> (setq mew-prog-pgp "gpg") はありますし info を見て
> (setq mew-prog-gpg "gpg") とか追加して自分宛にテストしても
> 
> X-Mew: <body> ... UNDEFINED
> 
> になってるので何か失敗してるようです。

自分のキーはultimately trustedになっていますか?  あと、~/.gnupgを
バックアップしておいてから、gpg --update-trustdbを実行してみると
どうでしょうか。

なお、mew_2.2-5以降では、デフォルトでgpgを使う設定になっています。

> 原因がさっぱり分らないのですが何か考えられることは
> あるでしょうか?システムは最新ではないにしても sid で
> 
> ii  mew            2.2-8          Messaging in the Emacs World
> ii  emacs21        21.2-5         The GNU Emacs editor.
> ii  gnupg          1.2.1-2        GNU privacy guard - a free PGP replacement.

手元では上記の組合せでも問題なく署名できています。(MewのDraftで
`C-c C-s')

なお、PGP/MIMEを使わずにclearsignで署名したいなら、mailcryptパッ
ケージをインストールして、下記のように設定しておけば、Draftで`C-c z'
を押すことでMailcryptとGnuPGを使ったclearsignでの署名ができます。
また、+queueに移って`C-c C-z'とすれば、そのclearsignを検証できます。

-- ~/.emacs -- 
(autoload 'mc-sign-region "mc-toplev" nil t)
(setq mc-default-scheme 'mc-scheme-gpg)

(defadvice mc-gpg-process-region (around my-cs-fix activate)
  (let* ((cs (my-mc-cs beg end))
	 (coding-system-for-read cs)
	 (coding-system-for-write cs))
    ad-do-it))

(defun my-mc-cs (beg end &optional no-ask)
  (interactive "r\nP")
  (require 'mew)
  (if (mew-draft-p)
      (mew-charset-to-cs (my-mew-body-charset))
    (if no-ask
	buffer-file-coding-system
      (let* ((cs (mew-charset-to-cs (mew-charset-guess-region beg end)))
	     prompt)
	(and cs
	     (setq prompt (format "Coding system (%s): " cs))
	     (read-coding-system prompt cs))))))
---- 

-- ~/.mew -- 
(defun my-mew-draft-share-user-keymap (symmap)
  (define-key (symbol-value symmap) "\C-cz" 'my-mew-mc-sign))
(my-mew-draft-share-user-keymap 'mew-draft-header-map)
(my-mew-draft-share-user-keymap 'mew-draft-body-map)
(my-mew-draft-share-user-keymap 'mew-draft-attach-map)

(defun my-mew-mc-sign (arg)
  (interactive "p")
  (let ((mew-use-8bit t))
    (mc-sign-region arg (my-mew-body-min) (my-mew-body-max))
    (if (mew-draft-p)
	(mew-draft-make-message))))

(defun my-mew-body-charset ()
  (interactive)
  (let (char)
    (if (mew-attach-p)
	(setq char (mew-syntax-get-param
		    (mew-syntax-get-ct
		     (mew-syntax-get-entry mew-encode-syntax '(1)))
		    "charset")))
    (or char
	(mew-charset-guess-region (my-mew-body-min) (my-mew-body-max)))))

(defun my-mew-body-min ()
  (interactive)
  (save-excursion
    (mew-header-goto-body)
    (point)))

(defun my-mew-body-max ()
  (interactive)
  (save-excursion
    (if (not (mew-attach-p))
	(point-max)
      (mew-attach-move-onto-body)
      (point))))
---- 

-- 
木下達也