Skip to main content

AlgoVoi substrate-author layer for JCS+PQC integration: signature_algorithm open-enum + cross-implementor byte-anchor convergence proof.

Project description

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.

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

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.

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