Struct diem_sdk::crypto::noise::NoiseConfig
pub struct NoiseConfig { /* private fields */ }
Expand description
A key holder structure used for both initiators and responders.
Implementations§
§impl NoiseConfig
impl NoiseConfig
pub fn new(private_key: PrivateKey) -> NoiseConfig
pub fn new(private_key: PrivateKey) -> NoiseConfig
A peer must create a NoiseConfig through this function before being able to connect with other peers.
pub fn public_key(&self) -> PublicKey
pub fn public_key(&self) -> PublicKey
Handy getter to access the configuration’s public key
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>
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.
pub fn finalize_connection(
&self,
handshake_state: InitiatorHandshakeState,
received_message: &[u8]
) -> Result<(Vec<u8, Global>, NoiseSession), NoiseError>
pub fn finalize_connection( &self, handshake_state: InitiatorHandshakeState, received_message: &[u8] ) -> Result<(Vec<u8, Global>, NoiseSession), NoiseError>
A client can call this to finalize a connection, after receiving an answer from a server.
pub fn parse_client_init_message(
&self,
prologue: &[u8],
received_message: &[u8]
) -> Result<(PublicKey, ResponderHandshakeState, Vec<u8, Global>), NoiseError>
pub fn parse_client_init_message( &self, prologue: &[u8], received_message: &[u8] ) -> Result<(PublicKey, ResponderHandshakeState, Vec<u8, Global>), 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.
pub 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
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, Global>, 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, Global>, NoiseSession), NoiseError>
This function is a one-call that replaces calling the two functions parse_client_init_message and respond_to_client consecutively