pub mod kem;
pub mod signature;
pub mod kdf;
pub mod hybrid;
pub mod privacy_tiers;
pub mod cc_tier;
pub mod ai_rewards;
pub mod wire_protocol;
pub mod attestation;
pub mod config;
pub mod errors;
pub use kem::{Kem, KemAlgorithm, KemKeyPair, EncapsulationKey, DecapsulationKey};
pub use signature::{Signature, SignatureAlgorithm, SigningKey, VerifyingKey};
pub use kdf::{Kdf, KdfAlgorithm};
pub use hybrid::{HybridKem, HybridMode};
pub use privacy_tiers::{PrivacyTier, CapabilityMatrix, RuntimeRequirements};
pub use cc_tier::{CCTier, TierAttestation, TierRequirement, TrustScoreInput, TrustScoreResult};
pub use ai_rewards::{AIProvider, AIRewardPool, ModelingLevel, ParticipationRewardResult, TaskRewardResult};
pub use config::PqcConfig;
pub use errors::{PqcError, Result};
pub use oqs;
pub fn init() -> Result<()> {
#[cfg(feature = "fips-mode")]
{
verify_fips_rng()?;
}
Ok(())
}
#[cfg(feature = "fips-mode")]
fn verify_fips_rng() -> Result<()> {
use getrandom::getrandom;
let mut buf = [0u8; 32];
getrandom(&mut buf).map_err(|e| PqcError::RngError(e.to_string()))?;
Ok(())
}