Allowing alternative encryption backends
Nicolas Graves
ngraves at ngraves.fr
Mon Mar 3 13:35:30 UTC 2025
Hi pass!
Bringing this conversation back to life!
I'm very much in favor of bringing the option to add the possibility to
handle Age in the password-store emacs package. IMHO, it's very much in
the emacs' modern spirit to make "peer-dependencies" work well together
with minimal configuration options (consult/vertico/marginalia/embark
approach) instead of forking entire packages to add 3/4 options.
The following reasons make it mandatory in the long run IMHO:
- The package passage.el is mostly a full fork of password-store.el
- limited developper time / need to keep the fork updated and using
modern emacs features. And deduplication of efforts too (contributions
could be merged from both sides).
- it's most likely possible to add 3/4 options without denaturing
password-store.el at all, even for the unsupported web-of-trust feature
- using options make it easier to switch and try instead of having
duplicates (e.g. if a user has 30 lines of password-store keymaps and
configuration, no need to s/password-store/passage/ just to try, which
makes it quite convenient for emacs frameworks which would rather not
duplicate pre-configuration either).
Cons :
- What if a user wants 2 distinct stores / authinfo ? Is that compatible?
I made an unreviewed patch in this direction a while ago :
https://lists.zx2c4.com/pipermail/password-store/2022-October/004659.html
A discussion followed on this subject but never converged in a decision.
I'm proposing the following design:
- port passage.el back in password-store.el
- 3/4 configuration options should be enough to configure password-store
with age instead of gpg
- don't create an explicit dependency on age.el:
- when age.el is absent, work as expected/current
- but extend functionality when age.el is present (allow some
additional configuration options)
- for the web-of-trust functionality (not present in Age), simply return
an error message when trying to use it "web-of-trust is not supported by
Age backend".
I'm willing to put in the work to bring that in password-store.el... if
committers agree on the idea to port that in the package. The author of
the package agrees on the objective :
https://github.com/anticomputer/passage.el/issues/3
Before starting to work on that, I would like some feedback and an
upstream committer to agree to work with me (reviews) for extending
password-store.el to support age.
WDYT ? Feel free to also document the pros/cons and amend the design
proposition if I forgot something.
--
Best regards,
Nicolas Graves
More information about the Password-Store
mailing list