Skip to main content

MasterKey

Struct MasterKey 

Source
pub struct MasterKey { /* private fields */ }
Expand description

A wrapper around a 32-byte master key that automatically zeroes its memory when dropped.

Use this to hold the master key in memory so it cannot linger after it is no longer needed.

Implementations§

Source§

impl MasterKey

Source

pub fn new(bytes: [u8; 32]) -> Self

Create a new MasterKey from raw bytes.

Source

pub fn as_bytes(&self) -> &[u8; 32]

Access the raw key bytes (e.g. to pass to HKDF or encryption).

Source

pub fn derive_secret_key(&self, secret_name: &str) -> Result<[u8; 32]>

Derive a per-secret encryption key from this master key.

Source

pub fn derive_hmac_key(&self) -> Result<[u8; 32]>

Derive an HMAC key from this master key.

Trait Implementations§

Source§

impl Zeroize for MasterKey

Source§

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not “optimized away” by the compiler.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V