pub(crate) use mls_rs_core::crypto::CipherSuiteProvider;
pub use mls_rs_core::crypto::{
    HpkeCiphertext, HpkeContextR, HpkeContextS, HpkePublicKey, HpkeSecretKey, SignaturePublicKey,
    SignatureSecretKey,
};
pub use mls_rs_core::secret::Secret;
#[cfg(test)]
pub(crate) mod test_utils {
    use cfg_if::cfg_if;
    use mls_rs_core::crypto::CryptoProvider;
    cfg_if! {
        if #[cfg(target_arch = "wasm32")] {
            pub use mls_rs_crypto_webcrypto::WebCryptoProvider as TestCryptoProvider;
        } else {
            pub use mls_rs_crypto_openssl::OpensslCryptoProvider as TestCryptoProvider;
        }
    }
    use crate::cipher_suite::CipherSuite;
    pub fn test_cipher_suite_provider(
        cipher_suite: CipherSuite,
    ) -> <TestCryptoProvider as CryptoProvider>::CipherSuiteProvider {
        TestCryptoProvider::new()
            .cipher_suite_provider(cipher_suite)
            .unwrap()
    }
    #[allow(unused)]
    pub fn try_test_cipher_suite_provider(
        cipher_suite: u16,
    ) -> Option<<TestCryptoProvider as CryptoProvider>::CipherSuiteProvider> {
        TestCryptoProvider::new().cipher_suite_provider(CipherSuite::from(cipher_suite))
    }
}