pub struct HandshakeContext {
pub chaining_key: [u8; 32],
pub hash: [u8; 32],
pub ephemeral: Option<X25519KeyPair>,
pub remote_ephemeral: Option<[u8; 32]>,
pub sender_index: u32,
pub receiver_index: u32,
}Expand description
Handshake context for Noise_IKpsk2
Fields§
§chaining_key: [u8; 32]Chaining key
hash: [u8; 32]Hash state
ephemeral: Option<X25519KeyPair>Local ephemeral key pair
remote_ephemeral: Option<[u8; 32]>Remote ephemeral public key
sender_index: u32Our sender index
receiver_index: u32Their sender index
Implementations§
Source§impl HandshakeContext
impl HandshakeContext
Sourcepub fn create_initiation(
&mut self,
static_key: &X25519KeyPair,
remote_static_pub: &[u8; 32],
preshared_key: &[u8; 32],
timestamp: &[u8; 12],
sender_index: u32,
) -> [u8; 148]
pub fn create_initiation( &mut self, static_key: &X25519KeyPair, remote_static_pub: &[u8; 32], preshared_key: &[u8; 32], timestamp: &[u8; 12], sender_index: u32, ) -> [u8; 148]
Build handshake initiation message (148 bytes)
Sourcepub fn create_response(
&mut self,
static_key: &X25519KeyPair,
remote_static_pub: &[u8; 32],
preshared_key: &[u8; 32],
sender_index: u32,
receiver_index: u32,
) -> [u8; 92]
pub fn create_response( &mut self, static_key: &X25519KeyPair, remote_static_pub: &[u8; 32], preshared_key: &[u8; 32], sender_index: u32, receiver_index: u32, ) -> [u8; 92]
Build handshake response message (92 bytes)
Sourcepub fn derive_transport_keys(&self) -> (SessionKeys, SessionKeys)
pub fn derive_transport_keys(&self) -> (SessionKeys, SessionKeys)
Derive transport keys from completed handshake
Trait Implementations§
Source§impl Clone for HandshakeContext
impl Clone for HandshakeContext
Source§fn clone(&self) -> HandshakeContext
fn clone(&self) -> HandshakeContext
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for HandshakeContext
impl RefUnwindSafe for HandshakeContext
impl Send for HandshakeContext
impl Sync for HandshakeContext
impl Unpin for HandshakeContext
impl UnwindSafe for HandshakeContext
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)