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

Trust infrastructure for the agent economy. Every agent action should leave a receipt.

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
  • IANA-registered: application/vnd.svr.receipt+json (IANA media types)

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.3.tar.gz (19.8 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.3-py3-none-any.whl (20.6 kB view details)

Uploaded Python 3

File details

Details for the file svr_verify-1.0.3.tar.gz.

File metadata

  • Download URL: svr_verify-1.0.3.tar.gz
  • Upload date:
  • Size: 19.8 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.3.tar.gz
Algorithm Hash digest
SHA256 357722ded37833932b8eecba0e056c667d5f7db1d0e5aabdb88fa1c3890d0034
MD5 43c70370c9ada1f0e0054e7aec24efee
BLAKE2b-256 8e17d779d92b71a6ab2cfabaeab7b815d0feb4a1e693a620807281555a17aa06

See more details on using hashes here.

File details

Details for the file svr_verify-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: svr_verify-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 20.6 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 eace1fa2dee3e4f2267c098dc2d2f9c1efe68982f1fc129b5819eadc36489bc1
MD5 9da37d0df5b690659812082af859feae
BLAKE2b-256 fbd46cef5df552b3727034bc8c4056aaf96c7fae402230ef4c40214e6926aa46

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