Daiki Ueno writes: > XeCycle writes: > >> I have these lines in my ~/.gnus.el for OpenPGP signature verifying, >> however, it doesn't work. [...] > Well, how does it not work? I have the following settings in addition: > > ~/.gnus: > > (setq gnus-buttonized-mime-types '("multipart/signed") > mm-verify-option 'always) > > ~/.gnupg/gpg.conf: > > keyserver-options auto-key-retrieve > keyserver hkp://keys.gnupg.net > > and it successfully verifies your signature. Indeed I have more: (require 'epa) (setq mml2015-use 'epg) (setq epg-debug t) ;; (require 'pgg) ;; (setq mml2015-use 'pgg) (setq mm-verify-option 'known mm-decrypt-option 'known gnus-treat-x-pgp-sig t gnus-buttonized-mime-types '("multipart/alternative" "multipart/encrypted" "multipart/signed")) With PGG, it worked fine. However it'll inform me of PGG being deprecated in favour of EasyPG, but EasyPG doesn't work for me. > You could try (setq epg-debug t) and inspect " *epg-debug*" buffer (note > the first letter is a space), if the problem seems to be in EPG itself. I did, but it seems useless. This is the debug trace when I try to display a signed message: > Debugger entered--Lisp error: (wrong-number-of-arguments #[(target old new) "\303 > #\207" [old new target replace-regexp-in-string] 4] 4) > mm-replace-in-string("\ntest encrypt.\n" "\n" "\n" t) > byte-code("\306\307\211\211\211\211\310\311\312\313@#\206\314\306#\211\203.\315A\314\307\306$\211\204R\316\317 !\211\205J\320\312@G! @%+\210\321\322\"\210\323 \324\325\306$\326!\327 \322\330\331\217\210\316\332\333\f\334\"! !\211\205\206\320\312@G! @%+\210.\207" [signature part signature-file plain context inhibit-redisplay t nil mm-find-raw-part-by-type get-text-property 0 protocol "application/pgp-signature" mm-find-part-by-type gnus-info "Corrupted" put-text-property throw error mm-replace-in-string "\n" "\n" mm-get-part epg-make-context (byte-code "\304 \n#\304\207" [context signature part plain epg-verify-string] 4) ((error (byte-code "\305\306\211\205\307\310 @G\n @%+\210\f@\311=\2036\312\313\211\2051\307\310 @G\n @%+\210\202N\312\314\f!\211\205L\307\310 @G\n @%+\210\315\304 \"\207" [mm-security-handle value parameter handle error gnus-info "Failed" put-text-property 0 quit gnus-details "Quit." mml2015-format-error throw] 7))) epg-verify-result-to-string epg-context-result-for verify ctl handle mm-security-handle value parameter] 7) > mml2015-epg-verify(((#> ("text/plain") nil nil nil nil nil nil) (#> ("application/pgp-signature") nil nil nil nil nil nil)) (#("multipart/signed" 0 16 (protocol "application/pgp-signature" micalg "pgp-sha1" boundary "=-=-=" buffer #> from "xecycle@gmail.com" start nil)) (protocol . "application/pgp-signature") (micalg . "pgp-sha1") (boundary . "=-=-="))) > mml2015-verify(((#> ("text/plain") nil nil nil nil nil nil) (#> ("application/pgp-signature") nil nil nil nil nil nil)) (#("multipart/signed" 0 16 (protocol "application/pgp-signature" micalg "pgp-sha1" boundary "=-=-=" buffer #> from "xecycle@gmail.com" start nil)) (protocol . "application/pgp-signature") (micalg . "pgp-sha1") (boundary . "=-=-="))) > mm-possibly-verify-or-decrypt(((#> ("text/plain") nil nil nil nil nil nil) (#> ("application/pgp-signature") nil nil nil nil nil nil)) (#("multipart/signed" 0 16 (protocol "application/pgp-signature" micalg "pgp-sha1" boundary "=-=-=" buffer #> from "xecycle@gmail.com" start nil)) (protocol . "application/pgp-signature") (micalg . "pgp-sha1") (boundary . "=-=-=")) "xecycle@gmail.com") > mm-dissect-multipart((#("multipart/signed" 0 16 (protocol "application/pgp-signature" micalg "pgp-sha1" boundary "=-=-=" buffer #> from "xecycle@gmail.com" start nil)) (protocol . "application/pgp-signature") (micalg . "pgp-sha1") (boundary . "=-=-=")) "xecycle@gmail.com") > mm-dissect-buffer(nil t) > gnus-display-mime() > gnus-article-prepare-display() > gnus-article-prepare(15 nil) > gnus-summary-display-article(15 nil) > gnus-summary-select-article(nil nil pseudo) > gnus-summary-scroll-up(1) > call-interactively(gnus-summary-scroll-up nil nil) and this is the *epg-debug*: > /usr/bin/gpg --no-tty --status-fd 1 --yes --command-fd 0 --armor --textmode --output /tmp/epg-output1142m3f --detach-sign > [GNUPG:] USERID_HINT 8D718EC47795E591 Carl Lei (XeCycle) > [GNUPG:] NEED_PASSPHRASE 8D718EC47795E591 8D718EC47795E591 1 0 > [GNUPG:] GET_HIDDEN passphrase.enter > [GNUPG:] GOT_IT > [GNUPG:] GOOD_PASSPHRASE > [GNUPG:] BEGIN_SIGNING > [GNUPG:] SIG_CREATED D 1 2 01 1314321893 1FB67F1FD45DF681C84527F78D718EC47795E591 > /usr/bin/gpg --no-tty --status-fd 1 --yes --command-fd 0 --armor --textmode --output /tmp/epg-output1142zBm --detach-sign > [GNUPG:] USERID_HINT 8D718EC47795E591 Carl Lei (XeCycle) > [GNUPG:] NEED_PASSPHRASE 8D718EC47795E591 8D718EC47795E591 1 0 > [GNUPG:] GET_HIDDEN passphrase.enter > [GNUPG:] GOT_IT > [GNUPG:] GOOD_PASSPHRASE > [GNUPG:] BEGIN_SIGNING > [GNUPG:] SIG_CREATED D 1 2 01 1314321902 1FB67F1FD45DF681C84527F78D718EC47795E591 Seems gpg hadn't even been invoked for verifying signatures. This is really a painful problem for me... I just installed Emacs from git several weeks ago --- emacs-version "24.0.50.1". >> I checked variable `mml2015-use' and it's `epg', however the variable >> `mml2015-verify-function' is `mailcrypt-verify'. >> >> Well, this problem have been bothering me for a long time, I guess it's >> a configuration issue? Do I need to change the variable myself? I >> believe it isn't wanted. > > This shouldn't be a problem since the variable is only referred to from > `mml2015-mailcrypt-verify', which wouldn't be called when mml2015-use is > 'epg. I agree that the variable name is a bit misleading though. Thank you, so this may not be the major problem. -- Carl Lei (XeCycle) Department of Physics, Shanghai Jiao Tong University OpenPGP public key: 7795E591 Fingerprint: 1FB6 7F1F D45D F681 C845 27F7 8D71 8EC4 7795 E591