pub mod engine;
pub mod keys;
pub mod secrets;
pub mod errors;
pub use engine::{CryptoEngine, PerformanceProfile, EncryptionOptions, PerformanceBenchmark, BatchEncryptionResult};
pub use keys::{DerivedKey, KeyDerivationParams, SecureRandom};
pub use secrets::{EncryptedSecret, PlaintextSecret, SecretMetadata, SecretType};
pub use errors::{CryptoError, CryptoResult};
pub use chacha20poly1305::{ChaCha20Poly1305, Key, Nonce};
pub use argon2::Argon2;
pub mod defaults {
use argon2::{Algorithm, Params, Version};
pub const ARGON2_PARAMS: Params = match Params::new(
65536, 3, 4, Some(32), ) {
Ok(params) => params,
Err(_) => panic!("Invalid default Argon2 parameters"),
};
pub const ARGON2_ALGORITHM: Algorithm = Algorithm::Argon2id;
pub const ARGON2_VERSION: Version = Version::V0x13;
pub const SALT_LENGTH: usize = 32;
pub const NONCE_LENGTH: usize = 12;
pub const KEY_LENGTH: usize = 32;
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_module_exports() {
let _engine = CryptoEngine::new();
assert!(true, "Module exports are accessible");
}
}