diff options
| author | Daiki Ueno | 2015-03-31 10:14:13 +0900 |
|---|---|---|
| committer | Daiki Ueno | 2015-03-31 10:14:13 +0900 |
| commit | 2e4b0c98a77657e787e04ae680403b187b271c21 (patch) | |
| tree | 859bd5522b93e26094a05f380f83d0ccb7f323da | |
| parent | ce88920edb410ed90733763843014470f1d40e28 (diff) | |
| download | emacs-2e4b0c98a77657e787e04ae680403b187b271c21.tar.gz emacs-2e4b0c98a77657e787e04ae680403b187b271c21.zip | |
plstore.el: Don't cache wrong passphrase
* plstore.el (plstore--decrypt): Clear entry in
`plstore-passphrase-alist' if decryption failed (bug#20030).
| -rw-r--r-- | lisp/gnus/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/gnus/plstore.el | 13 |
2 files changed, 15 insertions, 3 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 574b2e825c6..5b10d45e814 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2015-03-31 Daiki Ueno <ueno@gnu.org> | ||
| 2 | |||
| 3 | * plstore.el (plstore--decrypt): Clear entry in | ||
| 4 | `plstore-passphrase-alist' if decryption failed (bug#20030). | ||
| 5 | |||
| 1 | 2015-03-28 Adam Sjøgren <asjo@koldfront.dk> | 6 | 2015-03-28 Adam Sjøgren <asjo@koldfront.dk> |
| 2 | 7 | ||
| 3 | * gnus-sum.el (gnus-summary-make-menu-bar): Add "Display HTML images" | 8 | * gnus-sum.el (gnus-summary-make-menu-bar): Add "Display HTML images" |
diff --git a/lisp/gnus/plstore.el b/lisp/gnus/plstore.el index 12a0413dcaf..175e272cb9a 100644 --- a/lisp/gnus/plstore.el +++ b/lisp/gnus/plstore.el | |||
| @@ -270,9 +270,16 @@ symmetric encryption will be used.") | |||
| 270 | context | 270 | context |
| 271 | (cons #'plstore-progress-callback-function | 271 | (cons #'plstore-progress-callback-function |
| 272 | (format "Decrypting %s" (plstore-get-file plstore)))) | 272 | (format "Decrypting %s" (plstore-get-file plstore)))) |
| 273 | (setq plain | 273 | (condition-case error |
| 274 | (epg-decrypt-string context | 274 | (setq plain |
| 275 | (plstore--get-encrypted-data plstore))) | 275 | (epg-decrypt-string context |
| 276 | (plstore--get-encrypted-data plstore))) | ||
| 277 | (error | ||
| 278 | (let ((entry (assoc (plstore-get-file plstore) | ||
| 279 | plstore-passphrase-alist))) | ||
| 280 | (if entry | ||
| 281 | (setcdr entry nil))) | ||
| 282 | (signal (car error) (cdr error)))) | ||
| 276 | (plstore--set-secret-alist plstore (car (read-from-string plain))) | 283 | (plstore--set-secret-alist plstore (car (read-from-string plain))) |
| 277 | (plstore--merge-secret plstore) | 284 | (plstore--merge-secret plstore) |
| 278 | (plstore--set-encrypted-data plstore nil)))) | 285 | (plstore--set-encrypted-data plstore nil)))) |