Crate secret_handshake [] [src]

Implementation of the secret-handshake protocol version 1.

This library uses libsodium internally. In application code, call sodiumoxide::init() before performing any handshakes.

Re-exports

pub use crypto::Outcome;
pub use crypto::NETWORK_IDENTIFIER_BYTES;

Modules

crypto

Low-level bindings to shs1-c. You probably don't need to use this module directly.

errors

The errors that an be emitted when performing handshakes.

Structs

ClientHandshaker

Performs the client side of a handshake.

OwningClientHandshaker

Performs the client side of a handshake. This copies the keys so that it isn't constrainted by their lifetime.

OwningServerHandshaker

Performs the server side of a handshake. This copies the keys so that it isn't constrainted by their lifetime.

OwningServerHandshakerWithFilter

Performs the server side of a handshake. Allows filtering clients based on their longterm public key. This copies the keys so that it isn't constrainted by their lifetime.

ServerHandshaker

Performs the server side of a handshake.

ServerHandshakerWithFilter

Performs the server side of a handshake. Allows filtering clients based on their longterm public key.

Enums

ServerHandshakeError

A fatal error that occured during the execution of a handshake by a filtering server.

ServerHandshakeFailureWithFilter

Reason why a filtering server might reject the client although the handshake itself was executed without IO errors.