Skip to main content

algovoi-substrate-pqc

AlgoVoi substrate-author layer for JCS+PQC integration.

This package implements the AlgoVoi-authored substrate convention for binding canonical-JSON-serialised payloads to post-quantum signature primitives, with a fail-closed verifier discipline over an open-enum signature_algorithm registry.

The underlying cryptographic primitives are not AlgoVoi-authored. This package is a thin substrate-author layer over audited upstream libraries. See the upstream-attribution table below for the full credit chain.

pip install algovoi-substrate-pqc

What this package provides

Component Author What it is
signature_algorithm open-enum registry AlgoVoi 12-row recommended-values table covering classical (ES256, ES256K, Ed25519, ECDSA) + PQC (Falcon-512/1024, ML-DSA-44/65/87, SLH-DSA-SHA2-128s) + HMAC (HMAC-SHA-256, HMAC-SHA-384) families. Case-sensitive lookup per RFC 7517 §4.1.
Fail-closed verifier discipline AlgoVoi Verifiers MUST treat unknown identifiers as opaque and refuse to verify. Implementors MAY declare any value.
JCS+PQC integration pattern AlgoVoi Canonical bytes via RFC 8785 → signature via chosen scheme → artefact with expected_canonical_sha256 byte-anchor.
Cross-implementor byte-anchor convergence proof AlgoVoi One canonical payload, N signature schemes, byte-identical SHA-256 across implementations.
Standalone reference verifier glue AlgoVoi ~70 lines of Python orchestrating canonical-bytes recomputation + signature verification across all four schemes.

Upstream primitives

This package wraps existing audited primitives. Authorship of those primitives belongs to the parties listed below, not to AlgoVoi:

Primitive Implementation Author / Source
Falcon-1024 (FIPS 206 / FN-DSA) PQClean reference C, exposed via pqcrypto v0.4.0+ PQClean community + Backbone Authors (Apache-2.0)
ML-DSA-65 (FIPS 204) PQClean reference C, exposed via pqcrypto v0.4.0+ PQClean community + Backbone Authors (Apache-2.0)
ES256 / Ed25519 / SHA-256 cryptography v42+ + stdlib hashlib Python Cryptographic Authority + NIST FIPS 180-4
JCS canonicalisation (RFC 8785) rfc8785 v0.1.4 Anders Rundgren et al.
AP2 PaymentMandate schema v0.1 Schema reference only (no code dependency) Google agentic-commerce

The Falcon algorithm itself is the work of Fouque, Hoffstein, Kirchner, Lyubashevsky, Pornin, Prest, Ricosset, Seiler, Whyte, and Zhang (NIST PQC competition; standardised as NIST FIPS 206). The ML-DSA algorithm (Dilithium / CRYSTALS-Dilithium) is the work of Bai, Ducas, Kiltz, Lepoint, Lyubashevsky, Schwabe, Seiler, and Stehlé (standardised as NIST FIPS 204).

PQC cross-implementor contribution

The ML-DSA-65 cross-implementor fixture this package verifies against was contributed by PQSafe (@rayc0) per the AP2 #250 joint conformance fixture. The contribution scope is the pqsafe-side/ ML-DSA-65 signature over the same canonical bytes the AlgoVoi-side fixture signs (FIPS 204 / NIST Level 3). PQSafe is named co-maintainer of chopmob-cloud/ap2-pq-conformance (the joint conformance repo) per the published policy. Credit is scoped to that ML-DSA-65 contribution only; substrate-author work for this package (signature_algorithm convention, JCS+PQC binding pattern, fail-closed verifier discipline, byte-anchor proof methodology) is AlgoVoi's.

Position relative to the substrate-author work

This package sits above the audited PQC primitives and alongside the AlgoVoi-authored canonicalisation discipline. It emits receipts under urn:x402:canonicalisation:jcs-rfc8785-v2 (PQC-aware), the strictly-additive successor to urn:x402:canonicalisation:jcs-rfc8785-v1. The canonicalisation core (RFC 8785 JCS plus schema-normalisation rules) is unchanged between v1 and v2; v2 adds the signature_algorithm open-enum registry and the fail-closed verifier discipline this package implements.

IETF Internet-Draft status. An IETF Internet-Draft formalising urn:x402:canonicalisation:jcs-rfc8785-v2 under the Independent Submissions stream is pending an active IETF list thread (May 2026) on the appropriate scope and use of the Independent Submissions stream for x402-related substrate documentation. The v2 discipline is published on docs.algovoi.co.uk/canonicalisation-substrate-v2, in this reference implementation, and in the Substrate Adopters Registry independently of that process.

Layer Owner Artefact
L0 — Lattice mathematics, FIPS 204 / FIPS 206 standardisation Academic cryptographers + NIST
L1 — PQC reference C implementations PQClean PQClean/PQClean repo
L2 — Python wrapper around PQClean Backbone Authors pqcrypto PyPI package
L3 — Classical primitives + JCS rule Python Cryptographic Authority + Anders Rundgren cryptography, rfc8785 PyPI packages
L4 — Canonicalisation discipline v1 AlgoVoi urn:x402:canonicalisation:jcs-rfc8785-v1, AlgoVoi-authored, IETF Independent Submission Informational
L4 — Canonicalisation discipline v2 (PQC-aware) AlgoVoi urn:x402:canonicalisation:jcs-rfc8785-v2, AlgoVoi-authored, IETF I-D filing pending the active IETF list thread on Independent Submissions stream scope
L4 — signature_algorithm open-enum + binding pattern AlgoVoi This package (codifies v2 normatively)

