pub trait KeyInit: KeySizeUser + Sized {
// Required method
fn new(key: &Key<Self>) -> Self;
// Provided methods
fn weak_key_test(_key: &Key<Self>) -> Result<(), WeakKeyError> { ... }
fn new_checked(key: &Key<Self>) -> Result<Self, WeakKeyError> { ... }
fn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength> { ... }
fn generate_key() -> Result<Key<Self>, OsError> { ... }
fn generate_key_with_rng<R: CryptoRng>(rng: &mut R) -> Key<Self> { ... }
fn try_generate_key_with_rng<R: TryCryptoRng>(
rng: &mut R,
) -> Result<Key<Self>, R::Error> { ... }
}Expand description
Types which can be initialized from key.
Required Methods§
Provided Methods§
Sourcefn weak_key_test(_key: &Key<Self>) -> Result<(), WeakKeyError>
fn weak_key_test(_key: &Key<Self>) -> Result<(), WeakKeyError>
Check if the key might be considered weak.
Sourcefn new_checked(key: &Key<Self>) -> Result<Self, WeakKeyError>
fn new_checked(key: &Key<Self>) -> Result<Self, WeakKeyError>
Create new value from fixed size key after checking it for weakness.
Sourcefn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength>
fn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength>
Create new value from variable size key.
Sourcefn generate_key() -> Result<Key<Self>, OsError>
Available on crate feature os_rng only.
fn generate_key() -> Result<Key<Self>, OsError>
os_rng only.Generate random key using the operating system’s secure RNG.
Sourcefn generate_key_with_rng<R: CryptoRng>(rng: &mut R) -> Key<Self>
Available on crate feature rand_core only.
fn generate_key_with_rng<R: CryptoRng>(rng: &mut R) -> Key<Self>
rand_core only.Generate random key using the provided CryptoRng.
Sourcefn try_generate_key_with_rng<R: TryCryptoRng>(
rng: &mut R,
) -> Result<Key<Self>, R::Error>
Available on crate feature rand_core only.
fn try_generate_key_with_rng<R: TryCryptoRng>( rng: &mut R, ) -> Result<Key<Self>, R::Error>
rand_core only.Generate random key using the provided TryCryptoRng.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.