Documentation ¶
Index ¶
- Variables
- type C2S_Transition
- type ClientConf
- func (*ClientConf) Descriptor() ([]byte, []int)
- func (m *ClientConf) GetDecoyList() *DecoyList
- func (m *ClientConf) GetDefaultPubkey() *PubKey
- func (m *ClientConf) GetGeneration() uint32
- func (*ClientConf) ProtoMessage()
- func (m *ClientConf) Reset()
- func (m *ClientConf) String() string
- func (m *ClientConf) XXX_DiscardUnknown()
- func (m *ClientConf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *ClientConf) XXX_Merge(src proto.Message)
- func (m *ClientConf) XXX_Size() int
- func (m *ClientConf) XXX_Unmarshal(b []byte) error
- type ClientToStation
- func (*ClientToStation) Descriptor() ([]byte, []int)
- func (m *ClientToStation) GetCovertAddress() string
- func (m *ClientToStation) GetDecoyListGeneration() uint32
- func (m *ClientToStation) GetFailedDecoys() []string
- func (m *ClientToStation) GetPadding() []byte
- func (m *ClientToStation) GetProtocolVersion() uint32
- func (m *ClientToStation) GetStateTransition() C2S_Transition
- func (m *ClientToStation) GetStats() *SessionStats
- func (m *ClientToStation) GetUploadSync() uint64
- func (*ClientToStation) ProtoMessage()
- func (m *ClientToStation) Reset()
- func (m *ClientToStation) String() string
- func (m *ClientToStation) XXX_DiscardUnknown()
- func (m *ClientToStation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *ClientToStation) XXX_Merge(src proto.Message)
- func (m *ClientToStation) XXX_Size() int
- func (m *ClientToStation) XXX_Unmarshal(b []byte) error
- type DecoyList
- func (*DecoyList) Descriptor() ([]byte, []int)
- func (m *DecoyList) GetTlsDecoys() []*TLSDecoySpec
- func (*DecoyList) ProtoMessage()
- func (m *DecoyList) Reset()
- func (m *DecoyList) String() string
- func (m *DecoyList) XXX_DiscardUnknown()
- func (m *DecoyList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *DecoyList) XXX_Merge(src proto.Message)
- func (m *DecoyList) XXX_Size() int
- func (m *DecoyList) XXX_Unmarshal(b []byte) error
- type ErrorReasonS2C
- type KeyType
- type PubKey
- func (*PubKey) Descriptor() ([]byte, []int)
- func (m *PubKey) GetKey() []byte
- func (m *PubKey) GetType() KeyType
- func (*PubKey) ProtoMessage()
- func (m *PubKey) Reset()
- func (m *PubKey) String() string
- func (m *PubKey) XXX_DiscardUnknown()
- func (m *PubKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *PubKey) XXX_Merge(src proto.Message)
- func (m *PubKey) XXX_Size() int
- func (m *PubKey) XXX_Unmarshal(b []byte) error
- type S2C_Transition
- type SessionStats
- func (*SessionStats) Descriptor() ([]byte, []int)
- func (m *SessionStats) GetFailedDecoysAmount() uint32
- func (m *SessionStats) GetRttToStation() uint32
- func (m *SessionStats) GetTcpToDecoy() uint32
- func (m *SessionStats) GetTlsToDecoy() uint32
- func (m *SessionStats) GetTotalTimeToConnect() uint32
- func (*SessionStats) ProtoMessage()
- func (m *SessionStats) Reset()
- func (m *SessionStats) String() string
- func (m *SessionStats) XXX_DiscardUnknown()
- func (m *SessionStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *SessionStats) XXX_Merge(src proto.Message)
- func (m *SessionStats) XXX_Size() int
- func (m *SessionStats) XXX_Unmarshal(b []byte) error
- type StationToClient
- func (*StationToClient) Descriptor() ([]byte, []int)
- func (m *StationToClient) GetConfigInfo() *ClientConf
- func (m *StationToClient) GetErrReason() ErrorReasonS2C
- func (m *StationToClient) GetPadding() []byte
- func (m *StationToClient) GetProtocolVersion() uint32
- func (m *StationToClient) GetStateTransition() S2C_Transition
- func (m *StationToClient) GetStationId() string
- func (m *StationToClient) GetTmpBackoff() uint32
- func (*StationToClient) ProtoMessage()
- func (m *StationToClient) Reset()
- func (m *StationToClient) String() string
- func (m *StationToClient) XXX_DiscardUnknown()
- func (m *StationToClient) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *StationToClient) XXX_Merge(src proto.Message)
- func (m *StationToClient) XXX_Size() int
- func (m *StationToClient) XXX_Unmarshal(b []byte) error
- type TLSDecoySpec
- func (*TLSDecoySpec) Descriptor() ([]byte, []int)
- func (m *TLSDecoySpec) GetHostname() string
- func (ds *TLSDecoySpec) GetIpAddrStr() string
- func (m *TLSDecoySpec) GetIpv4Addr() uint32
- func (m *TLSDecoySpec) GetIpv6Addr() []byte
- func (m *TLSDecoySpec) GetPubkey() *PubKey
- func (m *TLSDecoySpec) GetTcpwin() uint32
- func (m *TLSDecoySpec) GetTimeout() uint32
- func (*TLSDecoySpec) ProtoMessage()
- func (m *TLSDecoySpec) Reset()
- func (m *TLSDecoySpec) String() string
- func (m *TLSDecoySpec) XXX_DiscardUnknown()
- func (m *TLSDecoySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *TLSDecoySpec) XXX_Merge(src proto.Message)
- func (m *TLSDecoySpec) XXX_Size() int
- func (m *TLSDecoySpec) XXX_Unmarshal(b []byte) error
Constants ¶
This section is empty.
Variables ¶
View Source
var C2S_Transition_name = map[int32]string{
0: "C2S_NO_CHANGE",
1: "C2S_SESSION_INIT",
11: "C2S_SESSION_COVERT_INIT",
2: "C2S_EXPECT_RECONNECT",
3: "C2S_SESSION_CLOSE",
4: "C2S_YIELD_UPLOAD",
5: "C2S_ACQUIRE_UPLOAD",
6: "C2S_EXPECT_UPLOADONLY_RECONN",
255: "C2S_ERROR",
}
View Source
var C2S_Transition_value = map[string]int32{
"C2S_NO_CHANGE": 0,
"C2S_SESSION_INIT": 1,
"C2S_SESSION_COVERT_INIT": 11,
"C2S_EXPECT_RECONNECT": 2,
"C2S_SESSION_CLOSE": 3,
"C2S_YIELD_UPLOAD": 4,
"C2S_ACQUIRE_UPLOAD": 5,
"C2S_EXPECT_UPLOADONLY_RECONN": 6,
"C2S_ERROR": 255,
}
View Source
var ErrorReasonS2C_name = map[int32]string{
0: "NO_ERROR",
1: "COVERT_STREAM",
2: "CLIENT_REPORTED",
3: "CLIENT_PROTOCOL",
4: "STATION_INTERNAL",
5: "DECOY_OVERLOAD",
100: "CLIENT_STREAM",
101: "CLIENT_TIMEOUT",
}
View Source
var ErrorReasonS2C_value = map[string]int32{
"NO_ERROR": 0,
"COVERT_STREAM": 1,
"CLIENT_REPORTED": 2,
"CLIENT_PROTOCOL": 3,
"STATION_INTERNAL": 4,
"DECOY_OVERLOAD": 5,
"CLIENT_STREAM": 100,
"CLIENT_TIMEOUT": 101,
}
View Source
var KeyType_name = map[int32]string{
90: "AES_GCM_128",
91: "AES_GCM_256",
}
View Source
var KeyType_value = map[string]int32{
"AES_GCM_128": 90,
"AES_GCM_256": 91,
}
View Source
var S2C_Transition_name = map[int32]string{
0: "S2C_NO_CHANGE",
1: "S2C_SESSION_INIT",
11: "S2C_SESSION_COVERT_INIT",
2: "S2C_CONFIRM_RECONNECT",
3: "S2C_SESSION_CLOSE",
255: "S2C_ERROR",
}
View Source
var S2C_Transition_value = map[string]int32{
"S2C_NO_CHANGE": 0,
"S2C_SESSION_INIT": 1,
"S2C_SESSION_COVERT_INIT": 11,
"S2C_CONFIRM_RECONNECT": 2,
"S2C_SESSION_CLOSE": 3,
"S2C_ERROR": 255,
}
Functions ¶
This section is empty.
Types ¶
type C2S_Transition ¶
type C2S_Transition int32
State transitions of the client
const ( C2S_Transition_C2S_NO_CHANGE C2S_Transition = 0 C2S_Transition_C2S_SESSION_INIT C2S_Transition = 1 C2S_Transition_C2S_SESSION_COVERT_INIT C2S_Transition = 11 C2S_Transition_C2S_EXPECT_RECONNECT C2S_Transition = 2 C2S_Transition_C2S_SESSION_CLOSE C2S_Transition = 3 C2S_Transition_C2S_YIELD_UPLOAD C2S_Transition = 4 C2S_Transition_C2S_ACQUIRE_UPLOAD C2S_Transition = 5 C2S_Transition_C2S_EXPECT_UPLOADONLY_RECONN C2S_Transition = 6 C2S_Transition_C2S_ERROR C2S_Transition = 255 )
func (C2S_Transition) Enum ¶
func (x C2S_Transition) Enum() *C2S_Transition
func (C2S_Transition) EnumDescriptor ¶
func (C2S_Transition) EnumDescriptor() ([]byte, []int)
func (C2S_Transition) String ¶
func (x C2S_Transition) String() string
func (*C2S_Transition) UnmarshalJSON ¶
func (x *C2S_Transition) UnmarshalJSON(data []byte) error
type ClientConf ¶
type ClientConf struct { DecoyList *DecoyList `protobuf:"bytes,1,opt,name=decoy_list,json=decoyList" json:"decoy_list,omitempty"` Generation *uint32 `protobuf:"varint,2,opt,name=generation" json:"generation,omitempty"` DefaultPubkey *PubKey `protobuf:"bytes,3,opt,name=default_pubkey,json=defaultPubkey" json:"default_pubkey,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*ClientConf) Descriptor ¶
func (*ClientConf) Descriptor() ([]byte, []int)
func (*ClientConf) GetDecoyList ¶
func (m *ClientConf) GetDecoyList() *DecoyList
func (*ClientConf) GetDefaultPubkey ¶
func (m *ClientConf) GetDefaultPubkey() *PubKey
func (*ClientConf) GetGeneration ¶
func (m *ClientConf) GetGeneration() uint32
func (*ClientConf) ProtoMessage ¶
func (*ClientConf) ProtoMessage()
func (*ClientConf) Reset ¶
func (m *ClientConf) Reset()
func (*ClientConf) String ¶
func (m *ClientConf) String() string
func (*ClientConf) XXX_DiscardUnknown ¶
func (m *ClientConf) XXX_DiscardUnknown()
func (*ClientConf) XXX_Marshal ¶
func (m *ClientConf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*ClientConf) XXX_Merge ¶
func (m *ClientConf) XXX_Merge(src proto.Message)
func (*ClientConf) XXX_Size ¶
func (m *ClientConf) XXX_Size() int
func (*ClientConf) XXX_Unmarshal ¶
func (m *ClientConf) XXX_Unmarshal(b []byte) error
type ClientToStation ¶
type ClientToStation struct { ProtocolVersion *uint32 `protobuf:"varint,1,opt,name=protocol_version,json=protocolVersion" json:"protocol_version,omitempty"` // The client reports its decoy list's version number here, which the // station can use to decide whether to send an updated one. The station // should always send a list if this field is set to 0. DecoyListGeneration *uint32 `protobuf:"varint,2,opt,name=decoy_list_generation,json=decoyListGeneration" json:"decoy_list_generation,omitempty"` StateTransition *C2S_Transition `` /* 129-byte string literal not displayed */ // The position in the overall session's upload sequence where the current // YIELD=>ACQUIRE switchover is happening. UploadSync *uint64 `protobuf:"varint,4,opt,name=upload_sync,json=uploadSync" json:"upload_sync,omitempty"` // List of decoys that client have unsuccessfully tried in current session. // Could be sent in chunks FailedDecoys []string `protobuf:"bytes,10,rep,name=failed_decoys,json=failedDecoys" json:"failed_decoys,omitempty"` Stats *SessionStats `protobuf:"bytes,11,opt,name=stats" json:"stats,omitempty"` // Station is only required to check this variable during session initialization. // If set, station must facilitate connection to said target by itself, i.e. write into squid // socket an HTTP/SOCKS/any other connection request. // covert_address must have exactly one ':' colon, that separates host (literal IP address or // resolvable hostname) and port // TODO: make it required for initialization, and stop connecting any client straight to squid? CovertAddress *string `protobuf:"bytes,20,opt,name=covert_address,json=covertAddress" json:"covert_address,omitempty"` // Random-sized junk to defeat packet size fingerprinting. Padding []byte `protobuf:"bytes,100,opt,name=padding" json:"padding,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*ClientToStation) Descriptor ¶
func (*ClientToStation) Descriptor() ([]byte, []int)
func (*ClientToStation) GetCovertAddress ¶
func (m *ClientToStation) GetCovertAddress() string
func (*ClientToStation) GetDecoyListGeneration ¶
func (m *ClientToStation) GetDecoyListGeneration() uint32
func (*ClientToStation) GetFailedDecoys ¶
func (m *ClientToStation) GetFailedDecoys() []string
func (*ClientToStation) GetPadding ¶
func (m *ClientToStation) GetPadding() []byte
func (*ClientToStation) GetProtocolVersion ¶
func (m *ClientToStation) GetProtocolVersion() uint32
func (*ClientToStation) GetStateTransition ¶
func (m *ClientToStation) GetStateTransition() C2S_Transition
func (*ClientToStation) GetStats ¶
func (m *ClientToStation) GetStats() *SessionStats
func (*ClientToStation) GetUploadSync ¶
func (m *ClientToStation) GetUploadSync() uint64
func (*ClientToStation) ProtoMessage ¶
func (*ClientToStation) ProtoMessage()
func (*ClientToStation) Reset ¶
func (m *ClientToStation) Reset()
func (*ClientToStation) String ¶
func (m *ClientToStation) String() string
func (*ClientToStation) XXX_DiscardUnknown ¶
func (m *ClientToStation) XXX_DiscardUnknown()
func (*ClientToStation) XXX_Marshal ¶
func (m *ClientToStation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*ClientToStation) XXX_Merge ¶
func (m *ClientToStation) XXX_Merge(src proto.Message)
func (*ClientToStation) XXX_Size ¶
func (m *ClientToStation) XXX_Size() int
func (*ClientToStation) XXX_Unmarshal ¶
func (m *ClientToStation) XXX_Unmarshal(b []byte) error
type DecoyList ¶
type DecoyList struct { TlsDecoys []*TLSDecoySpec `protobuf:"bytes,1,rep,name=tls_decoys,json=tlsDecoys" json:"tls_decoys,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*DecoyList) Descriptor ¶
func (*DecoyList) GetTlsDecoys ¶
func (m *DecoyList) GetTlsDecoys() []*TLSDecoySpec
func (*DecoyList) ProtoMessage ¶
func (*DecoyList) ProtoMessage()
func (*DecoyList) XXX_DiscardUnknown ¶
func (m *DecoyList) XXX_DiscardUnknown()
func (*DecoyList) XXX_Marshal ¶
func (*DecoyList) XXX_Unmarshal ¶
type ErrorReasonS2C ¶
type ErrorReasonS2C int32
Should accompany all S2C_ERROR messages.
const ( ErrorReasonS2C_NO_ERROR ErrorReasonS2C = 0 ErrorReasonS2C_COVERT_STREAM ErrorReasonS2C = 1 ErrorReasonS2C_CLIENT_REPORTED ErrorReasonS2C = 2 ErrorReasonS2C_CLIENT_PROTOCOL ErrorReasonS2C = 3 ErrorReasonS2C_STATION_INTERNAL ErrorReasonS2C = 4 ErrorReasonS2C_DECOY_OVERLOAD ErrorReasonS2C = 5 ErrorReasonS2C_CLIENT_STREAM ErrorReasonS2C = 100 ErrorReasonS2C_CLIENT_TIMEOUT ErrorReasonS2C = 101 )
func (ErrorReasonS2C) Enum ¶
func (x ErrorReasonS2C) Enum() *ErrorReasonS2C
func (ErrorReasonS2C) EnumDescriptor ¶
func (ErrorReasonS2C) EnumDescriptor() ([]byte, []int)
func (ErrorReasonS2C) String ¶
func (x ErrorReasonS2C) String() string
func (*ErrorReasonS2C) UnmarshalJSON ¶
func (x *ErrorReasonS2C) UnmarshalJSON(data []byte) error
type PubKey ¶
type PubKey struct { // A public key, as used by the station. Key []byte `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` Type *KeyType `protobuf:"varint,2,opt,name=type,enum=tapdance.KeyType" json:"type,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*PubKey) Descriptor ¶
func (*PubKey) ProtoMessage ¶
func (*PubKey) ProtoMessage()
func (*PubKey) XXX_DiscardUnknown ¶
func (m *PubKey) XXX_DiscardUnknown()
func (*PubKey) XXX_Marshal ¶
func (*PubKey) XXX_Unmarshal ¶
type S2C_Transition ¶
type S2C_Transition int32
State transitions of the server
const ( S2C_Transition_S2C_NO_CHANGE S2C_Transition = 0 S2C_Transition_S2C_SESSION_INIT S2C_Transition = 1 S2C_Transition_S2C_SESSION_COVERT_INIT S2C_Transition = 11 S2C_Transition_S2C_CONFIRM_RECONNECT S2C_Transition = 2 S2C_Transition_S2C_SESSION_CLOSE S2C_Transition = 3 // TODO should probably also allow EXPECT_RECONNECT here, for DittoTap S2C_Transition_S2C_ERROR S2C_Transition = 255 )
func (S2C_Transition) Enum ¶
func (x S2C_Transition) Enum() *S2C_Transition
func (S2C_Transition) EnumDescriptor ¶
func (S2C_Transition) EnumDescriptor() ([]byte, []int)
func (S2C_Transition) String ¶
func (x S2C_Transition) String() string
func (*S2C_Transition) UnmarshalJSON ¶
func (x *S2C_Transition) UnmarshalJSON(data []byte) error
type SessionStats ¶
type SessionStats struct { FailedDecoysAmount *uint32 `protobuf:"varint,20,opt,name=failed_decoys_amount,json=failedDecoysAmount" json:"failed_decoys_amount,omitempty"` // Applicable to whole session: TotalTimeToConnect *uint32 `protobuf:"varint,31,opt,name=total_time_to_connect,json=totalTimeToConnect" json:"total_time_to_connect,omitempty"` // Last (i.e. successful) decoy: RttToStation *uint32 `protobuf:"varint,33,opt,name=rtt_to_station,json=rttToStation" json:"rtt_to_station,omitempty"` TlsToDecoy *uint32 `protobuf:"varint,38,opt,name=tls_to_decoy,json=tlsToDecoy" json:"tls_to_decoy,omitempty"` TcpToDecoy *uint32 `protobuf:"varint,39,opt,name=tcp_to_decoy,json=tcpToDecoy" json:"tcp_to_decoy,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*SessionStats) Descriptor ¶
func (*SessionStats) Descriptor() ([]byte, []int)
func (*SessionStats) GetFailedDecoysAmount ¶
func (m *SessionStats) GetFailedDecoysAmount() uint32
func (*SessionStats) GetRttToStation ¶
func (m *SessionStats) GetRttToStation() uint32
func (*SessionStats) GetTcpToDecoy ¶
func (m *SessionStats) GetTcpToDecoy() uint32
func (*SessionStats) GetTlsToDecoy ¶
func (m *SessionStats) GetTlsToDecoy() uint32
func (*SessionStats) GetTotalTimeToConnect ¶
func (m *SessionStats) GetTotalTimeToConnect() uint32
func (*SessionStats) ProtoMessage ¶
func (*SessionStats) ProtoMessage()
func (*SessionStats) Reset ¶
func (m *SessionStats) Reset()
func (*SessionStats) String ¶
func (m *SessionStats) String() string
func (*SessionStats) XXX_DiscardUnknown ¶
func (m *SessionStats) XXX_DiscardUnknown()
func (*SessionStats) XXX_Marshal ¶
func (m *SessionStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*SessionStats) XXX_Merge ¶
func (m *SessionStats) XXX_Merge(src proto.Message)
func (*SessionStats) XXX_Size ¶
func (m *SessionStats) XXX_Size() int
func (*SessionStats) XXX_Unmarshal ¶
func (m *SessionStats) XXX_Unmarshal(b []byte) error
type StationToClient ¶
type StationToClient struct { // Should accompany (at least) SESSION_INIT and CONFIRM_RECONNECT. ProtocolVersion *uint32 `protobuf:"varint,1,opt,name=protocol_version,json=protocolVersion" json:"protocol_version,omitempty"` // There might be a state transition. May be absent; absence should be // treated identically to NO_CHANGE. StateTransition *S2C_Transition `` /* 129-byte string literal not displayed */ // The station can send client config info piggybacked // on any message, as it sees fit ConfigInfo *ClientConf `protobuf:"bytes,3,opt,name=config_info,json=configInfo" json:"config_info,omitempty"` // If state_transition == S2C_ERROR, this field is the explanation. ErrReason *ErrorReasonS2C `protobuf:"varint,4,opt,name=err_reason,json=errReason,enum=tapdance.ErrorReasonS2C" json:"err_reason,omitempty"` // Signals client to stop connecting for following amount of seconds TmpBackoff *uint32 `protobuf:"varint,5,opt,name=tmp_backoff,json=tmpBackoff" json:"tmp_backoff,omitempty"` // Sent in SESSION_INIT, identifies the station that picked up StationId *string `protobuf:"bytes,6,opt,name=station_id,json=stationId" json:"station_id,omitempty"` // Random-sized junk to defeat packet size fingerprinting. Padding []byte `protobuf:"bytes,100,opt,name=padding" json:"padding,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*StationToClient) Descriptor ¶
func (*StationToClient) Descriptor() ([]byte, []int)
func (*StationToClient) GetConfigInfo ¶
func (m *StationToClient) GetConfigInfo() *ClientConf
func (*StationToClient) GetErrReason ¶
func (m *StationToClient) GetErrReason() ErrorReasonS2C
func (*StationToClient) GetPadding ¶
func (m *StationToClient) GetPadding() []byte
func (*StationToClient) GetProtocolVersion ¶
func (m *StationToClient) GetProtocolVersion() uint32
func (*StationToClient) GetStateTransition ¶
func (m *StationToClient) GetStateTransition() S2C_Transition
func (*StationToClient) GetStationId ¶
func (m *StationToClient) GetStationId() string
func (*StationToClient) GetTmpBackoff ¶
func (m *StationToClient) GetTmpBackoff() uint32
func (*StationToClient) ProtoMessage ¶
func (*StationToClient) ProtoMessage()
func (*StationToClient) Reset ¶
func (m *StationToClient) Reset()
func (*StationToClient) String ¶
func (m *StationToClient) String() string
func (*StationToClient) XXX_DiscardUnknown ¶
func (m *StationToClient) XXX_DiscardUnknown()
func (*StationToClient) XXX_Marshal ¶
func (m *StationToClient) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*StationToClient) XXX_Merge ¶
func (m *StationToClient) XXX_Merge(src proto.Message)
func (*StationToClient) XXX_Size ¶
func (m *StationToClient) XXX_Size() int
func (*StationToClient) XXX_Unmarshal ¶
func (m *StationToClient) XXX_Unmarshal(b []byte) error
type TLSDecoySpec ¶
type TLSDecoySpec struct { // The hostname/SNI to use for this host // // The hostname is the only required field, although other // fields are expected to be present in most cases. Hostname *string `protobuf:"bytes,1,opt,name=hostname" json:"hostname,omitempty"` // The 32-bit ipv4 address, in network byte order // // If the IPv4 address is absent, then it may be resolved via // DNS by the client, or the client may discard this decoy spec // if local DNS is untrusted, or the service may be multihomed. Ipv4Addr *uint32 `protobuf:"fixed32,2,opt,name=ipv4addr" json:"ipv4addr,omitempty"` // The 128-bit ipv6 address, in network byte order Ipv6Addr []byte `protobuf:"bytes,6,opt,name=ipv6addr" json:"ipv6addr,omitempty"` // The Tapdance station public key to use when contacting this // decoy // // If omitted, the default station public key (if any) is used. Pubkey *PubKey `protobuf:"bytes,3,opt,name=pubkey" json:"pubkey,omitempty"` // The maximum duration, in milliseconds, to maintain an open // connection to this decoy (because the decoy may close the // connection itself after this length of time) // // If omitted, a default of 30,000 milliseconds is assumed. Timeout *uint32 `protobuf:"varint,4,opt,name=timeout" json:"timeout,omitempty"` // The maximum TCP window size to attempt to use for this decoy. // // If omitted, a default of 15360 is assumed. // // TODO: the default is based on the current heuristic of only // using decoys that permit windows of 15KB or larger. If this // heuristic changes, then this default doesn't make sense. Tcpwin *uint32 `protobuf:"varint,5,opt,name=tcpwin" json:"tcpwin,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func InitTLSDecoySpec ¶
func InitTLSDecoySpec(ip string, sni string) *TLSDecoySpec
InitTLSDecoySpec creates TLSDecoySpec from ip address and server name. Other feilds, such as Pubkey, Timeout and Tcpwin are left unset.
func (*TLSDecoySpec) Descriptor ¶
func (*TLSDecoySpec) Descriptor() ([]byte, []int)
func (*TLSDecoySpec) GetHostname ¶
func (m *TLSDecoySpec) GetHostname() string
func (*TLSDecoySpec) GetIpAddrStr ¶
func (ds *TLSDecoySpec) GetIpAddrStr() string
GetIpAddrStr returns IP address of TLSDecoySpec as a string.
func (*TLSDecoySpec) GetIpv4Addr ¶
func (m *TLSDecoySpec) GetIpv4Addr() uint32
func (*TLSDecoySpec) GetIpv6Addr ¶
func (m *TLSDecoySpec) GetIpv6Addr() []byte
func (*TLSDecoySpec) GetPubkey ¶
func (m *TLSDecoySpec) GetPubkey() *PubKey
func (*TLSDecoySpec) GetTcpwin ¶
func (m *TLSDecoySpec) GetTcpwin() uint32
func (*TLSDecoySpec) GetTimeout ¶
func (m *TLSDecoySpec) GetTimeout() uint32
func (*TLSDecoySpec) ProtoMessage ¶
func (*TLSDecoySpec) ProtoMessage()
func (*TLSDecoySpec) Reset ¶
func (m *TLSDecoySpec) Reset()
func (*TLSDecoySpec) String ¶
func (m *TLSDecoySpec) String() string
func (*TLSDecoySpec) XXX_DiscardUnknown ¶
func (m *TLSDecoySpec) XXX_DiscardUnknown()
func (*TLSDecoySpec) XXX_Marshal ¶
func (m *TLSDecoySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*TLSDecoySpec) XXX_Merge ¶
func (m *TLSDecoySpec) XXX_Merge(src proto.Message)
func (*TLSDecoySpec) XXX_Size ¶
func (m *TLSDecoySpec) XXX_Size() int
func (*TLSDecoySpec) XXX_Unmarshal ¶
func (m *TLSDecoySpec) XXX_Unmarshal(b []byte) error
Click to show internal directories.
Click to hide internal directories.