[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#67937: 30.0.50; auth-source-pass relies on epa-file being enabled
From: |
Arsen Arsenović |
Subject: |
bug#67937: 30.0.50; auth-source-pass relies on epa-file being enabled |
Date: |
Sat, 23 Dec 2023 16:50:47 +0100 |
Hi Michael,
Michael Albinus <michael.albinus@gmx.de> writes:
> "J.P." <jp@neverwas.me> writes:
>
>> Hi Arsen,
>
> Hi,
>
>> Don't kill me, but I have another rather unlikely scenario perhaps
>> worthy of passing consideration (or dismissal):
>>
>> (setopt auth-source-pass-filename "/ssh:desktop.local:.password-store")
>>
>> If those Tramp addresses don't continue to work after your suggested
>> changes, we should probably ask Michael Albinus whether their working
>> currently is just an accident or something intentional and supported.
>
> I don't remember any special effort making auth-source-pass Tramp-affin,
> but I might misremember. However, I wouldn't call it "accident", but
> "Emacs design".
A happy accident, if you will :-)
> If accessing auth-source-pass-filename uses the well known primitive
> functions (insert-file-contents, expand-file-name alike), there
> shouldn't be a problem of keeping this compatibility with Tramp.
Right.
This v2 patch restores TRAMP support.
From 2097666b80c1b78462fbf454664b0017773c91d3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@aarsen.me>
Date: Thu, 21 Dec 2023 12:29:55 +0100
Subject: [PATCH v2] auth-source-pass: don't rely on epa-file (bug#67937)
* lisp/auth-source-pass.el (epg): Require epg.
(auth-source-pass--read-entry): Use epg-decrypt-string and
insert-file-contents-literally instead of relying on epa-file
decrypting files read via insert-file-contents. This avoids
interference from file-name-handler-alist, and avoids breaking
when epa-file-handler is not mong f-n-h-a.
---
lisp/auth-source-pass.el | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/lisp/auth-source-pass.el b/lisp/auth-source-pass.el
index 0f51755a250..abfcf4b710c 100644
--- a/lisp/auth-source-pass.el
+++ b/lisp/auth-source-pass.el
@@ -34,6 +34,7 @@
(require 'cl-lib)
(require 'auth-source)
(require 'url-parse)
+(require 'epg)
;; Use `eval-when-compile' after the other `require's to avoid spurious
;; "might not be defined at runtime" warnings.
(eval-when-compile (require 'subr-x))
@@ -194,11 +195,18 @@ auth-source-pass--get-attr
(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)
- auth-source-pass-filename))
- (buffer-substring-no-properties (point-min) (point-max))))
+ (let ((context (epg-make-context 'OpenPGP))
+ (file (expand-file-name
+ (format "%s.gpg" entry)
+ auth-source-pass-filename)))
+ (with-temp-buffer
+ ;; Avoid file-name-handler-alist interference. We're reading
+ ;; and decrypting a binary file here.
+ (insert-file-contents-literally file)
+ (epg-decrypt-string
+ context
+ (buffer-substring-no-properties (point-min)
+ (point-max))))))
(defun auth-source-pass-parse-entry (entry)
"Return an alist of the data associated with ENTRY.
--
2.43.0
Have a lovely day.
--
Arsen Arsenović
signature.asc
Description: PGP signature
- bug#67937: 30.0.50; auth-source-pass relies on epa-file being enabled, (continued)
- bug#67937: 30.0.50; auth-source-pass relies on epa-file being enabled, Michael Albinus, 2023/12/24
- bug#67937: 30.0.50; auth-source-pass relies on epa-file being enabled, Arsen Arsenović, 2023/12/24
- bug#67937: 30.0.50; auth-source-pass relies on epa-file being enabled, Eli Zaretskii, 2023/12/24
- bug#67937: 30.0.50; auth-source-pass relies on epa-file being enabled, Arsen Arsenović, 2023/12/24
- bug#67937: 30.0.50; auth-source-pass relies on epa-file being enabled, Michael Albinus, 2023/12/24
- bug#67937: 30.0.50; auth-source-pass relies on epa-file being enabled, Arsen Arsenović, 2023/12/24
- bug#67937: 30.0.50; auth-source-pass relies on epa-file being enabled, Michael Albinus, 2023/12/24
- bug#67937: 30.0.50; auth-source-pass relies on epa-file being enabled, Arsen Arsenović, 2023/12/24
- bug#67937: 30.0.50; auth-source-pass relies on epa-file being enabled, Michael Albinus, 2023/12/24
- bug#67937: 30.0.50; auth-source-pass relies on epa-file being enabled, Arsen Arsenović, 2023/12/24
- bug#67937: 30.0.50; auth-source-pass relies on epa-file being enabled,
Arsen Arsenović <=