[][src]Crate shs_core

Based on Duncan's fantastic Scuttlebutt Protocol Guide (repo), which he graciously released into the public domain.

Modules

client
server

Structs

ClientAuth

Message 3 (Client to Server)

ClientEphPublicKey

Client ephemeral public key (generated anew for each connection)

ClientEphSecretKey

Client ephemeral secret key

ClientHello

Message 1 (Client to Server)

ClientPublicKey

Client long-term public key

ClientSecretKey

Client long-term secret key

ClientSignature
ClientToServerKey

Final shared secret used to encrypt secret boxes (client to server)

ClientToServerNonce

Nonce for a client-to-server secret box

ClientToServerNonceGen

Generator of nonces for client-to-server secret boxes

HandshakeOutcome
NetworkId

32-byte network id, known by client and server. Usually NetworkId::SSB_MAIN_NET

NonceGen
ServerAccept

Message 4 (Server to Client)

ServerEphPublicKey

Server ephemeral public key (generated anew for each connection)

ServerEphSecretKey

Server ephemeral secret key

ServerHello

Message 2 (Server to Client)

ServerPublicKey

Server long-term public key; known to client prior to the handshake

ServerSecretKey

Server long-term secret key

ServerToClientKey

Final shared secret used to encrypt secret boxes (server to client)

ServerToClientNonce

Nonce for a server-to-client secret box

ServerToClientNonceGen

Generator of nonces for client-to-server secret boxes

SharedA

Shared Secret A (client and server ephemeral keys)

SharedB

Shared Secret B (client ephemeral key, server long-term key)

SharedC

Shared Secret C (client long-term key, server ephemeral key)

Enums

HandshakeError