You are not logged in.
I have a few org-mode files encrypted to .gpg files with different keys. Each file bears the headers to tell emacs it's an org-mode file and which key to use to encrypt/decrypt:
#-*- mode: org -*-
#-*- epa-file-encrypt-to: ("relevantaddress@domain.tld")This setup has been working flawlessly for years and the keys are set to expire later in 2015.
I noticed a couple days ago that emacs now fails to save those files: emacs works as expected while opening the files, i.e. pinentry-qt window shows up to ask for the passphrase, but when I tell it to save the file the following message is displayed in the minibuffer for a little while, then nothing and the file stays in its modified state. Last successful save dates from november 7th.
(numeric values replaced because they look like gpg keys)
Opening output file: [pub u 4096 1 <numeric value> <other numeric value> <another numeric value> nil u nil ...], 15
The command epa-list-keys fails with Args out of range:
command-execute: Symbol's function definition is void: \ epa-list-keys
epg-list-keys: Args out of range: ["pub" "u" "4096" "1" "<numeric value>" "<other numeric value>" "<another numeric value>" nil "u" nil ...], 15
I tracked this issue to this epg bug that supposed to be fixed since late november but obviously is not: http://debbugs.gnu.org/db/19/19002.html
For those with the same issue, here's how to fix it:
- uncompress epg.el.gz located in /usr/share/emacs/24.4/lisp
- apply the below diff to epg.el
- add write permission for regular user to epg.elc
- run the byte-compile command from inside emacs on epg.el
- remove write permission for regular user to epg.elc
diff --git a/lisp/epg.el b/lisp/epg.el
index 77181a1..4d9bbd2 100644
--- a/lisp/epg.el
+++ b/lisp/epg.el
@@ -1910,8 +1910,9 @@ This function is for internal use only."
string (match-string 0)
index 0
field 0)
- (while (eq index
- (string-match "\\([^:]+\\)?:" string index))
+ (while (and (< field (length (car keys)))
+ (eq index
+ (string-match "\\([^:]+\\)?:" string index)))
(setq index (match-end 0))
(aset (car keys) field (match-string 1 string))
(setq field (1+ field))))http://git.savannah.gnu.org/cgit/emacs. … d=dbae12c5
Last edited by kazimir (2014-12-13 13:55:43)
Offline
looks good.
See also. https://bbs.archlinux.org/viewtopic.php … 3#p1484413
Offline