Support GnuPG AEAD password entries
This commit is contained in:
@@ -22,6 +22,14 @@ secrets. The generator reuses the checked-in identities and produces:
|
||||
- valid loose-object Git repository templates, including an automatic-commit
|
||||
history and nested-repository boundaries.
|
||||
|
||||
`gnupg-aead/` is a separate, non-generated compatibility case. Its synthetic
|
||||
Alice entry was encrypted by GnuPG 2.4.8 with AES-256 and `--force-ocb`, yielding
|
||||
GnuPG AEAD packet type 20 addressed to Alice's encryption subkey. The directory
|
||||
contains the exact producer profile and ciphertext digest, a normal
|
||||
password-store tree, and the expected plaintext. It deliberately lives outside
|
||||
the reproducible generator's `stores/`, `expected/`, and `repositories/`
|
||||
directories so a refresh cannot silently replace genuine GnuPG producer output.
|
||||
|
||||
Rust tests parse keys, verify signatures, decrypt every entry, compare exact
|
||||
plaintext bytes, validate ciphertext digests, validate Git objects and refs,
|
||||
and materialize isolated stores and repositories. They never invoke `pass`,
|
||||
@@ -43,6 +51,11 @@ then make that rotation intentionally non-reproducible. Review all binary
|
||||
changes and the generated fingerprints, digests, and Git object IDs before
|
||||
committing them.
|
||||
|
||||
When rotating the checked-in synthetic identities, regenerate the packet-20
|
||||
case explicitly with the producer profile in `gnupg-aead/fixture.toml`, update
|
||||
both recorded fingerprints and the digest, and independently inspect it with
|
||||
GnuPG's packet listing before review.
|
||||
|
||||
An optional developer interoperability audit may import the generated keys
|
||||
into a disposable GnuPG home, decrypt the `.gpg` entries, and point an
|
||||
upstream `pass` 1.7.4 checkout at a materialized store. That audit is never a
|
||||
|
||||
Reference in New Issue
Block a user