pub struct CryptoProvider { /* private fields */ }Expand description
The MLS crypto provider
Implementations§
Source§impl CryptoProvider
impl CryptoProvider
Sourcepub fn new_with_pki_env(
key_store: Database,
pki_env: Option<Arc<PkiEnvironment>>,
) -> Self
pub fn new_with_pki_env( key_store: Database, pki_env: Option<Arc<PkiEnvironment>>, ) -> Self
Construct a crypto provider with the given database and the PKI environment.
Sourcepub async fn new_transaction(&self) -> Result<(), Error>
pub async fn new_transaction(&self) -> Result<(), Error>
Clones the references of the PkiEnvironment and the CryptoProvider into a transaction
keystore to pass to openmls as the OpenMlsCryptoProvider
Sourcepub async fn set_pki_environment(
&mut self,
pki_env: Option<Arc<PkiEnvironment>>,
)
pub async fn set_pki_environment( &mut self, pki_env: Option<Arc<PkiEnvironment>>, )
Set pki_env to a new shared pki environment provider
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
Trait Implementations§
Source§impl Clone for CryptoProvider
impl Clone for CryptoProvider
Source§fn clone(&self) -> CryptoProvider
fn clone(&self) -> CryptoProvider
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 CryptoProvider
impl Debug for CryptoProvider
Source§impl OpenMlsCrypto for &CryptoProvider
Passthrough implementation of crypto functionality for references to MlsCryptoProvider.
impl OpenMlsCrypto for &CryptoProvider
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
Ciphersuites.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 CryptoProvider
impl OpenMlsCryptoProvider for CryptoProvider
type CryptoProvider = RustCrypto
type RandProvider = RustCrypto
type KeyStoreProvider = Database
type AuthenticationServiceProvider = AuthenticationService
Source§fn authentication_service(&self) -> &Self::AuthenticationServiceProvider
fn authentication_service(&self) -> &Self::AuthenticationServiceProvider
Get the authentication service
Auto Trait Implementations§
impl Freeze for CryptoProvider
impl !RefUnwindSafe for CryptoProvider
impl Send for CryptoProvider
impl Sync for CryptoProvider
impl Unpin for CryptoProvider
impl UnsafeUnpin for CryptoProvider
impl !UnwindSafe for CryptoProvider
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