Skip to main content

sign-and-verify

Python library implementing the Sign-and-Verify methodology (see methodology.md): SAVSigner (owns a KERI AID, issues Foreign Artifact Wrapper and Dossier credentials, validates external AIDs' signatures) and SAVVerifier (cryptographically verifies a presented Dossier CESR stream).

Setup

  1. Install dependencies: uv sync --group dev
  2. Run the test suite (no network/witness pool required): uv run pytest
  3. To actually issue credentials against a real keystore:
    • Start a kli witness demo pool and a vlei-server serving the FAW/Dossier schemas (see the vLEI repo's schema/acdc/foreign-artifact-wrapper.json and schema/acdc/dossier.json — these must be saidified and published first).
    • Run scripts/incept-signer-aid.sh once (with SIGNER_NAME, SIGNER_BASE, SIGNER_ALIAS, SIGNER_PASS set) to incept the signer's AID and its two credential registries.
    • See examples/basic_usage.py.
  4. To verify a presented Dossier CESR stream (built via export_credential, see below): SAVVerifier(VerifierConfig(...)).verify_presentation(cesr, said) — a fresh, throwaway local KERI store; a verifier controls no AID and issues nothing, so VerifierConfig needs only schema_oobis beyond the keystore location.

Package layout

  • src/sign_and_verify/signer.pySAVSigner, the issuance-side public facade.
  • src/sign_and_verify/verifying.pySAVVerifier: verify_presentation() (crypto validity via keripy's Parser/Verifier) and check_revocation() (direct witness TEL query; does not cryptographically verify the revocation event itself — see its docstring for why that's an intentional, precedented choice).
  • src/sign_and_verify/utils.pyexport_credential(): serializes a credential's full CESR proof (KEL + TEL + chained edge credentials, recursively, each edge fully introduced before anything that references it + the credential's own ACDC last) into one presentable stream.
  • src/sign_and_verify/environment.py, verifier_environment.py — open an existing signer/verifier keystore (never incepts an AID).
  • src/sign_and_verify/doers.py, issuance.py, resolvers.py, validation.py — supporting modules for the issue-and-wait pattern, schema/OOBI resolution, and signature validation.
  • src/sign_and_verify/config.py, verifier_config.py, errors.py — settings and error types.
  • scripts/ — kli-based AID/registry inception tooling.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sign_and_verify-1.0.0.tar.gz (138.2 kB view details)

Uploaded Source

Built Distribution

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

sign_and_verify-1.0.0-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file sign_and_verify-1.0.0.tar.gz.

File metadata

  • Download URL: sign_and_verify-1.0.0.tar.gz
  • Upload date:
  • Size: 138.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for sign_and_verify-1.0.0.tar.gz
Algorithm Hash digest
SHA256 fca4f547cbfd1d00cd50d6fc4e96f1c5fe6edffe501615c6cc4d4ca5ccd27bef
MD5 bfeaf162a3b32cdd4787ae815453cc10
BLAKE2b-256 04d54e4fa87dbb421e5456015be60390e89b49cd6db5c6be17b837a5ff6adcaa

See more details on using hashes here.

File details

Details for the file sign_and_verify-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: sign_and_verify-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for sign_and_verify-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c09b235bdc9613ee0af84dfc8fc85db33d317d66f25d774c78ad91d6efc96195
MD5 1ba9165374724ff30d85e752c9cfe6c2
BLAKE2b-256 3e95b7e5199858b8d6a0929be7de69015ed8029c646627944149d5bddb384b11

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page