tdproto

package
v0.0.0-...-ca457d7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 21, 2019 License: Apache-2.0 Imports: 5 Imported by: 6

README

Protobuf messages for TapDance

godoc

Rebuild

protoc --go_out=import_path=tdproto:. signalling.proto

Documentation

Index

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) Descriptor() ([]byte, []int)

func (*DecoyList) GetTlsDecoys

func (m *DecoyList) GetTlsDecoys() []*TLSDecoySpec

func (*DecoyList) ProtoMessage

func (*DecoyList) ProtoMessage()

func (*DecoyList) Reset

func (m *DecoyList) Reset()

func (*DecoyList) String

func (m *DecoyList) String() string

func (*DecoyList) XXX_DiscardUnknown

func (m *DecoyList) XXX_DiscardUnknown()

func (*DecoyList) XXX_Marshal

func (m *DecoyList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*DecoyList) XXX_Merge

func (m *DecoyList) XXX_Merge(src proto.Message)

func (*DecoyList) XXX_Size

func (m *DecoyList) XXX_Size() int

func (*DecoyList) XXX_Unmarshal

func (m *DecoyList) XXX_Unmarshal(b []byte) error

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 KeyType

type KeyType int32
const (
	KeyType_AES_GCM_128 KeyType = 90
	KeyType_AES_GCM_256 KeyType = 91
)

func (KeyType) Enum

func (x KeyType) Enum() *KeyType

func (KeyType) EnumDescriptor

func (KeyType) EnumDescriptor() ([]byte, []int)

func (KeyType) String

func (x KeyType) String() string

func (*KeyType) UnmarshalJSON

func (x *KeyType) 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) Descriptor() ([]byte, []int)

func (*PubKey) GetKey

func (m *PubKey) GetKey() []byte

func (*PubKey) GetType

func (m *PubKey) GetType() KeyType

func (*PubKey) ProtoMessage

func (*PubKey) ProtoMessage()

func (*PubKey) Reset

func (m *PubKey) Reset()

func (*PubKey) String

func (m *PubKey) String() string

func (*PubKey) XXX_DiscardUnknown

func (m *PubKey) XXX_DiscardUnknown()

func (*PubKey) XXX_Marshal

func (m *PubKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PubKey) XXX_Merge

func (m *PubKey) XXX_Merge(src proto.Message)

func (*PubKey) XXX_Size

func (m *PubKey) XXX_Size() int

func (*PubKey) XXX_Unmarshal

func (m *PubKey) XXX_Unmarshal(b []byte) error

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL