Crate snow [−] [src]
The snow
crate is a straightforward, Hard To Fuck Up™ Noise Protocol implementation.
Read the Noise Protocol Framework Spec for more information.
The typical usage flow is to use NoiseBuilder
to construct a Session
, which is main
state machine you will want to interact with.
Examples
See examples/simple.rs
for a more complete TCP client/server example.
let noise = NoiseBuilder::new("Noise_NN_ChaChaPoly_BLAKE2s".parse().unwrap()) .build_initiator() .unwrap(); let mut buf = [0u8; 65535]; // write first handshake message noise.write_message(&[0u8; 0], &mut buf).unwrap(); // receive response message let incoming = receive_message_from_the_mysterious_ether(); noise.read_message(&incoming, &mut buf).unwrap(); // complete handshake, and transition the state machine into transport mode let noise = noise.into_transport_mode();
Modules
params |
All structures related to Noise parameter definitions (cryptographic primitive choices, protocol patterns/names) |
types |
The traits for cryptographic implementations that can be used by Noise. |
wrappers |
The wrappers around the default collection of cryptography and entropy providers. |
Structs
DefaultResolver |
The default pure-rust crypto implementation resolver. |
Error |
The Error type. |
NoiseBuilder |
Generates a |
Enums
ErrorKind |
The kind of an error. |
InitStage |
The various stages of initialization used to help identify
the specific cause of an |
Prerequisite |
A prerequisite that may be missing. |
Session |
A state machine for the entire Noise session. |
StateProblem |
Specific errors in the state machine. |
Traits
CryptoResolver |
An object that resolves the providers of Noise crypto choices |
ResultExt |
Additional methods for |
Type Definitions
Result |
Convenient wrapper around |