QRSeal · KH-SQR sandbox
This device is the whole scheme: it holds the Root, publishes the trust list, signs codes and verifies them, with the real KH-SQR library and no network.
Signed by this sandbox’s current issuer key, enrolled on this device’s trust list. Print the static code, or show the dynamic one on a screen; then scan it from another device that has imported this scheme, or from this one.
Every scan goes through the same pipeline: refuse URL carriers, route by profile and encoding, verify offline against the selected trust list, then show what the specification obliges — never a tick.
Type what is printed on the document. The library compares exact strings and reports each field; it will not summarise them into a verdict.
The sandbox scheme lives in this browser’s storage. Revoke the issuer key and every code it signed fails; withdraw one credential and only that credential fails, because the issuer’s signed revocation list names it and the timestamp statement declares the list. Export the public half as a bundle and another device can verify this device’s codes — and nothing else, because the bundle carries no private key.
The conformance suite a Kotlin or Swift port is checked against, run in this browser under its own frozen clock and the repository’s published test keys. Most cases are negative: what a verifier must refuse is the harder half.
Both genuine, both verify. Same payee, same account, same number; tag 53 differs. It is the one attack in which a valid signature actively helps the attacker, and why the amount and an alphabetic currency are a MUST before authorisation.