docs: multi-recipient age encryption (recipients/reencrypt) + bump 0.6.2.0 (EGB-283)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
b09f94c92f
commit
f7576a3eae
5 changed files with 125 additions and 7 deletions
31
CHANGELOG.md
31
CHANGELOG.md
|
|
@ -5,6 +5,37 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to a four-digit MAJOR.MINOR.PATCH.MICRO version scheme.
|
||||
|
||||
## [0.6.2.0] - 2026-06-24
|
||||
|
||||
### Added
|
||||
|
||||
- **Multi-recipient age encryption (EGB-283)** — a store-scoped, committed
|
||||
`recipients.txt` (age `-R` format, with `# name` comment lines) lets one
|
||||
store encrypt every blob to N age public keys — one per team member.
|
||||
`secrets recipients add <age1…> [--name N]` adds a key and immediately
|
||||
re-encrypts the whole store; `secrets recipients rm <key|name> [--yes]`
|
||||
removes one and re-encrypts; `secrets recipients list` shows the current
|
||||
set (or a note that the store is still single-key). A new `secrets
|
||||
reencrypt` command re-encrypts every blob to the current recipients without
|
||||
changing the set (idempotent heal / backfill after a manual edit). Absence
|
||||
of `recipients.txt` preserves exact legacy single-key behavior; the first
|
||||
`recipients add` on a legacy store bootstraps the file seeded with the
|
||||
local pubkey plus the new key. `init` now seeds `recipients.txt` born-multi
|
||||
with the freshly generated pubkey.
|
||||
|
||||
### Changed
|
||||
|
||||
- **`secrets rekey` on a multi-recipient store** no longer generates a new
|
||||
keypair — instead it re-encrypts all blobs to the current `recipients.txt`
|
||||
set (the shared `_reencrypt_all` engine). On a legacy store (no
|
||||
`recipients.txt`) `rekey` keeps today's generate-new-keypair behavior.
|
||||
- **`secrets which`** now prints a `recipients: N (name, …)` line, or
|
||||
`recipients: single-key (no recipients.txt)` for a legacy store.
|
||||
- **`secrets verify` / `verify --all`** assert that each blob's age
|
||||
recipient-stanza count equals the number of entries in `recipients.txt`
|
||||
(skipped on legacy stores). Exits non-zero on any count mismatch so it can
|
||||
gate CI or a migration.
|
||||
|
||||
## [0.6.1.0] - 2026-06-08
|
||||
|
||||
### Changed
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue