1#![forbid(unsafe_code)]
2#![warn(missing_docs)]
3#![doc = include_str!("../README.md")]
4
5pub mod constraints;
7pub mod error;
9pub mod pq_compatibility;
11pub mod proofs;
13pub 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};