Struct diem_crypto::noise::NoiseConfig
source · pub struct NoiseConfig { /* private fields */ }
Expand description
A key holder structure used for both initiators and responders.
Implementations§
source§impl NoiseConfig
impl NoiseConfig
sourcepub fn new(private_key: PrivateKey) -> Self
pub fn new(private_key: PrivateKey) -> Self
A peer must create a NoiseConfig through this function before being able to connect with other peers.
sourcepub fn public_key(&self) -> PublicKey
pub fn public_key(&self) -> PublicKey
Handy getter to access the configuration’s public key
sourcepub fn initiate_connection(
&self,
rng: &mut (impl RngCore + CryptoRng),
prologue: &[u8],
remote_public: PublicKey,
payload: Option<&[u8]>,
response_buffer: &mut [u8]
) -> Result<InitiatorHandshakeState, NoiseError>
pub fn initiate_connection( &self, rng: &mut (impl RngCore + CryptoRng), prologue: &[u8], remote_public: PublicKey, payload: Option<&[u8]>, response_buffer: &mut [u8] ) -> Result<InitiatorHandshakeState, NoiseError>
An initiator can use this function to initiate a handshake with a known responder.
sourcepub fn finalize_connection(
&self,
handshake_state: InitiatorHandshakeState,
received_message: &[u8]
) -> Result<(Vec<u8>, NoiseSession), NoiseError>
pub fn finalize_connection( &self, handshake_state: InitiatorHandshakeState, received_message: &[u8] ) -> Result<(Vec<u8>, NoiseSession), NoiseError>
A client can call this to finalize a connection, after receiving an answer from a server.
sourcepub fn parse_client_init_message(
&self,
prologue: &[u8],
received_message: &[u8]
) -> Result<(PublicKey, ResponderHandshakeState, Vec<u8>), NoiseError>
pub fn parse_client_init_message( &self, prologue: &[u8], received_message: &[u8] ) -> Result<(PublicKey, ResponderHandshakeState, Vec<u8>), NoiseError>
A responder can accept a connection by first parsing an initiator message. The function respond_to_client is usually called after this to respond to the initiator.
sourcepub fn respond_to_client(
&self,
rng: &mut (impl RngCore + CryptoRng),
handshake_state: ResponderHandshakeState,
payload: Option<&[u8]>,
response_buffer: &mut [u8]
) -> Result<NoiseSession, NoiseError>
pub fn respond_to_client( &self, rng: &mut (impl RngCore + CryptoRng), handshake_state: ResponderHandshakeState, payload: Option<&[u8]>, response_buffer: &mut [u8] ) -> Result<NoiseSession, NoiseError>
A responder can respond to an initiator by calling this function with the state obtained, after calling parse_client_init_message
sourcepub fn respond_to_client_and_finalize(
&self,
rng: &mut (impl RngCore + CryptoRng),
prologue: &[u8],
received_message: &[u8],
payload: Option<&[u8]>,
response_buffer: &mut [u8]
) -> Result<(Vec<u8>, NoiseSession), NoiseError>
pub fn respond_to_client_and_finalize( &self, rng: &mut (impl RngCore + CryptoRng), prologue: &[u8], received_message: &[u8], payload: Option<&[u8]>, response_buffer: &mut [u8] ) -> Result<(Vec<u8>, NoiseSession), NoiseError>
This function is a one-call that replaces calling the two functions parse_client_init_message and respond_to_client consecutively
Trait Implementations§
Auto Trait Implementations§
impl Freeze for NoiseConfig
impl RefUnwindSafe for NoiseConfig
impl Send for NoiseConfig
impl Sync for NoiseConfig
impl Unpin for NoiseConfig
impl UnwindSafe for NoiseConfig
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
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.