StateProof
Version 0.3.0 — proof-carrying post-install Python environment exactness.
StateProof has one security property: it determines whether a selected Python directory matches an approved state. It reports EXACT or NOT_EXACT; it does not classify code as benign or malicious.
Quick start
python -m stateproof.cli capture ./my_env --output approved.px.json
python -m stateproof.cli verify ./my_env --against approved.px.json --evidence evidence.json
python -m stateproof.cli evidence-verify ./my_env --evidence evidence.json --against approved.px.json
Independent Proof of Exact State
A proof is a self-contained, canonical Merkle representation of the captured state. It includes the ordered entry set, a Merkle state_root, inclusion-proof paths, the manifest root, and optionally an Ed25519 signature.
python -m stateproof.cli keygen --private owner.pem --public owner.pub.pem
python -m stateproof.cli prove ./my_env --private owner.pem --output state.proof.json
python -m stateproof.cli proof-verify state.proof.json --public-key owner.pub.pem --require-signature
# PROOF_VALID
PROOF_VALID means that the proof is internally consistent and, when signed, the signature is valid. It does not claim that a different machine's files are still unchanged after the proof was produced. To assert the current machine's files are exact, run verify on that machine; to prove both facts, use verify and a signed proof.
The same flow is available as a library API:
from stateproof import ProofCarryingEnvironment
proof = ProofCarryingEnvironment.create("./my_env", private_path="owner.pem")
assert ProofCarryingEnvironment.verify(proof, "owner.pub.pem", require_signature=True)
Optional manifest signing
python -m stateproof.cli keygen --private owner.pem --public owner.pub.pem
python -m stateproof.cli sign approved.px.json --private owner.pem --output approved.signed.px.json
python -m stateproof.cli verify ./my_env --against approved.signed.px.json --public-key owner.pub.pem --require-signature
Signing is optional and requires cryptography: pip install 'stateproof[signing]'.
Deterministic scope
The snapshot includes regular files, directories, empty directories, and symlinks below the selected root. Symlinks are recorded but never followed. Unsupported special filesystem entries and unstable scans are rejected rather than marked exact. Default cache directories are excluded.
EXACT means byte-for-byte equality for every registered file, with the recorded path, type, size, target, and mode matching. NOT_EXACT means a deterministic mismatch exists.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file stateproof-0.3.0.tar.gz.
File metadata
- Download URL: stateproof-0.3.0.tar.gz
- Upload date:
- Size: 134.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a991e085301391a4538833895ce17c11aba9b2caf759f61927bb2b324f0fa3fb
|
|
| MD5 |
86b8408e1eb90cc624147ef326b307e4
|
|
| BLAKE2b-256 |
e567aacb42cd93535ccf3d3f376e165fe8ef50bdbb47f63e1ac9ff0a9126880a
|
Provenance
The following attestation bundles were made for stateproof-0.3.0.tar.gz:
Publisher:
publish.yml on adnanomar77/stateproof
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
stateproof-0.3.0.tar.gz -
Subject digest:
a991e085301391a4538833895ce17c11aba9b2caf759f61927bb2b324f0fa3fb - Sigstore transparency entry: 2617948312
- Sigstore integration time:
-
Permalink:
adnanomar77/stateproof@14e2f75dabf51d306a49803783de5df9da8d55b1 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/adnanomar77
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14e2f75dabf51d306a49803783de5df9da8d55b1 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file stateproof-0.3.0-py3-none-any.whl.
File metadata
- Download URL: stateproof-0.3.0-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4378bfb36392781d5064340f64fde4b3e1c6a799af1d173fb18bad0e6d6e785
|
|
| MD5 |
c35b13f611cb4386648e346d8d856f12
|
|
| BLAKE2b-256 |
8eb26bd7a68c2e60beebb0e25ee15324891c17f1738a61b14112a9b9d68603c0
|
Provenance
The following attestation bundles were made for stateproof-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on adnanomar77/stateproof
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
stateproof-0.3.0-py3-none-any.whl -
Subject digest:
e4378bfb36392781d5064340f64fde4b3e1c6a799af1d173fb18bad0e6d6e785 - Sigstore transparency entry: 2617948341
- Sigstore integration time:
-
Permalink:
adnanomar77/stateproof@14e2f75dabf51d306a49803783de5df9da8d55b1 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/adnanomar77
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14e2f75dabf51d306a49803783de5df9da8d55b1 -
Trigger Event:
workflow_dispatch
-
Statement type: