Module ecksport_core::frame

source ·
Expand description

Frame data types for describing the wire format abstractly.

In this context, we use “client” to refer to the initiator that makes an outgoing connection and “server” to refer to the responder that receives an incoming connection. This doesn’t have to map onto high-level protocol concepts in the consumer, naturally.

Structs§

  • Challenge data used when identifying self. This includes a nonce that we’ll use with another nonce for the challenge.
  • Finishes the client’s side of the handshake if we’re identifying ourselves. This is omitted if we’re not doing the full self-identification handshake.
  • Initial message client sends to server to begin identifying itself and pick the protocol.
  • Query for the protocols the server supports.
  • Sent before closing a connection.
  • Flags sent along with a message payload to signal various conditions.
  • Data passed when opening a new channel. Channel ID is implicit.
  • Data passed when pushing data on a channel.
  • Protocol-specific response message, which we expect to be a signature and maybe the also the pubkey we’re identifying ourselves as.
  • Response to the query of the protocols the server supports.
  • Acknowledgement of the ClientHello and the choice of protocol. Includes challenges and responses as necessary.

Enums§

  • Describes what auth relationship we want to set up with the server. This ignores any authentication that may be provided by the underlying transport.
  • Roughly parsed frame body.
  • Viewpoint-agnostic side of a channel, where client is generically the initator and server is generically the acceptor.