Skip to main content

checkii-verify

Offline verifier for Checkii signed evidence. Apache-2.0. Python 3.11 or later.

It checks, without an account and without a network connection, that the exact bytes in front of you were signed by a key you trust independently of the file under test:

  • a report bundle (signature.json beside report.md and snapshot.json, statement aegis.report-signature.v1);
  • a sealed export: the release receipt checkii-ci assess --receipt writes (checkii.release-receipt-seal.v1), a Cyber Resilience Act readiness pack (checkii.audit.cra-pack-seal.v1) or a time-to-verified-fix export (checkii.remediation.verified-fix-seal.v1);
  • for either, the transparency-log entry recorded for the statement when it travels with the evidence (transparency.json in a bundle, transparency in an export): the entry names the statement's digest, is signed over the same bytes by the key's published log-signing companion, its leaf hash is the entry identifier, the inclusion proof reaches the checkpoint root, and the checkpoint is signed by the pinned log key.

The same checks run in the browser at https://checkii.ai/verify. Governed-OSINT transcripts (DSSE envelopes) are verified by that page only; this release does not cover them.

Install

python -m pip install "checkii-verify==0.1.0"
checkii-verify version

For an install that resolves nothing, take requirements.txt from the sdist (it pins the one runtime dependency, cryptography, with every PyPI digest):

python -m pip install --require-hashes -r requirements.txt
python -m pip install --no-deps "checkii-verify==0.1.0"

Establish trust first

The key identifier and public key must come from a reviewed source outside the file being checked: the published key registry at https://checkii.ai/.well-known/checkii-signing-keys.json read over a channel you trust, or a value your supplier gave you directly. Reading the key out of the bundle proves nothing. When a transparency entry is present you also need the key's log-signing companion: the registry entry with purpose transparency-signature whose signs_for is the key id.

Commands

checkii-verify bundle <directory> --trusted-key-id <id> --trusted-public-key <base64> \
    [--trusted-log-signing-public-key <base64 SubjectPublicKeyInfo DER>]
checkii-verify seal   <file.json>  --trusted-key-id <id> --trusted-public-key <base64> \
    [--trusted-log-signing-public-key <base64 SubjectPublicKeyInfo DER>]
checkii-verify version

bundle reads signature.json, report.md, snapshot.json and, when present, transparency.json from the directory. seal reads one exported JSON file: the whole export ({"receipt": …, "seal": …, "transparency": …}), in which case the document's digest is recomputed and compared, or the seal object alone, in which case the signed digest is printed for you to compare.

Exit Meaning
0 VALID: these exact bytes were signed by the supplied trusted key
1 INVALID: malformed input, untrusted key, failed signature, changed bytes, or an entry that does not verify
2 usage error

The check is deliberately exact. A text editor that converted line endings, a mail client that appended a newline or a re-saved file makes a bundle INVALID; ask the issuer for the original export.

What a valid result means

That these bytes were issued unchanged by the holder of that key, and, with a transparency entry, that the issuance was recorded in the public log at that time. It is not scan evidence, not a statement that a target is secure and not a compliance claim. A receipt says what ran and what was reported; findings carry their own validation status.

Tests

python -m pip install --require-hashes -r requirements.txt pytest
python -m pytest tests/ -q

The tests cover the published sample bundle and its tamper matrix, a real capture from the public Rekor log for the Merkle and checkpoint arithmetic, and a synthetic log with a real ECDSA key for the whole flow and its negatives.

Metadata

Release files for checkii-verify 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for checkii-verify 0.1.0
File Size Uploaded Provenance Actions
checkii_verify-0.1.0.tar.gz 22.8 kB With provenance Details for checkii_verify-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for checkii-verify 0.1.0
File Interpreter ABI Platform Actions
checkii_verify-0.1.0-py3-none-any.whl Python 3 none any Details for checkii_verify-0.1.0-py3-none-any.whl

Total release size: 42.2 kB

Release files / checkii_verify-0.1.0.tar.gz

Download URL checkii_verify-0.1.0.tar.gz
Size 22.8 kB
Tags Source
SHA-256 checksum
How to use checksums
bc1a699d0e2ad8d1a8d897e51bb5256c4e1e6f5174a265f4b0e57432ff9d3310
BLAKE2b-256 checksum
How to use checksums
bf0334e38b11dd14ad91b6cad71a08105fd53de25004c52a8f5e8d33c6dc4844
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

Release files / checkii_verify-0.1.0-py3-none-any.whl

Download URL checkii_verify-0.1.0-py3-none-any.whl
Size 19.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9ef3c7f169c9c228f922bcedaf4a18307ff3d164ea07754c110602adc80e7f0f
BLAKE2b-256 checksum
How to use checksums
47f4995421a178f7e5dbedaba97f243dba1dbb8ff3c0c268e937dfe547ba5a6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

Security for checkii-verify 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for checkii_verify-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page