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

[debian-users:18992] GNUPG+MEW で暗号化できない



石川@デビアン中級者です。

現在potatoを使用していますが、MEW+GNUPGを使用していますが、
C-c,C-eを行うと、下記のエラーが発生します。
His/her public key is invalid. Sign the key by yourself, first.

mew実行時にpsでgpgの起動リストをチェックしてみると、以下のようになっていま
す。

宛先が自分の場合:
/usr/bin/gpg --encrypt --armor --batch --remote-user
aaa@xxxxxxxxx --remote-user aaa@xxxxxxxxx --output
/tmp/t_ishikawa421_SV/mew421eMk.asc /tmp/t_ishikawa421_SV/mew421E4X

宛先が別の人(gpg --importは実行済み)の場合:
/usr/bin/gpg --encrypt --armor --batch --remote-user
aaa@xxxxxxxxx --remote-user bbb@xxxxxxxxx --output
/tmp/t_ishikawa421_SV/mew421Fr2.asc /tmp/t_ishikawa421_SV/mew421rWq


宛先が自分の場合をシェルで実行したところ、以下のエラーが発生しています。
gpg: aaa@xxxxxxxxx: skipped: public key already present

manでチェックしてもgpg に--remote-userのオプションは有りません。
--default-recipientを使用するのではないでしょうか?
ちなみに私がテストしたところ、

"gpg --batch -o - -a -r bbb@xxxxxxxxx -e"では動作せず
"gpg --batch --yes -o - -e -a --default-recipient bbb@xxxxxxxxx"で動作しまし
た。



.emacsの設定は以下のとおりです。

