Struct ring::hmac::Key[][src]

pub struct Key { /* fields omitted */ }
Expand description

A key to use for HMAC signing.

Implementations

impl Key[src]

pub fn generate(
    algorithm: Algorithm,
    rng: &dyn SecureRandom
) -> Result<Self, Unspecified>
[src]

Generate an HMAC signing key using the given digest algorithm with a random value generated from rng.

The key will be digest_alg.output_len bytes long, based on the recommendation in https://tools.ietf.org/html/rfc2104#section-3.

pub fn new(algorithm: Algorithm, key_value: &[u8]) -> Self[src]

Construct an HMAC signing key using the given digest algorithm and key value.

key_value should be a value generated using a secure random number generator (e.g. the key_value output by SealingKey::generate_serializable()) or derived from a random key by a key derivation function (e.g. ring::hkdf). In particular, key_value shouldn’t be a password.

As specified in RFC 2104, if key_value is shorter than the digest algorithm’s block length (as returned by digest::Algorithm::block_len, not the digest length returned by digest::Algorithm::output_len) then it will be padded with zeros. Similarly, if it is longer than the block length then it will be compressed using the digest algorithm.

You should not use keys larger than the digest_alg.block_len because the truncation described above reduces their strength to only digest_alg.output_len * 8 bits. Support for such keys is likely to be removed in a future version of ring.

pub fn algorithm(&self) -> Algorithm[src]

The digest algorithm for the key.

Trait Implementations

impl Clone for Key[src]

fn clone(&self) -> Key[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for Key[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>[src]

Formats the value using the given formatter. Read more

impl From<Okm<'_, Algorithm>> for Key[src]

fn from(okm: Okm<'_, Algorithm>) -> Self[src]

Performs the conversion.

Auto Trait Implementations

impl Send for Key

impl Sync for Key

impl Unpin for Key

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.