0) gpg --recv-key $KEYID where $KEYID is a GPG key you will use in with multiple encryption subkeys, one of which is expired, but not revoked. 1) start emacs -Q 2) select a region 3) run epa-encrypt region, and select a GPG key with multiple encryption subkeys, one of which has expired. At the moment, you can use 762B57BB784206AD ---------------------------------------------------------------------- Backtrace: Debugger entered--Lisp error: (error "Encrypt failed: ((key-expired (expiration-time 19586 . 10626)) (key-expired (expiration-time 19586 . 10626)))") signal(error ("Encrypt failed: ((key-expired (expiration-time 19586 . 10626)) (key-expired (expiration-time 19586 . 10626)))")) error("Encrypt failed: %S" ((key-expired (expiration-time 19586 . 10626)) (key-expired (expiration-time 19586 . 10626)))) epg-encrypt-string((epg-context . [OpenPGP t t nil nil nil nil (epa-passphrase-callback-function) (epa-progress-callback-function . "Encrypting...") nil nil # "/tmp/epg-output18334-Qe" (...) encrypt]) "top-sekrit" ((epg-key . [ultimate ... ...])) nil) epa-encrypt-region(192 202 ((epg-key . [ultimate ... ...])) nil nil) call-interactively(epa-encrypt-region t nil) execute-extended-command(nil) call-interactively(execute-extended-command nil nil) ---------------------------------------------------------------------- Contents of buffer *epg* Process epg finished [GNUPG:] KEYEXPIRED 1283598722 [GNUPG:] SIGEXPIRED deprecated-use-keyexpired-instead [GNUPG:] KEYEXPIRED 1283598722 [GNUPG:] SIGEXPIRED deprecated-use-keyexpired-instead [GNUPG:] PROGRESS stdin ? 0 0 [GNUPG:] BEGIN_ENCRYPTION 2 9 [GNUPG:] PROGRESS stdin ? 10 0 [GNUPG:] END_ENCRYPTION ---------------------------------------------------------------------- Analysis: I believe that GPG actually succeeds, and EasyPG misinterprets the output. If turn on easypg debugging, I see a command like gpg --no-tty --status-fd 1 --yes --use-agent --command-fd 0 --armor --textmode --output /tmp/epg-output17589uXc --always-trust --encrypt -r 762B57BB784206AD This command succeeds if I run it in a shell, and produces KEYEXPIRED output In GNU Emacs 23.2.1 (x86_64-pc-linux-gnu, GTK+ Version 2.20.1) of 2010-12-11 on brahms, modified by Debian Windowing system distributor `The X.Org Foundation', version 11.0.10707000 configured using `configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.2/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.2/leim' '--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS='' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: en_CA.UTF-8 value of $XMODIFIERS: nil locale-coding-system: utf-8-unix default enable-multibyte-characters: t Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: t o p - e s e k r i t C-SPC C-e M-x e p a C-g M-x t o g SPC d SPC SPC SPC e SPC M-x e p a SPC e n SPC r SPC m C-SPC C-n C-n C-n C-n C-n C-n C-n C-n M-w M-x r e p o r SPC e m SPC b SPC Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Mark set Quit Making completion list... Debug on Error enabled globally widget-button-press: Buffer is read-only: # Click here or C-M-c to finish Encrypting...0% (10/0) Entering debugger... Mark set Load-path shadows: /usr/local/share/emacs/site-lisp/notmuch hides /usr/share/emacs/23.2/site-lisp/notmuch/notmuch /usr/local/share/emacs/site-lisp/notmuch-message hides /usr/share/emacs/23.2/site-lisp/notmuch/notmuch-message /usr/local/share/emacs/site-lisp/coolj hides /usr/share/emacs/23.2/site-lisp/notmuch/coolj /usr/local/share/emacs/site-lisp/notmuch-mua hides /usr/share/emacs/23.2/site-lisp/notmuch/notmuch-mua /usr/local/share/emacs/site-lisp/notmuch-query hides /usr/share/emacs/23.2/site-lisp/notmuch/notmuch-query /usr/local/share/emacs/site-lisp/notmuch-wash hides /usr/share/emacs/23.2/site-lisp/notmuch/notmuch-wash /usr/local/share/emacs/site-lisp/notmuch-hello hides /usr/share/emacs/23.2/site-lisp/notmuch/notmuch-hello /usr/local/share/emacs/site-lisp/notmuch-show hides /usr/share/emacs/23.2/site-lisp/notmuch/notmuch-show /usr/local/share/emacs/site-lisp/notmuch-address hides /usr/share/emacs/23.2/site-lisp/notmuch/notmuch-address /usr/local/share/emacs/site-lisp/notmuch-maildir-fcc hides /usr/share/emacs/23.2/site-lisp/notmuch/notmuch-maildir-fcc /usr/local/share/emacs/site-lisp/notmuch-lib hides /usr/share/emacs/23.2/site-lisp/notmuch/notmuch-lib /usr/share/emacs/23.2/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup /usr/share/emacs/23.2/site-lisp/magit hides /usr/share/emacs/site-lisp/magit /usr/share/emacs/23.2/site-lisp/dictionaries-common/flyspell hides /usr/share/emacs/23.2/lisp/textmodes/flyspell /usr/share/emacs/23.2/site-lisp/dictionaries-common/ispell hides /usr/share/emacs/23.2/lisp/textmodes/ispell /usr/local/share/emacs/site-lisp/org-id hides /usr/share/emacs/23.2/lisp/org/org-id /usr/local/share/emacs/site-lisp/org-xoxo hides /usr/share/emacs/23.2/lisp/org/org-xoxo /usr/local/share/emacs/site-lisp/org-rmail hides /usr/share/emacs/23.2/lisp/org/org-rmail /usr/local/share/emacs/site-lisp/org-inlinetask hides /usr/share/emacs/23.2/lisp/org/org-inlinetask /usr/local/share/emacs/site-lisp/org-bbdb hides /usr/share/emacs/23.2/lisp/org/org-bbdb /usr/local/share/emacs/site-lisp/org-install hides /usr/share/emacs/23.2/lisp/org/org-install /usr/local/share/emacs/site-lisp/org-plot hides /usr/share/emacs/23.2/lisp/org/org-plot /usr/local/share/emacs/site-lisp/org-w3m hides /usr/share/emacs/23.2/lisp/org/org-w3m /usr/local/share/emacs/site-lisp/org-mhe hides /usr/share/emacs/23.2/lisp/org/org-mhe /usr/local/share/emacs/site-lisp/org-publish hides /usr/share/emacs/23.2/lisp/org/org-publish /usr/local/share/emacs/site-lisp/org-mew hides /usr/share/emacs/23.2/lisp/org/org-mew /usr/local/share/emacs/site-lisp/org-list hides /usr/share/emacs/23.2/lisp/org/org-list /usr/local/share/emacs/site-lisp/org-latex hides /usr/share/emacs/23.2/lisp/org/org-latex /usr/local/share/emacs/site-lisp/org-bibtex hides /usr/share/emacs/23.2/lisp/org/org-bibtex /usr/local/share/emacs/site-lisp/org-gnus hides /usr/share/emacs/23.2/lisp/org/org-gnus /usr/local/share/emacs/site-lisp/org-protocol hides /usr/share/emacs/23.2/lisp/org/org-protocol /usr/local/share/emacs/site-lisp/org-clock hides /usr/share/emacs/23.2/lisp/org/org-clock /usr/local/share/emacs/site-lisp/org-macs hides /usr/share/emacs/23.2/lisp/org/org-macs /usr/local/share/emacs/site-lisp/org-faces hides /usr/share/emacs/23.2/lisp/org/org-faces /usr/local/share/emacs/site-lisp/org-compat hides /usr/share/emacs/23.2/lisp/org/org-compat /usr/local/share/emacs/site-lisp/org-mobile hides /usr/share/emacs/23.2/lisp/org/org-mobile /usr/local/share/emacs/site-lisp/org-remember hides /usr/share/emacs/23.2/lisp/org/org-remember /usr/local/share/emacs/site-lisp/org-agenda hides /usr/share/emacs/23.2/lisp/org/org-agenda /usr/local/share/emacs/site-lisp/org-ascii hides /usr/share/emacs/23.2/lisp/org/org-ascii /usr/local/share/emacs/site-lisp/org-info hides /usr/share/emacs/23.2/lisp/org/org-info /usr/local/share/emacs/site-lisp/org-archive hides /usr/share/emacs/23.2/lisp/org/org-archive /usr/local/share/emacs/site-lisp/org-jsinfo hides /usr/share/emacs/23.2/lisp/org/org-jsinfo /usr/local/share/emacs/site-lisp/org-footnote hides /usr/share/emacs/23.2/lisp/org/org-footnote /usr/local/share/emacs/site-lisp/org-habit hides /usr/share/emacs/23.2/lisp/org/org-habit /usr/local/share/emacs/site-lisp/org-src hides /usr/share/emacs/23.2/lisp/org/org-src /usr/local/share/emacs/site-lisp/org-timer hides /usr/share/emacs/23.2/lisp/org/org-timer /usr/local/share/emacs/site-lisp/org-exp-blocks hides /usr/share/emacs/23.2/lisp/org/org-exp-blocks /usr/local/share/emacs/site-lisp/org-datetree hides /usr/share/emacs/23.2/lisp/org/org-datetree /usr/local/share/emacs/site-lisp/org-irc hides /usr/share/emacs/23.2/lisp/org/org-irc /usr/local/share/emacs/site-lisp/org-icalendar hides /usr/share/emacs/23.2/lisp/org/org-icalendar /usr/local/share/emacs/site-lisp/org-html hides /usr/share/emacs/23.2/lisp/org/org-html /usr/local/share/emacs/site-lisp/org hides /usr/share/emacs/23.2/lisp/org/org /usr/local/share/emacs/site-lisp/org-freemind hides /usr/share/emacs/23.2/lisp/org/org-freemind /usr/local/share/emacs/site-lisp/org-exp hides /usr/share/emacs/23.2/lisp/org/org-exp /usr/local/share/emacs/site-lisp/org-mouse hides /usr/share/emacs/23.2/lisp/org/org-mouse /usr/local/share/emacs/site-lisp/org-docbook hides /usr/share/emacs/23.2/lisp/org/org-docbook /usr/local/share/emacs/site-lisp/org-crypt hides /usr/share/emacs/23.2/lisp/org/org-crypt /usr/local/share/emacs/site-lisp/org-indent hides /usr/share/emacs/23.2/lisp/org/org-indent /usr/local/share/emacs/site-lisp/org-mac-message hides /usr/share/emacs/23.2/lisp/org/org-mac-message /usr/local/share/emacs/site-lisp/org-colview hides /usr/share/emacs/23.2/lisp/org/org-colview /usr/local/share/emacs/site-lisp/org-feed hides /usr/share/emacs/23.2/lisp/org/org-feed /usr/local/share/emacs/site-lisp/org-wl hides /usr/share/emacs/23.2/lisp/org/org-wl /usr/local/share/emacs/site-lisp/org-vm hides /usr/share/emacs/23.2/lisp/org/org-vm /usr/local/share/emacs/site-lisp/org-attach hides /usr/share/emacs/23.2/lisp/org/org-attach /usr/local/share/emacs/site-lisp/org-table hides /usr/share/emacs/23.2/lisp/org/org-table Features: (shadow sort mail-extr message sendmail regexp-opt ecomplete rfc822 mml mml-sec password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231 rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader gnus-util netrc time-date mm-util mail-prsvr gmm-utils mailheader canlock sha1 hex-util hashcash mail-utils emacsbug debug wid-edit epa derived epg epg-config cus-start cus-load help-mode easymenu view tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd font-setting tool-bar dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev loaddefs button minibuffer faces cus-face files text-properties overlay md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process dbusbind system-font-setting font-render-setting gtk x-toolkit x multi-tty emacs)