1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-21 06:55:39 +00:00

Avoid false "wrong passphrase" messages in EPA

* lisp/epa-file.el (epa--wrong-password-p): Use a stricter regexp
to match "wrong passphrase" errors generated by GnuPG.  (Bug#65316)
This commit is contained in:
Jens Schmidt 2023-08-15 21:37:08 +02:00 committed by Eli Zaretskii
parent 8f683b51d8
commit fac0e2d533

View File

@ -123,9 +123,16 @@ encryption is used."
(cons "Opening input file" (cdr error))))))
(defun epa--wrong-password-p (context)
"Return whether a wrong password caused the error in CONTEXT."
(let ((error-string (epg-context-error-output context)))
;; Use a strict regexp here that really only matches "wrong
;; passphrase" errors to avoid hiding diagnostic information
;; (bug#65316). Below regexp also can fail to match non-English
;; messages, since at least the "decryption failed" part of it
;; seems to be localized. But since this means false negatives
;; this is probably OK.
(and (string-match
"decryption failed: \\(Bad session key\\|No secret key\\)"
"decryption failed: \\(Bad session key\\|Bad passphrase\\)"
error-string)
(match-string 1 error-string))))