1pub mod kem;
7pub mod signature;
8pub mod kdf;
9pub mod hybrid;
10pub mod privacy_tiers;
11pub mod cc_tier;
12pub mod ai_rewards;
13pub mod wire_protocol;
14pub mod attestation;
15pub mod config;
16pub mod errors;
17
18pub use kem::{Kem, KemAlgorithm, KemKeyPair, EncapsulationKey, DecapsulationKey};
19pub use signature::{Signature, SignatureAlgorithm, SigningKey, VerifyingKey};
20pub use kdf::{Kdf, KdfAlgorithm};
21pub use hybrid::{HybridKem, HybridMode};
22pub use privacy_tiers::{PrivacyTier, CapabilityMatrix, RuntimeRequirements};
23pub use cc_tier::{CCTier, TierAttestation, TierRequirement, TrustScoreInput, TrustScoreResult};
24pub use ai_rewards::{AIProvider, AIRewardPool, ModelingLevel, ParticipationRewardResult, TaskRewardResult};
25pub use config::PqcConfig;
26pub use errors::{PqcError, Result};
27
28pub use oqs;
30
31pub fn init() -> Result<()> {
33 #[cfg(feature = "fips-mode")]
35 {
36 verify_fips_rng()?;
37 }
38
39 Ok(())
40}
41
42#[cfg(feature = "fips-mode")]
43fn verify_fips_rng() -> Result<()> {
44 use getrandom::getrandom;
46 let mut buf = [0u8; 32];
47 getrandom(&mut buf).map_err(|e| PqcError::RngError(e.to_string()))?;
48 Ok(())
49}