Watch
1
0
Fork
You've already forked keys
0

Add age key

- Add AGE.md with policies
- Add age-recipient.txt for `age -R`
- Add ceremonies/2026-09-13_age_key.md as the signed record
  of which recipient is valid from which date
- List the recipient in KEYS.md
- Describe AGE.md and age-recipient.txt in README.md
- Extend the scripts:
  + sign.sh signs AGE.md by default
  + verify.sh verifies AGE.md by default
    and cross-checks age-recipient.txt,
    the only unsigned artifact,
    against the recipient in the signed KEYS.md and AGE.md
This commit is contained in:
Alexander Hess 2026-09-11 15:48:18 +02:00
commit ae768285b6
Signed by: alexander
GPG key ID: B46EDB4DFC26805D
12 changed files with 170 additions and 14 deletions

View file

@ -38,6 +38,7 @@ gpg --import public-key.asc
gpg --verify KEYS.md.asc KEYS.md
gpg --verify OPENPGP.md.asc OPENPGP.md
gpg --verify AGE.md.asc AGE.md
```
Each `gpg --verify` will print two things:
@ -96,6 +97,22 @@ How I implement [OpenPGP](https://www.openpgp.org/):
Armored public keys of all previous OpenPGP keys
### `age`
Besides OpenPGP,
I also use the modern [`age`](https://github.com/FiloSottile/age) encryption:
- [`AGE.md`](AGE.md):
`age` policies
- [`AGE.md.asc`](AGE.md.asc):
Detached signature, renewed at every ceremony
- [`age-recipient.txt`](age-recipient.txt):
`age` public key for `age -R`
- [`ceremonies/`](ceremonies/):
Signed record of when a recipient became valid or rotated
because `age` keys carry no metadata of their own
### Scripts
`sh` scripts for my own use:
@ -107,7 +124,8 @@ How I implement [OpenPGP](https://www.openpgp.org/):
Renews the detached signatures
- [`verify.sh`](scripts/verify.sh):
Verifies all signed files against the pinned signing subkey,
and warns when the key is about to expire
warns when the key is about to expire, and
cross-checks `age-recipient.txt`
- [`snapshot.sh`](scripts/snapshot.sh):
Exports the current key to `snapshots/` and `public-key.asc`
- [`publish.sh`](scripts/publish.sh):