pub struct SshkdfBuilder<'a> { /* private fields */ }Expand description
SSH key-derivation builder (RFC 4253 §7.2).
ⓘ
let iv = SshkdfBuilder::new(&sha256, &shared_secret, &exchange_hash, &session_id,
SshkdfKeyType::InitialIvClientToServer)
.derive_to_vec(16)?;Implementations§
Source§impl<'a> SshkdfBuilder<'a>
impl<'a> SshkdfBuilder<'a>
Sourcepub fn new(
digest: &'a DigestAlg,
key: &'a [u8],
xcghash: &'a [u8],
session_id: &'a [u8],
key_type: SshkdfKeyType,
) -> Self
pub fn new( digest: &'a DigestAlg, key: &'a [u8], xcghash: &'a [u8], session_id: &'a [u8], key_type: SshkdfKeyType, ) -> Self
Create an SSH-KDF builder.
digest— hash algorithm (e.g. SHA-256).key— the shared secretKfrom the Diffie-Hellman exchange.xcghash— exchange hashH.session_id— the session identifier (= firstHfor the session).key_type— which key/IV component to derive (A–F).
Sourcepub fn derive(self, out: &mut [u8]) -> Result<(), ErrorStack>
pub fn derive(self, out: &mut [u8]) -> Result<(), ErrorStack>
Derive key material, writing into out.
§Errors
Sourcepub fn derive_to_vec(self, len: usize) -> Result<Vec<u8>, ErrorStack>
pub fn derive_to_vec(self, len: usize) -> Result<Vec<u8>, ErrorStack>
Derive len bytes, returning them in a freshly allocated Vec<u8>.
§Errors
Auto Trait Implementations§
impl<'a> Freeze for SshkdfBuilder<'a>
impl<'a> RefUnwindSafe for SshkdfBuilder<'a>
impl<'a> Send for SshkdfBuilder<'a>
impl<'a> Sync for SshkdfBuilder<'a>
impl<'a> Unpin for SshkdfBuilder<'a>
impl<'a> UnwindSafe for SshkdfBuilder<'a>
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