1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//! Prism standard-library cryptography sub-crate.
//!
//! `prism-crypto` realizes the cryptography Layer-3 of the standard
//! library named in [Wiki ADR-031][09-adr-031]: it declares the
//! cryptographic axis traits (`HashAxis`, `CurveAxis`, `SignatureAxis`,
//! `CommitmentAxis`) through the [`axis!`][09-adr-030] SDK macro and
//! supplies canonical impls plus matching `ConstrainedTypeShape`
//! carriers per the wiki's ADR-031 roster.
//!
//! ## Scope
//!
//! - **`HashAxis`** — content-addressing function. Canonical impls:
//! [`Sha256Hasher`], [`Sha512Hasher`], [`Sha3_256Hasher`],
//! [`Blake3Hasher`], [`Keccak256Hasher`]. Each impl is
//! conformance-tested against the relevant standard's published
//! vectors (FIPS-180-4 for SHA-2, FIPS-202 for SHA-3, BLAKE3 spec
//! for BLAKE3) — see `tests/conformance.rs`.
//! - **`CommitmentAxis`** — composes any `HashAxis` impl into a
//! Merkle-root commitment via [`MerkleRoot<H, LEAF_BYTES>`]. The
//! default alias [`MerkleRootCommitment`] is SHA-256. Per ADR-031
//! this is the canonical example of standard-library
//! cross-sub-crate composition.
//! - **`CurveAxis`**, **`SignatureAxis`** — declared per ADR-031's
//! standard-library roster; concrete reference impls are scoped per
//! axis maintenance policy (ADR-031's "operational policy"
//! carve-out).
//!
//! ## ConstrainedTypeShape declarations
//!
//! Per ADR-031's shape-declaration commitment, the canonical
//! cryptographic value-carriers are parametric over byte-width:
//!
//! - **[`Digest<N>`]** — hash output. `Digest<32>` for SHA-256 /
//! SHA3-256 / Keccak-256 / BLAKE3; `Digest<48>` for SHA-384;
//! `Digest<64>` for SHA-512.
//! - **[`PublicKey<N>`]** — public-key bytes.
//! - **[`Signature<N>`]** — signature bytes.
//! - **[`MerkleProofShape<MAX_DEPTH, LEAF_BYTES>`]** — Merkle-inclusion
//! proof.
//!
//! Each shape is `GroundedShape + IntoBindingValue`-bound for use as
//! the `Output` of a `prism_model!`-declared application.
//!
//! ## Closure under uor-foundation (ADR-013)
//!
//! Every axis trait declared here has `::uor_foundation::pipeline::AxisExtension`
//! as a supertrait — the `axis!` macro enforces this. Concrete impls
//! that take no type parameters use the companion-macro lane; the
//! parametric `MerkleRoot<H, LEAF_BYTES>` hand-writes its
//! `AxisExtension` impl since the companion macro takes `:ident`.
//!
//! ## See also
//!
//! - [Wiki: 09 Architecture Decisions § ADR-030 — `axis!` SDK macro][09-adr-030]
//! - [Wiki: 09 Architecture Decisions § ADR-031 — `prism` is the standard library][09-adr-031]
//! - [Wiki: 09 Architecture Decisions § ADR-024 — Three-layer algebraic closure][09-adr-024]
//! - [Wiki: 12 Glossary § Crypto][12-glossary]
//!
//! [09-adr-024]: https://github.com/UOR-Foundation/UOR-Framework/wiki/09-Architecture-Decisions
//! [09-adr-030]: https://github.com/UOR-Foundation/UOR-Framework/wiki/09-Architecture-Decisions
//! [09-adr-031]: https://github.com/UOR-Foundation/UOR-Framework/wiki/09-Architecture-Decisions
//! [12-glossary]: https://github.com/UOR-Foundation/UOR-Framework/wiki/12-Glossary
pub use ;
pub use CurveAxis;
pub use ;
pub use ;
pub use SignatureAxis;
/// Wiki ADR-031 standard-library version banner. Each prism standard-
/// library sub-crate exposes this so application authors can introspect
/// the canonical-reference version of the axes it declares.
pub const STANDARD_LIBRARY_VERSION: &str = env!;