Skip to main content

smp_zk_proofs/
lib.rs

1#![forbid(unsafe_code)]
2#![warn(missing_docs)]
3#![doc = include_str!("../README.md")]
4
5/// Circuit definitions and native constraint evaluation.
6pub mod constraints;
7/// Error types for all `smp-zk-proofs` operations.
8pub mod error;
9/// Post-quantum compatibility layer and backend descriptors.
10pub mod pq_compatibility;
11/// Proof generation, verification, types, and proving backends.
12pub mod proofs;
13/// Serialisation, hashing, and commitment utilities.
14pub mod utils;
15
16pub use constraints::{ConstraintReport, LocationCircuit, TrainingCircuit};
17pub use error::ZkProofError;
18pub use pq_compatibility::{
19    PlaceholderBackend, PostQuantumBackend, PostQuantumBackendDescriptor, PostQuantumBackendStatus,
20};
21pub use proofs::generator::{ProvingContext, prove_location, prove_training};
22pub use proofs::types::{
23    BoundingBox, CircuitKind, LocationPrivateWitness, LocationPublicInputs, Proof, ProofScheme,
24    TrainingPrivateWitness, TrainingPublicInputs, VerificationKey,
25};
26pub use proofs::verifier::{verify_location_proof, verify_training_proof};
27#[cfg(feature = "rand")]
28pub use utils::generate_csprng_blinding_factor;
29#[cfg(feature = "rand")]
30pub use utils::generate_secure_blinding_factor;
31pub use utils::{
32    constant_time_eq_bytes, deserialize, generate_deterministic_blinding_factor, hash_bytes,
33    hash_serializable, location_commitment, serialize, training_commitment,
34    validate_blinding_factor,
35};