Skip to main content

aegis-verifier

ML-DSA-65 (FIPS 204) post-quantum agent identity verifier for the Aegis platform.

Verifies Merkle Tree Agent Certificates (MTACs) issued by an Aegis Certificate Authority. Built with PyO3 + maturin from a Rust core.

Requirements

  • Python 3.11 or later
  • No native build dependencies at install time (liboqs is statically bundled)

Installation

pip install aegis-verifier

A pre-built wheel is available for Linux x86_64/aarch64 (glibc and musl), macOS universal2 (Intel + Apple Silicon), and Windows x86_64.

Basic usage

import aegis_verifier

# All inputs are raw bytes in wire-v1 format (see docs/spec/wire-v1.md).
try:
    result = aegis_verifier.verify_inclusion(
        leaf_bytes=leaf_bytes,        # dcbor-encoded MtacLeaf
        proof_bytes=proof_bytes,      # wire-v1 encoded InclusionProof
        sth_bytes=sth_bytes,          # wire-v1 STH envelope (the bytes ML-DSA signed)
        signature=signature,          # 3309-byte ML-DSA-65 signature
        ca_public_key=ca_public_key,  # 1952-byte ML-DSA-65 public key
    )
    print(f"Verified: leaf_index={result.leaf_index}, "
          f"tree_size={result.tree_size}, "
          f"timestamp_ms={result.timestamp_ms}")
except aegis_verifier.AegisInvalidProofError as e:
    print(f"Proof or signature invalid: {e}")
except aegis_verifier.AegisStaleSthError as e:
    print(f"STH is stale: {e}")
except aegis_verifier.AegisVerificationError as e:
    print(f"Verification error: {e}")

Exception hierarchy

Exception
  AegisVerificationError          # base class for all Aegis failures
    AegisInvalidProofError        # signature invalid, proof mismatch, or leaf hash fail
    AegisStaleSthError            # STH older than caller-supplied max_age

verify_inclusion RAISES on all failure paths. It never returns a verified=False sentinel — a successful return always means verification passed.

Wire format

  • leaf_bytes: dcbor canonical encoding of MtacLeaf (RFC 8949 §4.2.1 CDER profile)
  • proof_bytes: CBOR array(3) of [tree_size: uint, leaf_index: uint, path: array<bstr(32)>]
  • sth_bytes: CBOR array(2) of [tstr("AEGIS-STH-v1"), bstr(body)] where body is array(5) of [log_id: bstr(32), tree_size: uint, timestamp: uint, root_hash: bstr(32), extensions: array]
  • signature: 3309-byte raw ML-DSA-65 signature (FIPS 204, Algorithm 3)
  • ca_public_key: 1952-byte raw ML-DSA-65 public key (FIPS 204)

See docs/spec/wire-v1.md in the source repository for the full normative spec.

Cryptographic details

  • Algorithm: ML-DSA-65 (FIPS 204 final), also known as CRYSTALS-Dilithium level 3
  • Tree: RFC 9162-inspired binary Merkle hash tree with SHA-256 leaf and node hashing
  • Domain separation: dual-layer per AD-1.6-02 — envelope context string "AEGIS-STH-v1" in wire bytes (auditor-visible) PLUS FIPS 204 §5.2 ctx parameter b"AEGIS-STH-v1" (cryptographically bound, not in wire bytes)
  • Native library: liboqs 0.11.0 (Open Quantum Safe), statically bundled

License

Apache-2.0. See LICENSE and NOTICE for details.

Release files for aegis-verifier 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aegis-verifier 0.1.3
File Size Uploaded
aegis_verifier-0.1.3.tar.gz 124.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for aegis-verifier 0.1.3
File
aegis_verifier-0.1.3-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
aegis_verifier-0.1.3-cp311-abi3-musllinux_1_2_x86_64.whl CPython 3.11 abi3 Linux musl 1.2+ x86-64 Details
aegis_verifier-0.1.3-cp311-abi3-manylinux_2_28_x86_64.whl CPython 3.11 abi3 Linux glibc 2.28+ x86-64 Details
aegis_verifier-0.1.3-cp311-abi3-manylinux_2_28_aarch64.whl CPython 3.11 abi3 Linux glibc 2.28+ ARM64 Details
aegis_verifier-0.1.3-cp311-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.11 abi3 macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64 Details

Total release size: 2.5 MB

Release files / aegis_verifier-0.1.3.tar.gz

Download URL aegis_verifier-0.1.3.tar.gz
Size 124.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2978fdf7763673c78394e6f3328e4ea2cc4b3ca8d8847340cda83b19ac5f0681
BLAKE2b-256 checksum
How to use checksums
e88c35ffad166c7d8c4275c1f22d1ec9a9c08b4093eb95cd2cbe0163685e98c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 21, 2026.

Transparency log

Release files / aegis_verifier-0.1.3-cp311-abi3-win_amd64.whl

Download URL aegis_verifier-0.1.3-cp311-abi3-win_amd64.whl
Size 254.1 kB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
c2509da21e6bf57c6c93000cb86c8331400cf364f2b1d4ef44200f2f9a508e09
BLAKE2b-256 checksum
How to use checksums
85b1c7a8f0554c5f100e122c1d6206766ea3312a78c1953e4bcb0a2f88298d46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 21, 2026.

Transparency log

Release files / aegis_verifier-0.1.3-cp311-abi3-musllinux_1_2_x86_64.whl

Download URL aegis_verifier-0.1.3-cp311-abi3-musllinux_1_2_x86_64.whl
Size 635.8 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
f8f6b741465bb5097252997b053379fa0ad1ea237f3f6ea9c88bf99e4309bca9
BLAKE2b-256 checksum
How to use checksums
80982050946ff1fa4d807bd6b776bf65033f9167270ae7239e3159e2e8e11b17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 21, 2026.

Transparency log

Release files / aegis_verifier-0.1.3-cp311-abi3-manylinux_2_28_x86_64.whl

Download URL aegis_verifier-0.1.3-cp311-abi3-manylinux_2_28_x86_64.whl
Size 438.9 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
c64dd29362b8aeb9e317236bbe004c4f475d9398d9fc440f269aa2600c9a4122
BLAKE2b-256 checksum
How to use checksums
972f46c88d2dae4985f4270617022d089353f01bd8227916b979d0b6801f26bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 21, 2026.

Transparency log

Release files / aegis_verifier-0.1.3-cp311-abi3-manylinux_2_28_aarch64.whl

Download URL aegis_verifier-0.1.3-cp311-abi3-manylinux_2_28_aarch64.whl
Size 349.6 kB
Tags CPython 3.11 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
7809a81e579dfe5bcdc24ac234326b2ea2d6762a10a2e2c552ac7e05cbde8690
BLAKE2b-256 checksum
How to use checksums
c0d7f7a399180fac9c47abdcc91f00f31b301ba66083dfda1338aa2aa168ef76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 21, 2026.

Transparency log

Release files / aegis_verifier-0.1.3-cp311-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL aegis_verifier-0.1.3-cp311-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 731.4 kB
Tags CPython 3.11 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fd3f11ce3243ebe3122cf76df8feb74d8a92471920af8e0effb11c086c1fdbd7
BLAKE2b-256 checksum
How to use checksums
f62fe5a7c126697900a54148f7670c97d0efacde61ae9b40151fe31e62ea3314
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 21, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.3 This release

6 release files

0.1.2

6 release 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