[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