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.1.tar.gz (19.4 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.1-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: svr_verify-1.0.1.tar.gz
  • Upload date:
  • Size: 19.4 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.1.tar.gz
Algorithm Hash digest
SHA256 de721068c819b871f56a48a5ee72d2e9c25c0fabb215f1ee91ce21b43c938068
MD5 b2238a9a86f7b31b0837652240096556
BLAKE2b-256 31508c836a7e7136264266d34988d55fb6b6df14117be66e371b84ae9e87e226

See more details on using hashes here.

File details

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

File metadata

  • Download URL: svr_verify-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 20.4 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2362666d5abefa279135ebc3f98770247427eb736d478fb79dfec113d464c619
MD5 3fa00dd88a7e474c97a7ed131e3838a7
BLAKE2b-256 2d9d4aac1a01db599cc29520e5918ee6d1ed851cbc68f8ebb192944e5ff5a4c5

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