Publication signing keys
Every publication manifest is signed with an Ed25519 key. The private half is held outside the web application. Public keys are published here permanently: a key that is retired stays on this page with its retirement date, so a signature made years earlier remains verifiable.
OT-SIGN-2026-01 | Ed25519 · active from 2026-09-15, currentraw: hrVTYWSx9Q9rZDWVy5POdsG6gb7rB+EAa7VlgaOej5U=-----BEGIN PUBLIC KEY----- MCowBQYDK2VwAyEAhrVTYWSx9Q9rZDWVy5POdsG6gb7rB+EAa7VlgaOej5U= -----END PUBLIC KEY----- |
|---|
Verifying a signature
curl -sO https://opentechnical.org/p/OT-2026-000000001/manifest.json curl -sO https://opentechnical.org/p/OT-2026-000000001/manifest.sig curl -s https://opentechnical.org/integrity/keys.json | jq -r '.keys[0].public_key_pem' > ot.pem base64 -d manifest.sig > manifest.sig.bin openssl pkeyutl -verify -pubin -inkey ot.pem -rawin -in manifest.json -sigfile manifest.sig.bin
The signature covers
manifest.json byte for byte. The manifest in turn lists the SHA-256
of every published file, so verifying the signature and then re-hashing the
files establishes the whole publication.