Standalone verifier for Signed Verification Receipts (SVR). No engine dependency required.
Project description
svr-verify
Standalone verifier for Signed Verification Receipts (SVR).
No SATYA engine required. No SIGMA dependency. Just the receipt and the public key.
Install
pip install svr-verify
Verify a Receipt
Command Line
svr-verify receipt.svr.json
Output:
============================================================
SVR Verification Report
============================================================
Receipt ID: SATYA-20260518-4C2388CC
SVR Version: 1.0
Receipt Type: compliance
Verdict: contradicted
Items Checked: 12
Items Passed: 7
Items Failed: 5
Signature: VALID
Structure: VALID
RESULT: VALID
============================================================
Machine-Readable Output
svr-verify receipt.svr.json --json
CI/CD Integration
svr-verify receipt.svr.json --quiet
# Prints VALID or INVALID
# Exit code 0 = valid, 1 = invalid, 2 = file error
Python API
from svr_verify import verify
result = verify("receipt.svr.json")
print(result["valid"]) # True/False
print(result["signature_valid"]) # True/False
print(result["structure_errors"]) # [] if clean
Low-Level API
import json
from svr_verify import canonical_bytes, verify_signature, validate_receipt
with open("receipt.svr.json") as f:
receipt = json.load(f)
# Verify Ed25519 signature
sig_ok = verify_signature(receipt)
# Validate structure (required fields, count invariant)
errors = validate_receipt(receipt)
# Get canonical byte sequence (what was signed)
payload = canonical_bytes(receipt)
What It Checks
-
Signature: Recomputes the canonical serialization per SVR Spec Section 4, then verifies the Ed25519 signature against the embedded public key.
-
Structure: Validates all 22 required fields, the count invariant (
items_checked == items_passed + items_failed + items_excluded), per-item required fields, and enum constraints. -
Canonical Hash: Produces a SHA-256 digest of the canonical payload for fingerprinting.
What Is an SVR?
A Signed Verification Receipt is a cryptographically signed, point-in-time attestation that a verification engine audited a specific input against specific sources and produced a specific result.
SVRs are:
- Portable: not locked to any platform
- Signed: Ed25519, unforgeable
- Independently verifiable: anyone with this library can check one
- Vendor-neutral: any compliant engine may issue SVRs
Specification
License
MIT. Use it anywhere. Embed it in your platform. The whole point is adoption.
Project details
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 svr_verify-1.0.0.tar.gz.
File metadata
- Download URL: svr_verify-1.0.0.tar.gz
- Upload date:
- Size: 19.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aec5c8003aa708e670c8ddca791cac9cdb267732544a48ac94955c928a8e62da
|
|
| MD5 |
fe6d74cea91fc3097ef9ed25125253f5
|
|
| BLAKE2b-256 |
ff3eacd1ff46bf641d2b56245d84a3f6aad24e8cbcf7d61822591debbaed24e0
|
File details
Details for the file svr_verify-1.0.0-py3-none-any.whl.
File metadata
- Download URL: svr_verify-1.0.0-py3-none-any.whl
- Upload date:
- Size: 20.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b2fca50c7db5032691ac4248a005543f6e8fe13f5a62bc81225f4a1819de76d
|
|
| MD5 |
3d06bf8c1e2b4710256386d369160b4b
|
|
| BLAKE2b-256 |
236402a5acc4cbbab8997787e6d3259e85973003fef4b8ce6ee1202bf5e424dc
|