Skip to main content

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

  1. Signature: Recomputes the canonical serialization per SVR Spec Section 4, then verifies the Ed25519 signature against the embedded public key.

  2. Structure: Validates all 22 required fields, the count invariant (items_checked == items_passed + items_failed + items_excluded), per-item required fields, and enum constraints.

  3. 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

svr_verify-1.0.0.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

svr_verify-1.0.0-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

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

Hashes for svr_verify-1.0.0.tar.gz
Algorithm Hash digest
SHA256 aec5c8003aa708e670c8ddca791cac9cdb267732544a48ac94955c928a8e62da
MD5 fe6d74cea91fc3097ef9ed25125253f5
BLAKE2b-256 ff3eacd1ff46bf641d2b56245d84a3f6aad24e8cbcf7d61822591debbaed24e0

See more details on using hashes here.

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

Hashes for svr_verify-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1b2fca50c7db5032691ac4248a005543f6e8fe13f5a62bc81225f4a1819de76d
MD5 3d06bf8c1e2b4710256386d369160b4b
BLAKE2b-256 236402a5acc4cbbab8997787e6d3259e85973003fef4b8ce6ee1202bf5e424dc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page