# Keys and trust bootstrap

## The release key (rotated 2026-10-11)
| Field | Value |
|---|---|
| Key id | `cain42-auditor-kit-release-2026-10` |
| Algorithm | Ed25519 (RFC 8032) |
| Public key (base64) | `XhK+pwJlsTymjoA8rnJBiGP344rTKK1qD5xTtbkbZlY=` |
| SHA-256 fingerprint of the 32 raw bytes | `d0f5f17ca2be05600042f4dd336b8e9a55f58ef14c83dc717f13bfb85e0afa20` |
| Purpose | Signs CAIN-42 auditor-kit release manifests only. It is **not** an auditor key, and its signature is **not** an independent attestation |
| Created / expires | 2026-10-11 / 2027-10-11. After expiry, a new key must be announced the same way |
| Revocation | None published. If this key is revoked, its fingerprint will appear at `https://cainstudio.online/.well-known/cain-verification.json` under `revoked_key_fingerprints`. Pass any revoked fingerprint with `--revoked` |
| Custody | One private key in a 0600 file on the operator host, with no HSM, no threshold signing and no transparency log. Treat it as a single point of failure |

## Rotation notice: read this
The previous release key `cain-root-release-key-2026` (`n8Pgu+TSnO0D81myJKzkVxM2GBJl4rivPM1oiFrhihw=`, fingerprint `5267e3f5adeb028afd261e655c0515db206a2a182296acdb01577c0d0358b6bc`) signed kit 5.0.0. On 2026-10-11 its private key could not be located, so it cannot sign new releases. **It did not sign the new key.** Continuity between the two keys is therefore **not cryptographically proven**. The only link between them is the operator's statement, published on the same websites. Authenticate the new key from scratch using the channels below. Do not treat it as inheriting any trust you gave the old key. Kit 5.0.0 also had a defect that made its key irrelevant: it trusted whatever key was inside its own ZIP (see KNOWN_LIMITATIONS.md).

## How to authenticate the key (do not skip)
The verifier deliberately ignores every key printed inside the package. Use as many channels as you can and record them on `HUMAN_REVIEW/WORKSHEET_42S.md`:

1. **Website channel.** Fetch `/.well-known/cain-verification.json` from cainstudio.online, mcpgate.online and clawx.click. **Caution:** all three resolve to the same IP address (45.76.60.231 on 2026-10-11) and use the same DNS provider. That is one operator and one server, so it counts as **one** channel.
2. **History channel.** Compare with archived copies, or with a copy you fetched on an earlier date. This key is new on 2026-10-11, so no history exists yet; history accumulates from that date.
3. **Direct channel (recommended).** Ask the publisher to read the fingerprint to you over a channel the website does not control.
4. **Independent signer.** None exists. No third party countersigns CAIN-42 releases.

If only channel 1 is available, record the trust anchor as **operator-asserted** and say so in your verdict.

## Other keys inside the package
`EVIDENCE/cluster_keys.json` lists the four replica keys of cluster `cain-mr-02`. They sit inside the signed package, but they are self-published by one operator and do not show that four independent parties exist.

## Fixture test key (never trust)
`FIXTURES/` is signed with a test key whose private seed is `SHA-256("CAIN42-AUDITOR-KIT-TEST-KEY-DO-NOT-TRUST")`. The seed is public on purpose. A package signed with it proves nothing.
