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