← Back to portal

Auditor Guidelines

This document is procedural. It defines independent verification steps for external reliance workflows. No governmental endorsement is implied. No warranties are offered under this document.

1. Scope

2. Inputs

3. Canonical JSON requirement

When verifying signatures, the verifier MUST compute the message bytes as UTF-8 encoding of the canonical JSON of the payload object:

4. Root signature verification (registry documents)

For any Root-signed document { payload, signature }:

Pinned Root Public Key (raw32 base64url)

vKYG_q1FzMc3_mkDierRVA5HOdG7SIO-vw98NWwsQEg

5. Issuer and log keys (trust store)

6. SCT verification (PX-TL)

An SCT object has the fields:

{
  "v": "PXTL-SCT v1",
  "log_id": "...",
  "issuer_id": "...",
  "leaf_hash": "<base64url>",
  "timestamp_utc": "<ISO8601 UTC>",
  "mmd_sec": 600,
  "signature_b64u": "<base64url>"
}

6.1 Leaf hash binding

The verifier MUST confirm that leaf_hash binds to the claimed evidence input. For the reference implementation:

leaf_hash = B64u( SHA256( UTF8("PXTL1|" + canonical_hash_hex) ) )

6.2 SCT signature

The verifier MUST compute the unsigned SCT object by removing signature_b64u, then sign/verify the message:

msg = UTF8("PXTL-SCT1." + canonical_json(sct_unsigned))

The verifier MUST validate the signature using the log public key for sct.log_id from the validated trust store.

6.3 Timeliness and revocation handling

7. Merkle proofs (optional)

When inclusion or consistency proofs are required, the verifier MAY use the operational endpoints:

8. Attachable registry evidence

For audit and change-control attachments, the verifier SHOULD attach the audit_evidence block returned from:

GET https://px-root-registry.org/v1/px-tl/registry-health

9. Reference verifier implementation

https://github.com/px-root-registry/px-strict-verifier