northroot_proof_engine/lib.rs
1//! Engine v0.2.0 - LOCKED
2//! DO NOT MODIFY without version bump
3//! Last frozen: 2025-11-06
4//!
5//! Northroot Proof Engine v0.2 — Core proof computation and validation library
6//!
7//! This library provides the foundational cryptographic and validation primitives
8//! for the modular proof architecture (PoSH, PoX).
9//!
10//! # Architecture
11//!
12//! - **PoSH (Proof of Shape)**: Method transformation contracts
13//! - **PoX (Proof of Execution)**: Run evidence and commitments
14//!
15//! # Modules
16//!
17//! - `types`: v0.2 proof type definitions
18//! - `canonical`: Deterministic JSON canonicalization
19//! - `hash`: SHA-256 hash computation
20//! - `signature`: ed25519 signature handling
21//! - `validation`: Input validation functions
22//! - `data_shape`: Data shape hashing
23//! # Usage Example
24//!
25//! ```rust
26//! use northroot_proof_engine::{compute_sha256, validate_trace_id, SpanCommitment, SpanStatus};
27//!
28//! // Compute SHA-256 hash
29//! let hash = compute_sha256("Hello, world!");
30//! assert!(hash.starts_with("sha256:"));
31//!
32//! // Validate trace ID
33//! assert!(validate_trace_id("tr_01H1234567890").is_ok());
34//! assert!(validate_trace_id("invalid").is_err());
35//! ```
36//!
37//! # See Also
38//!
39//! - [README](../README.md) - Overview and quick start guide
40//! - [CLI Guide](../docs/CLI_GUIDE.md) - Command-line tool usage
41//! - [Benchmarks](../docs/BENCHMARKS.md) - Performance characteristics
42
43pub mod canonical;
44pub mod data_shape;
45pub mod hash;
46pub mod ids;
47pub mod signature;
48pub mod types;
49pub mod validation;
50
51// Re-export commonly used types
52pub use types::{
53 ArtifactRef, Did, IsoTime, MethodRef, MethodShapeManifest, RuntimePins, Sha256, Signature,
54 SignedSpan, SpanCommitment, SpanMeta, SpanShape, SpanStatus, Trace, TraceRoots, Uri,
55};
56
57// Re-export canonicalization functions
58pub use canonical::{
59 canonicalize_method_shape, canonicalize_span_commitment, canonicalize_span_shape,
60 canonicalize_trace, canonicalize_trace_roots, normalize_timestamp, CanonicalError,
61};
62
63// Re-export hash functions
64pub use hash::{
65 compute_identity_root, compute_method_shape_hash, compute_method_shape_root, compute_sha256,
66 compute_span_commitment_hash, compute_span_shape_hash, compute_trace_hash,
67 compute_trace_roots_hash, compute_trace_seq_root, compute_trace_set_root, HashError,
68};
69
70// Re-export signature functions
71pub use signature::{
72 sign_message, sign_span_commitment, validate_signature_format, verify_signature,
73 verify_span_commitment_signature, SignatureError,
74};
75
76// Re-export validation functions
77pub use validation::{
78 validate_iso_time, validate_method_ref, validate_sha256_format, validate_span_commitment,
79 validate_span_id, validate_trace_id, ValidationError,
80};
81
82// Re-export data shape functions
83pub use data_shape::{compute_data_shape_hash, validate_data_shape_hash, DataShapeError};
84
85// Re-export ID validation (for OTEL compatibility)
86pub use ids::{
87 validate_span_id as validate_otel_span_id, validate_trace_id as validate_otel_trace_id,
88 OtelIdError,
89};