AlgoVoi's substrate-author contribution is the convention, the binding, and the proof methodology, not the primitives.

Cross-implementor byte-anchor convergence

The AlgoVoi substrate-author position rests on byte-anchor convergence: multiple independent signature schemes verifying against the identical canonical-byte representation of a single payload. The reference exemplar is the AP2 PaymentMandate joint conformance fixture at chopmob-cloud/ap2-pq-conformance:

Side Schemes Canonical SHA-256
algovoi-side/ ES256 + Ed25519 + Falcon-1024 sha256:cc8315f7…e0
pqsafe-side/ (PQSafe co-contributor) ML-DSA-65 sha256:cc8315f7…e0

Four signature schemes, one canonical payload, byte-identical SHA-256 across implementations. This package is the reference implementation of that convergence-proof methodology.

Verifier rule (fail-closed)

Verifiers MUST treat unknown signature_algorithm values as opaque and refuse to verify.

This rule is the fail-closed normative discipline that allows the signature_algorithm registry to evolve without breaking schema changes. Implementors MAY declare any value. Verifiers MUST reject unknown values or escalate to a registered extension, rather than guessing.

The Python implementation surfaces this rule as UnknownSignatureAlgorithm raised from lookup_signature_algorithm().

License

Apache 2.0.

This package is Apache-2.0 licensed, consistent with all upstream dependencies (pqcrypto, cryptography, rfc8785).

Contact

Adopters

Parties pinning canon_version: jcs-rfc8785-v2 in publicly-citable artefacts are recorded in the Substrate Adopters Registry alongside v1 adopters. Current v2 adopters:

  • AlgoVoi -- this reference implementation (Python + npm packages published 2026-05-26). Cross-validated byte-for-byte across three audit-grade PQC implementations (PQClean via pqcrypto, @noble/post-quantum, Bouncy Castle 1.84 with MLDSASigner).

To request listing as a v2 adopter, follow the submission process. AlgoVoi validates submissions against the artefact's canonical bytes and adds qualifying entries.

v1 adopters retain their registry position. Adopting v2 adds a separate row pinned to jcs-rfc8785-v2 rather than replacing the v1 row.

Acknowledgments

The v2 discipline is solely AlgoVoi-authored. AlgoVoi acknowledges with thanks the post-quantum contribution and reference-implementation work that makes the cross-implementor convergence proof empirically possible:

Post-quantum contribution (v2-specific):

  • PQSafe (@rayc0) -- ML-DSA-65 (FIPS 204) signature contribution over the AP2 PaymentMandate canonical bytes (chopmob-cloud/ap2-pq-conformance#1, merged 2026-05-26). Credit is scoped to this ML-DSA-65 contribution only.

Audit-grade PQC implementations cross-validated in the matrix:

The three audit-grade PQC implementations agree byte-for-byte across the 24-cell producer × verifier matrix. The substrate-author position rests on this independent multi-author cross-validation, not on AlgoVoi self-claim.

Classical primitives and JCS library wrapped:

v1 validator and contributor acknowledgments (the broader cross-impl validation matrix v2 builds on) are recorded at docs.algovoi.co.uk/canonicalisation-substrate#acknowledgments-and-external-contributions and in the chopmob-cloud/algovoi-substrate README.

Co-maintainer policy

Contributors who land a substrate-aligned signature scheme (new family in the registry, or a new cross-implementor convergence-proof against the same canonical-bytes discipline) MAY be invited as co-maintainers of this repository for the duration of their contribution. Attribution is per-component; each contributor is named for the specific scheme or proof they contribute.

This policy mirrors the chopmob-cloud/ap2-pq-conformance policy under which PQSafe (rayc0) joined as co-maintainer with the ML-DSA-65 contribution.

Download files

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

Source Distribution

algovoi_substrate_pqc-0.1.2.tar.gz (23.6 kB view details)

Uploaded Source

Built Distribution

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

algovoi_substrate_pqc-0.1.2-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file algovoi_substrate_pqc-0.1.2.tar.gz.

File metadata

  • Download URL: algovoi_substrate_pqc-0.1.2.tar.gz
  • Upload date:
  • Size: 23.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for algovoi_substrate_pqc-0.1.2.tar.gz
Algorithm Hash digest
SHA256 822c553b83d66f5691dafe464a99ecfc142ed22597ae18ed8467eb146dfe89ee
MD5 d250e43d99328fca38c1332d78a50cd2
BLAKE2b-256 805735ccb654583bf6ff53e32c77b520f4622bd6b98a6b94dc4f38a0f16bae83

See more details on using hashes here.

File details

Details for the file algovoi_substrate_pqc-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for algovoi_substrate_pqc-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b0ac46e177eab2abf0bafcef4636baf7d160c22f59bf93c659a1e7bbdf7bd7cb
MD5 1af0307c73a310b24dc0deb71a1ff683
BLAKE2b-256 7fc4750bd1d88d9145d74fce84c9bc420f8ebabf62fabcadfbfe459e458c9f8c

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

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