Skip to content

Add Age encryption support#712

Draft
acaloiaro wants to merge 1 commit intomssun:masterfrom
acaloiaro:acaloiaro/age/add-support
Draft

Add Age encryption support#712
acaloiaro wants to merge 1 commit intomssun:masterfrom
acaloiaro:acaloiaro/age/add-support

Conversation

@acaloiaro
Copy link
Copy Markdown

@acaloiaro acaloiaro commented Mar 14, 2026

Summary

This adds Age encryption as an alternative encryption backend alongside PGP.

  • Introduces an EncryptionInterface protocol that abstracts encryption/decryption, allowing multiple backends
  • Implements Age encryption via the AgeKit library (X25519 elliptic curve cryptography)
  • Adds EncryptionManager singleton for backend selection (persisted in user defaults; GPG remains the default)
  • Refactors existing GPG code behind a GPGInterface protocol
  • Supports .age-recipients files for per-directory recipient resolution (mirrors .gpg-id behavior)
  • Adds UI for importing Age private keys in armor format, with real-time validation and public key derivation
  • Fully backward compatible — existing GPG users are unaffected

Caveats

  • AgeKit requires IPHONEOS_DEPLOYMENT_TARGET to be bumped from 13 to 14

@acaloiaro acaloiaro force-pushed the acaloiaro/age/add-support branch from f1c50ca to 7afa750 Compare March 14, 2026 21:10
- Support decrypting / encrypting age secrets
- Support generating age keys on device
- Simplify copying age public keys from device, so age identities can be
added as gopass recipeints with `gopass recipient add age1...`
@marcaurele
Copy link
Copy Markdown

I would love to see the support for Age in the ios app! IMHO pass should be able to support different encryption algos and not be exclusive to PGP.

@mssun would you be willing to accept this PR or what would refrain you of doing it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants