Struct snow::NoiseBuilder
[−]
[src]
pub struct NoiseBuilder<'builder> { /* fields omitted */ }
Generates a NoiseSession
and also validate that all the prerequisites for
the given parameters are satisfied.
Examples
let noise = NoiseBuilder::new("Noise_XX_25519_ChaChaPoly_BLAKE2s".parse().unwrap()) .local_private_key(&my_long_term_key) .remote_public_key(&their_pub_key) .prologue("noise is just swell".as_bytes()) .build_initiator() .unwrap();
Methods
impl<'builder> NoiseBuilder<'builder>
[src]
fn new(params: NoiseParams) -> Self
Create a NoiseBuilder with the default crypto resolver.
fn with_resolver(params: NoiseParams, resolver: Box<CryptoResolver>) -> Self
Create a NoiseBuilder with a custom crypto resolver.
fn psk(self, location: u8, key: &'builder [u8]) -> Self
Specify a PSK (only used with NoisePSK
base parameter)
fn local_private_key(self, key: &'builder [u8]) -> Self
Your static private key, can be generated by generate_private_key()
.
fn prologue(self, key: &'builder [u8]) -> Self
Arbitrary data to be hashed in to the handshake hash value.
fn remote_public_key(self, pub_key: &'builder [u8]) -> Self
The responder's static public key.
fn generate_private_key(&self) -> Result<Vec<u8>>
Generate a new private key. It's up to the user of this library how to store this.
fn build_initiator(self) -> Result<Session>
Build a NoiseSession for the side who will initiate the handshake (send the first message)
fn build_responder(self) -> Result<Session>
Build a NoiseSession for the side who will be responder (receive the first message)