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 - Challenge data used when identifying self. This includes a nonce that we’ll use with another nonce for the challenge.
- Client
Finish Data - 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.
- Client
Hello Data - Initial message client sends to server to begin identifying itself and pick the protocol.
- Client
Query Data - Query for the protocols the server supports.
- Close
Data - Frame
- Frame
Header - Goodbye
Data - Sent before closing a connection.
- MsgFlags
- Flags sent along with a message payload to signal various conditions.
- Notification
Data - Open
Data - Data passed when opening a new channel. Channel ID is implicit.
- Push
Data - Data passed when pushing data on a channel.
- Response
Data - Protocol-specific response message, which we expect to be a signature and maybe the also the pubkey we’re identifying ourselves as.
- Server
Dump Data - Response to the query of the protocols the server supports.
- Server
Hello Data - Acknowledgement of the
ClientHelloand the choice of protocol. Includes challenges and responses as necessary.
Enums§
- Auth
Intent - Describes what auth relationship we want to set up with the server. This ignores any authentication that may be provided by the underlying transport.
- Frame
Body - Roughly parsed frame body.
- Frame
Type - Side
- Viewpoint-agnostic side of a channel, where client is generically the initator and server is generically the acceptor.