use openmls_memory_keystore::MemoryKeyStore;
use openmls_rust_crypto::RustCrypto;
use openmls_traits::OpenMlsCryptoProvider;
#[derive(Debug)]
pub struct MlsProvider {
crypto: RustCrypto,
key_store: MemoryKeyStore,
}
impl MlsProvider {
pub fn new() -> Self {
Self {
crypto: RustCrypto::default(),
key_store: MemoryKeyStore::default(),
}
}
}
impl Default for MlsProvider {
fn default() -> Self {
Self::new()
}
}
impl OpenMlsCryptoProvider for MlsProvider {
type CryptoProvider = RustCrypto;
type RandProvider = RustCrypto;
type KeyStoreProvider = MemoryKeyStore;
fn crypto(&self) -> &Self::CryptoProvider {
&self.crypto
}
fn rand(&self) -> &Self::RandProvider {
&self.crypto
}
fn key_store(&self) -> &Self::KeyStoreProvider {
&self.key_store
}
}