Subject: bug#29665: 26.0.90; auth-source-pass decrypts entries 3 times on query

From: Lars Ingebrigtsen <[email-masked]>
Date: Sun, 14 Jul 2019 20:19:04 +0200

"John Wiegley" <[email-masked]> writes:

> I've enabled auth-source-pass on my system as follows:
>
>   (use-package auth-source-pass
>     :config
>     (auth-source-pass-enable)
>   
>     (defun auth-source-pass--read-entry (entry)
>       "Return a string with the file content of ENTRY."
>       (with-temp-buffer
>         (insert-file-contents (expand-file-name
>                                (format "%s.gpg" entry)
>                                (getenv "PASSWORD_STORE_DIR")))
>         (buffer-substring-no-properties (point-min) (point-max))))
>   
>     (defun auth-source-pass-entries ()
>       "Return a list of all password store entries."
>       (let ((store-dir (getenv "PASSWORD_STORE_DIR")))
>         (mapcar
>          (lambda (file) (file-name-sans-extension (file-relative-name file store-dir)))
>          (directory-files-recursively store-dir "\.gpg$")))))
>
> This works around the other bug I logged today. I have one file in my store:
>
>   ~/doc/.passwords/reddit.com
>
> It has a "login: jwiegley" field. I then run:
>
>   (auth-source-search :host "reddit.com" :user "jwiegley")
>
> After doing so, I can see it Decrypting the reddit.com.gpg file three times
> before it shows me the data, even with `auth-source-do-cache' set to t.

The test case is a bit complicated, but I instrumented the normal
~/.authinfo reading, and it seemed to me that it would only read the
file once when I do the auth-source-search.

Does this work better for you too now?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no