pub struct Hkdf<H: BitcoinHash> {
pub(crate) prk: Hmac<H>,
}
Expand description
Implements the RFC5869 hash based key derivation function using the hash
function H
.
Fields§
§prk: Hmac<H>
Implementations§
Source§impl<H: BitcoinHash> Hkdf<H>
impl<H: BitcoinHash> Hkdf<H>
Sourcepub fn new(ikm: &[u8], salt: Option<&[u8]>) -> Self
pub fn new(ikm: &[u8], salt: Option<&[u8]>) -> Self
Run HKDF-extract and keep the resulting pseudo random key as internal state
§Inputs
ikm
: Input keying material, secret key material our keys will be derived fromsalt
: Optional salt value, if not required set to&[0; H::LEN]
. As noted in the RFC the salt value can also be a secret.
Sourcepub fn from_prk(prk: Hmac<H>) -> Self
pub fn from_prk(prk: Hmac<H>) -> Self
Construct the HKDF from a pseudo random key that has the correct
distribution and length already (e.g. because it’s the output of a
previous HKDF round), skipping the HKDF-extract step. If in doubt,
please use Hkdf::new
instead!
See also Hkdf::derive_hmac
.
Sourcepub fn derive_hmac(&self, info: &[u8]) -> Hmac<H>
pub fn derive_hmac(&self, info: &[u8]) -> Hmac<H>
Run HKDF-expand to generate new key material with L = H::LEN
See Hkdf::derive
for more information.
Trait Implementations§
Auto Trait Implementations§
impl<H> Freeze for Hkdf<H>where
H: Freeze,
impl<H> RefUnwindSafe for Hkdf<H>where
H: RefUnwindSafe,
impl<H> Send for Hkdf<H>where
H: Send,
impl<H> Sync for Hkdf<H>where
H: Sync,
impl<H> Unpin for Hkdf<H>where
H: Unpin,
impl<H> UnwindSafe for Hkdf<H>where
H: UnwindSafe,
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)