# README

protobuf specification for the messages from the station to the client that tell the client which decoys to try to use, and the parameters for those decoys.

The protobufs do not entirely describe the client<==>station protocol: these protobufs are nested within a very primitive protocol. This outer protocol is identical for both client=>station and station=>client. It consists of a sequence of messages, each of which can be one of two types: raw app data (what used to be MSG_DATA) or protobuf (StationToClient or ClientToStation, as appropriate). There is no setup/teardown, just the messages.

The outer protocol is: Each message is a 16-bit net-order int "TL" (type+len), followed by a data blob. If TL is negative, the blob is pure app data, with length abs(TL). If TL is positive, the blob is a protobuf, with length TL. If TL is 0, then read the following 4 bytes. Those 4 bytes are a net-order u32. This u32 is the length of the blob, which begins after this u32. The blob is a protobuf.

We need this outer protocol because protobufs don't delimit themselves. This outer protocol should never, ever change, given the flexibility of protobufs. That's why we're willing to do funky stuff to optimize to the last bit.

# Functions

InitTLSDecoySpec creates TLSDecoySpec from ip address and server name.

# Constants

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
connect me to provided covert.
connect me to squid.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
You messed up, client (e.g.
You told me something was wrong, client.
My stream to you broke.
You never came back.
Squid TCP connection broke.
Everything's fine, but don't use this decoy right now.
No description provided by the author
I broke.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
not supported atm.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
TODO should probably also allow EXPECT_RECONNECT here, for DittoTap.
No description provided by the author
No description provided by the author
connected to covert host.
connected to squid.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
UDP transport: DTLS.
Formatting transport - format first, format all.
Format transforming encryption.
Send a 32-byte HMAC id to let the station distinguish registrations to same host.
No description provided by the author
No description provided by the author
dynamic prefix transport (and updated Min).
quic transport?.
uTLS based transport.
WebAssembly.
UDP transport: WebRTC DataChannel.

# Variables

Enum value maps for C2S_Transition.
Enum value maps for C2S_Transition.
Enum value maps for DnsRegMethod.
Enum value maps for DnsRegMethod.
Enum value maps for ErrorReasonS2C.
Enum value maps for ErrorReasonS2C.
No description provided by the author
Enum value maps for IPProto.
Enum value maps for IPProto.
Enum value maps for KeyType.
Enum value maps for KeyType.
Enum value maps for RegistrationSource.
Enum value maps for RegistrationSource.
Enum value maps for S2C_Transition.
Enum value maps for S2C_Transition.
Enum value maps for StationOperations.
Enum value maps for StationOperations.
Enum value maps for TransportType.
Enum value maps for TransportType.

# Structs

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Configuration for DNS registrar.
response from dns.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Adding message response from Station to Client for bidirectional API.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Deflated ICE Candidate by seed2sdp package.
Deflated SDP for WebRTC by seed2sdp package.
WebRTCSignal includes a deflated SDP and a seed.

# Type aliases

State transitions of the client.
No description provided by the author
Should accompany all S2C_ERROR messages.
No description provided by the author
No description provided by the author
No description provided by the author
State transitions of the server.
No description provided by the author
No description provided by the author