mls_rs/
crypto.rs

1// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2// Copyright by contributors to this project.
3// SPDX-License-Identifier: (Apache-2.0 OR MIT)
4
5pub(crate) use mls_rs_core::crypto::CipherSuiteProvider;
6
7pub use mls_rs_core::crypto::{
8    HpkeCiphertext, HpkeContextR, HpkeContextS, HpkePublicKey, HpkeSecretKey, SignaturePublicKey,
9    SignatureSecretKey,
10};
11
12pub use mls_rs_core::secret::Secret;
13
14#[cfg(test)]
15pub(crate) mod test_utils {
16    use cfg_if::cfg_if;
17    use mls_rs_core::crypto::CryptoProvider;
18
19    cfg_if! {
20        if #[cfg(target_arch = "wasm32")] {
21            pub use mls_rs_crypto_webcrypto::WebCryptoProvider as TestCryptoProvider;
22        } else {
23            pub use mls_rs_crypto_openssl::OpensslCryptoProvider as TestCryptoProvider;
24        }
25    }
26
27    use crate::cipher_suite::CipherSuite;
28
29    pub fn test_cipher_suite_provider(
30        cipher_suite: CipherSuite,
31    ) -> <TestCryptoProvider as CryptoProvider>::CipherSuiteProvider {
32        TestCryptoProvider::new()
33            .cipher_suite_provider(cipher_suite)
34            .unwrap()
35    }
36
37    #[allow(unused)]
38    pub fn try_test_cipher_suite_provider(
39        cipher_suite: u16,
40    ) -> Option<<TestCryptoProvider as CryptoProvider>::CipherSuiteProvider> {
41        TestCryptoProvider::new().cipher_suite_provider(CipherSuite::from(cipher_suite))
42    }
43}