Independent of us, by design
Verify a bundle
Paste an evidence bundle and this page tells you whether it is genuine and unmodified. No account, no sign-in, and nothing you paste is stored or logged — checking a signature needs only the document and a public key, so this page reads no database at all.
The bundle
What this check does and does not do
What a pass proves
- The signature on this bundle was made by the key named above, so the bundle was issued by whoever holds that key and has not been altered since.
- The payload is byte-for-byte what was signed. Not a re-serialization of it: the exact bytes.
- The evidence embedded in the bundle matches the SHA-256 recorded for it, so the bundle is internally consistent.
What it does not prove
- It does NOT re-run the original attestation. The bundle records a verdict reached at the time shown; this check confirms the record, it does not repeat the work. Certificates involved may have expired since.
- It does NOT say anything about the device right now. Attestation is point-in-time, and the time is stated in the bundle.
- It is NOT independent. The key above is served by the same organization that signed the bundle, so a matching signature proves internal consistency. For an independent answer, obtain the key from a source that is not us and check offline.
Checking this without us
A result from this page is useful but not independent: the key it checks against is served by the same organization that signed the bundle. If that matters to you — and for an audit it should — take the key from a source that is not this server, then check the bundle offline on a machine you control.
- Key fingerprint
- 1bef710bb3a4ffd30173cc9918af6993f597b110e54b37c2de979987df195419
- Public key
- wpodf2dDiOGGwW/Y2Ys1LJ1RPK4yVLcdjP/Jqam8s9o=
Everything needed to check a bundle by hand is inside it: the payload is base64 in payload_b64, the Ed25519 signature is base64 in signature, and the signature is over the decoded payload bytes exactly as they appear — not over a re-serialization of the parsed JSON. Any Ed25519 implementation will do; you do not need ours.
sevenkgd -verify-bundle bundle.json -verify-with-key sevenkg.pub
That command reads two files, checks the signature, and touches the network not at all. It is the same code this page runs.
In a pipeline
The same check, machine-readable. POST the bundle as the request body and read verified from the response. A pass returns 200, a refusal returns 422 with the reason in error, and the response carries the same two lists of what was and was not proved.
curl --data-binary @bundle.json https://api.svnkg.com/verify/api