The subkey 16D5D4DFC0C36022 lives only on the project's machines,
with its own passphrase, and expires together with the primary key
on 2027-01-31
- Add the subkey to the table in OPENPGP.md
- Replace the 6-month expiry policy for external subkeys: they now
follow the yearly update and are revoked as "retired" at project end
- Export the updated public key and a dated snapshot
- Re-sign OPENPGP.md
Snapshots are now written as <KEYID>-public_YYYY-MM-DD.asc,
one file per ceremony, matching the naming of the secret exports
kept outside this repository
- Add scripts/security-txt.sh
to generate a security.txt file
- Add the current security.txt
- Extend verify.sh to verify security.txt by default
and cross-check that it expires together with the signing key
- Describe security.txt in OPENPGP.md and README.md
- 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
- Make OpenPGP only one of many protocols
+ KEYS.md only holds the current keys
+ OPENPGP.md describes all OpenPGP details
- Make the current public key available at the root
- Add scripts/ to automate the various steps:
+ bootstrap.sh
+ publish.sh
+ sign.sh
+ snapshot.sh
+ verify.sh