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.jsonbesidereport.mdandsnapshot.json, statementaegis.report-signature.v1); - a sealed export: the release receipt
checkii-ci assess --receiptwrites (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.jsonin a bundle,transparencyin 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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.