[AVAILABLE]. The offline verifier is a separate, public repository:
pavancharak/parmana-verifier,
Apache License 2.0. It requires Node.js 24 or later and has no dependencies.
It is not published to npm; run it from a clone of that repository.Run it
proof.jsonis the Execution Trust Record.trust.jsonlists each key you accept:
0 when the record is valid, 1 when it is
invalid (with the reasons), and 2 for a usage error, a missing file or invalid JSON.
Pin a key
- Get the operator’s public key and the
sha256:fingerprint they published. Get the fingerprint from a source other than the one that gave you the key, such as a signed message. - Run
node bin/parmana-verify.mjs key-fingerprint public-key.pemon the PEM you received. - Compare the two fingerprints character by character. If they differ, do not use the key.
- Only then add the key to your trust file with that fingerprint.
Trust rules
A key is used only when all of these hold:- its PEM hashes to the pinned fingerprint (SHA-256 of the SPKI DER encoding);
- the algorithm named by the signature matches the algorithm in the trust file;
- it is not marked
compromised; - the record’s
createdAtis at or aftervalidFromand beforevalidUntil, if set.
What it does not show
- It shows that a record was signed by the key you pinned. It cannot show that the key belongs to Parmana; that depends on how you obtained and compared the fingerprint.
- For schema version 2 records, only the fields listed in the repository’s format document are
protected. For schema version 3, every field except the signature envelope,
verificationsandreceiptsis protected. Check thatcoverageisfullwhen that matters. - It does not check the policy a record cites, the decision logic, or whether the action reached the external system.