#![cfg_attr(not(feature = "std"), no_std)]
pub use dcrypt_api as api;
pub use dcrypt_common as common;
pub use dcrypt_internal as internal;
pub use dcrypt_params as params;
pub use api::{Error, Result};
#[cfg(feature = "algorithms")]
pub use dcrypt_algorithms as algorithms;
#[cfg(feature = "symmetric")]
pub use dcrypt_symmetric as symmetric;
#[cfg(feature = "kem")]
pub use dcrypt_kem as kem;
#[cfg(feature = "sign")]
pub use dcrypt_sign as sign;
#[cfg(feature = "pke")]
pub use dcrypt_pke as pke;
#[cfg(feature = "hybrid")]
pub use dcrypt_hybrid as hybrid;
#[cfg(feature = "sign")]
pub use api::Signature;
pub use api::traits;
pub mod prelude {
pub use crate::api::{Error, Result};
pub use crate::api::{
AuthenticatedCipher, BlockCipher, HashAlgorithm, Kem, KeyDerivationFunction, Serialize,
Signature, StreamCipher, SymmetricCipher,
};
pub use crate::api::traits::*;
pub use crate::common::{EphemeralSecret, SecretBuffer, SecureZeroingType, ZeroizeGuard};
pub use crate::common::{SecureCompare, SecureOperation, SecureOperationExt};
#[cfg(any(feature = "std", feature = "alloc"))]
pub use crate::common::SecureOperationBuilder;
#[cfg(feature = "alloc")]
pub use crate::common::SecretVec;
#[cfg(any(feature = "std", feature = "alloc"))]
pub use crate::common::{CurveParams, ECPoint};
}
#[cfg(test)]
mod tests {
#[test]
#[cfg(feature = "sign")]
fn test_sign_imports() {
use crate::api::Signature as SignatureTrait;
use crate::sign;
let _: Option<&dyn SignatureTrait> = None;
}
#[test]
#[cfg(feature = "full")]
fn test_full_imports() {
use crate::{algorithms, api, common, hybrid, internal, kem, params, pke, sign, symmetric};
let _ = api::Error;
}
}