; ---- user-ja DON'T MODIFY THIS LINE!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 日本語表示の設定
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(set-language-environment "Japanese")
(if (boundp 'xemacs-codename)
    (progn
      (set-default-buffer-file-coding-system 'euc-jp-unix)
      (set-keyboard-coding-system 'euc-jp-unix)
      (if (not window-system)
   (set-terminal-coding-system 'euc-jp-unix)
 )
      )
  (progn
    (set-default-coding-systems 'euc-japan-unix)
    (set-keyboard-coding-system 'euc-japan-unix)
    (if (not window-system)
 (set-terminal-coding-system 'euc-japan-unix)
      )
    )
  )
; 日本語 info が文字化けしないように
(auto-compression-mode t)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Xでのカラー表示
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(if (eq window-system 'x)
    (progn
;;hilit19の設定
      (if (not (boundp 'xemacs-codename))
   (progn
     (setq hilit-mode-enable-list '(not c-mode emacs-lisp-mode)
    hilit-background-mode 'light)
           ;;hilit-background-mode 'dark)
     (require 'hilit19)
     )
 )
;;font-lockの設定
      (require 'font-lock)
      (add-hook 'emacs-lisp-mode-hook 'font-lock-mode)
      (add-hook 'c-mode-hook 'font-lock-mode)
      ))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; C プログラムの書式
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;(defun my-c-mode-common-hook ()
;   (c-set-style "linux") (setq indent-tabs-mode t) ;linux 式がいいとき
;      /usr/src/linux/Documentation/CodingStyle 参照
;   (c-set-style "k&r") ;k&r式がいいときはこれを有効にする
;   (c-set-stype "gnu") ;デフォルトの設定
; )
;(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; いろいろ
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(global-set-key [delete] 'delete-char)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 漢字変換 (canna) の設定
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; yc-el を使う (emacs20-dl と emacs-dl-canna を使わない)
; 時は、以降をコメントアウトしてください。
(load-library "canna")
(setq canna-use-color t)
(canna)
(global-set-key "\C-o" 'canna-toggle-japanese-mode)
; ここまでコメントアウト
; その代わり、次の行を有効にする
; (load "yc")
(if (boundp 'xemacs-codename)
  (select-input-method "japanese-canna")
  (set-input-method "japanese-canna")
)
(toggle-input-method nil)
; ---- user-ja end DON'T MODIFY THIS LINE!
; mewの設定あれこれ
;""で囲まれている文字列(quoted-string)のMIMEデコード
(setq mew-decode-quoted t)


; ユーザ名付きの引用記号
(setq mew-cite-prefix-function 'mew-cite-prefix-username)

; 送信済を残す
(setq mew-fcc "Sent")

; 送信元の設定
(setq mew-from "Tomoaki Ishikawa <t-ishika@xxxxxxxxxxxx>" )

; 先頭の定型文書

(add-hook 'mew-draft-mode-hook
 (function
  (lambda ()
   (let ((p (point)))
    (goto-char (point-max))
    (insert-file "~/Mail/.Header")
    (goto-char p)
   )
  )
 )
)

(setq mew-mail-address-list '("t-ishika@xxxxxxxxxxxx"))
(setq mew-mail-domain-list '("cyborg.ne.jp"))


; Subjectフィールドで漢字を許可する
(setq mew-use-overlay-keymap nil)

; draft/下の#xxファイルを削除する
(setq  mew-prog-rmm "rm")
;PGPの設定をGNUPGPに変更する
(setq mew-prog-pgp "gpg")
(setq mew-prog-gpg "gpg")


また、関連パッケージは以下のとおりです。
ii  gnupg           1.0.0-3        GNU privacy guard - a free PGP
replacement.
ii  mew             1.94.1-1       Messaging in the Emacs World
ii  im              133-1          Internet Message

以上よろしくお願いします。


おまけ
Linux Magazine No.2のシェルの改良版です。


!/bin/sh
#
# GNU PGPメールエンコード処理
#
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/lib
ID=$1
TO=$2
export TEMPNAM
#テンポラリファイル作成
TEMPNAM=`mktemp /tmp/$ID.XXXXXX`
#メールの書き込み
cat - > $TEMPNAM
#
#from行の作成
#
FROM=`cat $TEMPNAM|grep ^From: |sed -e s/From://`
#
#Subject行の作成
#
SUBJECT=`cat $TEMPNAM|grep Subject |sed -e s/Subject://`
GNUPGHOME=/home/aaa/.gnupg
#下記では動作しなかった
#CMD="gpg --batch -o - -a -r $ID -e "
#
# GNUPGPパラメータ設定
#
CMD="gpg --batch --yes -o - -e -a --default-recipient $ID $TEMPNAM"
pubring=/home/aaa/.gnupg/pubring.gpg
trustdb=/home/aaa/.gnupg/secring.gpg
gpgpath=/usr/bin/gpg
export PATH ID TO FROM GNUPGHOME SUBJECT CMD pubring trustdb gpgpath
#
# 発信者が特定のドメイン名以外はFrom行とSubjectを書き換える
#
echo $FROM |grep "xxx.co.jp"
if [ $? -eq 1 ]
then
 FROM=aaa@xxxxxxxxx
 SUBJECT="Mail Datas"
fi
[ "$ID"  = ""     ] && CMD="echo ERR ID"
[ "$TO"  = ""     ] && CMD="echo ERR email"
[ ! -e $GNUPGHOME ] && CMD="echo ERR $GNUPGHOME"
[ ! -e $gpg       ] && CMD="echo ERR $gpg"
[ ! -e $pubring   ] && CMD="echo ERR $pubring"
[ ! -e $trustdb   ] && CMD="echo ERR $trustdb"
(
 echo "Subject: $SUBJECT"
 echo "To: $TO"
# mewで読めるようにする
cho "From: $FROM"
 echo "Mime-Version: 1.0"
 echo "Content-Type: Multipart/Encrypted;
protocol=\"application/pgp-encrypted\";"
 echo " boundary=\"--Security_Multipart--\""
 echo ""
 echo "----Security_Multipart--"
 echo "Content-Type: Application/Pgp-Encrypted"
 echo "Content-Transfer-Encoding: 7bit"
 echo ""
 echo "Version: 1"
 echo ""
 echo "----Security_Multipart--"
 echo "Content-Type: Application/Octet-Stream"
 echo "Content-Transfer-Encoding: 7bit"
 echo ""

 $CMD 2>&1
 echo ""
 echo "----Security_Multipart----"
)|sendmail -f $FROM $TO
#メールの削除
rm -f $TEMPNAM