pub struct MlsCryptoProvider { /* private fields */ }Implementations§
Source§impl MlsCryptoProvider
impl MlsCryptoProvider
Sourcepub async fn new_transaction(&self) -> MlsProviderResult<()>
pub async fn new_transaction(&self) -> MlsProviderResult<()>
Clones the references of the PkiEnvironment and the CryptoProvider into a transaction
keystore to pass to openmls as the OpenMlsCryptoProvider
Sourcepub async fn update_pki_env(
&self,
pki_env: PkiEnvironment,
) -> MlsProviderResult<()>
pub async fn update_pki_env( &self, pki_env: PkiEnvironment, ) -> MlsProviderResult<()>
Replaces the PKI env currently in place
Sourcepub async fn is_pki_env_setup(&self) -> bool
pub async fn is_pki_env_setup(&self) -> bool
Returns whether we have a PKI env setup
Sourcepub fn reseed(&self, entropy_seed: Option<EntropySeed>) -> MlsProviderResult<()>
pub fn reseed(&self, entropy_seed: Option<EntropySeed>) -> MlsProviderResult<()>
Reseeds the internal CSPRNG entropy pool with a brand new one.
If None is provided, the new entropy will be pulled through the current OS target’s capabilities
Sourcepub async fn close(&self) -> MlsProviderResult<()>
pub async fn close(&self) -> MlsProviderResult<()>
Wait for any keystore transaction to finish, then close the database connection.
Note: This does not destroy the data on-disk in case of persistent backing store
Sourcepub fn unwrap_keystore(self) -> Database
pub fn unwrap_keystore(self) -> Database
Allows to retrieve the underlying key store directly
Trait Implementations§
Source§impl Clone for MlsCryptoProvider
impl Clone for MlsCryptoProvider
Source§fn clone(&self) -> MlsCryptoProvider
fn clone(&self) -> MlsCryptoProvider
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MlsCryptoProvider
impl Debug for MlsCryptoProvider
Source§impl OpenMlsCrypto for &MlsCryptoProvider
Passthrough implementation of crypto functionality for references to MlsCryptoProvider.
impl OpenMlsCrypto for &MlsCryptoProvider
Passthrough implementation of crypto functionality for references to MlsCryptoProvider.
Source§fn supports(&self, ciphersuite: Ciphersuite) -> Result<(), CryptoError>
fn supports(&self, ciphersuite: Ciphersuite) -> Result<(), CryptoError>
Check whether the [
Ciphersuite] is supported by the backend or not. Read moreSource§fn supported_ciphersuites(&self) -> Vec<Ciphersuite>
fn supported_ciphersuites(&self) -> Vec<Ciphersuite>
Returns the list of supported [
Ciphersuite]s.Source§fn hkdf_extract(
&self,
hash_type: HashType,
salt: &[u8],
ikm: &[u8],
) -> Result<SecretVLBytes, CryptoError>
fn hkdf_extract( &self, hash_type: HashType, salt: &[u8], ikm: &[u8], ) -> Result<SecretVLBytes, CryptoError>
HKDF extract. Read more
Source§fn hkdf_expand(
&self,
hash_type: HashType,
prk: &[u8],
info: &[u8],
okm_len: usize,
) -> Result<SecretVLBytes, CryptoError>
fn hkdf_expand( &self, hash_type: HashType, prk: &[u8], info: &[u8], okm_len: usize, ) -> Result<SecretVLBytes, CryptoError>
HKDF expand. Read more
Source§fn hash(&self, hash_type: HashType, data: &[u8]) -> Result<Vec<u8>, CryptoError>
fn hash(&self, hash_type: HashType, data: &[u8]) -> Result<Vec<u8>, CryptoError>
Hash the
data. Read moreSource§fn aead_encrypt(
&self,
alg: AeadType,
key: &[u8],
data: &[u8],
nonce: &[u8],
aad: &[u8],
) -> Result<Vec<u8>, CryptoError>
fn aead_encrypt( &self, alg: AeadType, key: &[u8], data: &[u8], nonce: &[u8], aad: &[u8], ) -> Result<Vec<u8>, CryptoError>
AEAD encrypt with the given parameters. Read more
Source§fn aead_decrypt(
&self,
alg: AeadType,
key: &[u8],
ct_tag: &[u8],
nonce: &[u8],
aad: &[u8],
) -> Result<Vec<u8>, CryptoError>
fn aead_decrypt( &self, alg: AeadType, key: &[u8], ct_tag: &[u8], nonce: &[u8], aad: &[u8], ) -> Result<Vec<u8>, CryptoError>
AEAD decrypt with the given parameters. Read more
Source§fn signature_key_gen(
&self,
alg: SignatureScheme,
) -> Result<(Vec<u8>, Vec<u8>), CryptoError>
fn signature_key_gen( &self, alg: SignatureScheme, ) -> Result<(Vec<u8>, Vec<u8>), CryptoError>
Generate a signature key. Read more
Source§fn signature_public_key_len(&self, alg: SignatureScheme) -> usize
fn signature_public_key_len(&self, alg: SignatureScheme) -> usize
Gives the length of a signature public key, in bytes
Source§fn validate_signature_key(
&self,
alg: SignatureScheme,
key: &[u8],
) -> Result<(), CryptoError>
fn validate_signature_key( &self, alg: SignatureScheme, key: &[u8], ) -> Result<(), CryptoError>
Parses and validate a signature public key
Source§fn verify_signature(
&self,
alg: SignatureScheme,
data: &[u8],
pk: &[u8],
signature: &[u8],
) -> Result<(), CryptoError>
fn verify_signature( &self, alg: SignatureScheme, data: &[u8], pk: &[u8], signature: &[u8], ) -> Result<(), CryptoError>
Verify the signature Read more
Source§fn sign(
&self,
alg: SignatureScheme,
data: &[u8],
key: &[u8],
) -> Result<Vec<u8>, CryptoError>
fn sign( &self, alg: SignatureScheme, data: &[u8], key: &[u8], ) -> Result<Vec<u8>, CryptoError>
Sign with the given parameters. Read more
Source§fn hpke_seal(
&self,
config: HpkeConfig,
pk_r: &[u8],
info: &[u8],
aad: &[u8],
ptxt: &[u8],
) -> Result<HpkeCiphertext, CryptoError>
fn hpke_seal( &self, config: HpkeConfig, pk_r: &[u8], info: &[u8], aad: &[u8], ptxt: &[u8], ) -> Result<HpkeCiphertext, CryptoError>
HPKE single-shot encryption of
ptxt to pk_r, using info and aad.Source§fn hpke_open(
&self,
config: HpkeConfig,
input: &HpkeCiphertext,
sk_r: &[u8],
info: &[u8],
aad: &[u8],
) -> Result<Vec<u8>, CryptoError>
fn hpke_open( &self, config: HpkeConfig, input: &HpkeCiphertext, sk_r: &[u8], info: &[u8], aad: &[u8], ) -> Result<Vec<u8>, CryptoError>
HPKE single-shot decryption of
input with sk_r, using info and
aad.Source§fn hpke_setup_sender_and_export(
&self,
config: HpkeConfig,
pk_r: &[u8],
info: &[u8],
exporter_context: &[u8],
exporter_length: usize,
) -> Result<(KemOutput, ExporterSecret), CryptoError>
fn hpke_setup_sender_and_export( &self, config: HpkeConfig, pk_r: &[u8], info: &[u8], exporter_context: &[u8], exporter_length: usize, ) -> Result<(KemOutput, ExporterSecret), CryptoError>
HPKE single-shot setup of a sender and immediate export a secret. Read more
Source§fn hpke_setup_receiver_and_export(
&self,
config: HpkeConfig,
enc: &[u8],
sk_r: &[u8],
info: &[u8],
exporter_context: &[u8],
exporter_length: usize,
) -> Result<ExporterSecret, CryptoError>
fn hpke_setup_receiver_and_export( &self, config: HpkeConfig, enc: &[u8], sk_r: &[u8], info: &[u8], exporter_context: &[u8], exporter_length: usize, ) -> Result<ExporterSecret, CryptoError>
HPKE single-shot setup of a receiver and immediate export a secret. Read more
Source§fn derive_hpke_keypair(
&self,
config: HpkeConfig,
ikm: &[u8],
) -> Result<HpkeKeyPair, CryptoError>
fn derive_hpke_keypair( &self, config: HpkeConfig, ikm: &[u8], ) -> Result<HpkeKeyPair, CryptoError>
Derive a new HPKE keypair from a given input key material.
Source§impl OpenMlsCryptoProvider for MlsCryptoProvider
impl OpenMlsCryptoProvider for MlsCryptoProvider
type CryptoProvider = RustCrypto
type RandProvider = RustCrypto
type KeyStoreProvider = Database
type AuthenticationServiceProvider = PkiEnvironmentProvider
Source§fn authentication_service(&self) -> &Self::AuthenticationServiceProvider
fn authentication_service(&self) -> &Self::AuthenticationServiceProvider
Get the authentication service
Auto Trait Implementations§
impl Freeze for MlsCryptoProvider
impl !RefUnwindSafe for MlsCryptoProvider
impl Send for MlsCryptoProvider
impl Sync for MlsCryptoProvider
impl Unpin for MlsCryptoProvider
impl !UnwindSafe for MlsCryptoProvider
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more