1// Code generated by protoc-gen-go. DO NOT EDIT. 2// source: signalling.proto 3 4package tdproto 5 6import ( 7 fmt "fmt" 8 proto "github.com/ooni/psiphon/oopsi/github.com/golang/protobuf/proto" 9 math "math" 10) 11 12// Reference imports to suppress errors if they are not otherwise used. 13var _ = proto.Marshal 14var _ = fmt.Errorf 15var _ = math.Inf 16 17// This is a compile-time assertion to ensure that this generated file 18// is compatible with the proto package it is being compiled against. 19// A compilation error at this line likely means your copy of the 20// proto package needs to be updated. 21const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package 22 23type KeyType int32 24 25const ( 26 KeyType_AES_GCM_128 KeyType = 90 27 KeyType_AES_GCM_256 KeyType = 91 28) 29 30var KeyType_name = map[int32]string{ 31 90: "AES_GCM_128", 32 91: "AES_GCM_256", 33} 34 35var KeyType_value = map[string]int32{ 36 "AES_GCM_128": 90, 37 "AES_GCM_256": 91, 38} 39 40func (x KeyType) Enum() *KeyType { 41 p := new(KeyType) 42 *p = x 43 return p 44} 45 46func (x KeyType) String() string { 47 return proto.EnumName(KeyType_name, int32(x)) 48} 49 50func (x *KeyType) UnmarshalJSON(data []byte) error { 51 value, err := proto.UnmarshalJSONEnum(KeyType_value, data, "KeyType") 52 if err != nil { 53 return err 54 } 55 *x = KeyType(value) 56 return nil 57} 58 59func (KeyType) EnumDescriptor() ([]byte, []int) { 60 return fileDescriptor_39f66308029891ad, []int{0} 61} 62 63// State transitions of the client 64type C2S_Transition int32 65 66const ( 67 C2S_Transition_C2S_NO_CHANGE C2S_Transition = 0 68 C2S_Transition_C2S_SESSION_INIT C2S_Transition = 1 69 C2S_Transition_C2S_SESSION_COVERT_INIT C2S_Transition = 11 70 C2S_Transition_C2S_EXPECT_RECONNECT C2S_Transition = 2 71 C2S_Transition_C2S_SESSION_CLOSE C2S_Transition = 3 72 C2S_Transition_C2S_YIELD_UPLOAD C2S_Transition = 4 73 C2S_Transition_C2S_ACQUIRE_UPLOAD C2S_Transition = 5 74 C2S_Transition_C2S_EXPECT_UPLOADONLY_RECONN C2S_Transition = 6 75 C2S_Transition_C2S_ERROR C2S_Transition = 255 76) 77 78var C2S_Transition_name = map[int32]string{ 79 0: "C2S_NO_CHANGE", 80 1: "C2S_SESSION_INIT", 81 11: "C2S_SESSION_COVERT_INIT", 82 2: "C2S_EXPECT_RECONNECT", 83 3: "C2S_SESSION_CLOSE", 84 4: "C2S_YIELD_UPLOAD", 85 5: "C2S_ACQUIRE_UPLOAD", 86 6: "C2S_EXPECT_UPLOADONLY_RECONN", 87 255: "C2S_ERROR", 88} 89 90var C2S_Transition_value = map[string]int32{ 91 "C2S_NO_CHANGE": 0, 92 "C2S_SESSION_INIT": 1, 93 "C2S_SESSION_COVERT_INIT": 11, 94 "C2S_EXPECT_RECONNECT": 2, 95 "C2S_SESSION_CLOSE": 3, 96 "C2S_YIELD_UPLOAD": 4, 97 "C2S_ACQUIRE_UPLOAD": 5, 98 "C2S_EXPECT_UPLOADONLY_RECONN": 6, 99 "C2S_ERROR": 255, 100} 101 102func (x C2S_Transition) Enum() *C2S_Transition { 103 p := new(C2S_Transition) 104 *p = x 105 return p 106} 107 108func (x C2S_Transition) String() string { 109 return proto.EnumName(C2S_Transition_name, int32(x)) 110} 111 112func (x *C2S_Transition) UnmarshalJSON(data []byte) error { 113 value, err := proto.UnmarshalJSONEnum(C2S_Transition_value, data, "C2S_Transition") 114 if err != nil { 115 return err 116 } 117 *x = C2S_Transition(value) 118 return nil 119} 120 121func (C2S_Transition) EnumDescriptor() ([]byte, []int) { 122 return fileDescriptor_39f66308029891ad, []int{1} 123} 124 125// State transitions of the server 126type S2C_Transition int32 127 128const ( 129 S2C_Transition_S2C_NO_CHANGE S2C_Transition = 0 130 S2C_Transition_S2C_SESSION_INIT S2C_Transition = 1 131 S2C_Transition_S2C_SESSION_COVERT_INIT S2C_Transition = 11 132 S2C_Transition_S2C_CONFIRM_RECONNECT S2C_Transition = 2 133 S2C_Transition_S2C_SESSION_CLOSE S2C_Transition = 3 134 // TODO should probably also allow EXPECT_RECONNECT here, for DittoTap 135 S2C_Transition_S2C_ERROR S2C_Transition = 255 136) 137 138var S2C_Transition_name = map[int32]string{ 139 0: "S2C_NO_CHANGE", 140 1: "S2C_SESSION_INIT", 141 11: "S2C_SESSION_COVERT_INIT", 142 2: "S2C_CONFIRM_RECONNECT", 143 3: "S2C_SESSION_CLOSE", 144 255: "S2C_ERROR", 145} 146 147var S2C_Transition_value = map[string]int32{ 148 "S2C_NO_CHANGE": 0, 149 "S2C_SESSION_INIT": 1, 150 "S2C_SESSION_COVERT_INIT": 11, 151 "S2C_CONFIRM_RECONNECT": 2, 152 "S2C_SESSION_CLOSE": 3, 153 "S2C_ERROR": 255, 154} 155 156func (x S2C_Transition) Enum() *S2C_Transition { 157 p := new(S2C_Transition) 158 *p = x 159 return p 160} 161 162func (x S2C_Transition) String() string { 163 return proto.EnumName(S2C_Transition_name, int32(x)) 164} 165 166func (x *S2C_Transition) UnmarshalJSON(data []byte) error { 167 value, err := proto.UnmarshalJSONEnum(S2C_Transition_value, data, "S2C_Transition") 168 if err != nil { 169 return err 170 } 171 *x = S2C_Transition(value) 172 return nil 173} 174 175func (S2C_Transition) EnumDescriptor() ([]byte, []int) { 176 return fileDescriptor_39f66308029891ad, []int{2} 177} 178 179// Should accompany all S2C_ERROR messages. 180type ErrorReasonS2C int32 181 182const ( 183 ErrorReasonS2C_NO_ERROR ErrorReasonS2C = 0 184 ErrorReasonS2C_COVERT_STREAM ErrorReasonS2C = 1 185 ErrorReasonS2C_CLIENT_REPORTED ErrorReasonS2C = 2 186 ErrorReasonS2C_CLIENT_PROTOCOL ErrorReasonS2C = 3 187 ErrorReasonS2C_STATION_INTERNAL ErrorReasonS2C = 4 188 ErrorReasonS2C_DECOY_OVERLOAD ErrorReasonS2C = 5 189 ErrorReasonS2C_CLIENT_STREAM ErrorReasonS2C = 100 190 ErrorReasonS2C_CLIENT_TIMEOUT ErrorReasonS2C = 101 191) 192 193var ErrorReasonS2C_name = map[int32]string{ 194 0: "NO_ERROR", 195 1: "COVERT_STREAM", 196 2: "CLIENT_REPORTED", 197 3: "CLIENT_PROTOCOL", 198 4: "STATION_INTERNAL", 199 5: "DECOY_OVERLOAD", 200 100: "CLIENT_STREAM", 201 101: "CLIENT_TIMEOUT", 202} 203 204var ErrorReasonS2C_value = map[string]int32{ 205 "NO_ERROR": 0, 206 "COVERT_STREAM": 1, 207 "CLIENT_REPORTED": 2, 208 "CLIENT_PROTOCOL": 3, 209 "STATION_INTERNAL": 4, 210 "DECOY_OVERLOAD": 5, 211 "CLIENT_STREAM": 100, 212 "CLIENT_TIMEOUT": 101, 213} 214 215func (x ErrorReasonS2C) Enum() *ErrorReasonS2C { 216 p := new(ErrorReasonS2C) 217 *p = x 218 return p 219} 220 221func (x ErrorReasonS2C) String() string { 222 return proto.EnumName(ErrorReasonS2C_name, int32(x)) 223} 224 225func (x *ErrorReasonS2C) UnmarshalJSON(data []byte) error { 226 value, err := proto.UnmarshalJSONEnum(ErrorReasonS2C_value, data, "ErrorReasonS2C") 227 if err != nil { 228 return err 229 } 230 *x = ErrorReasonS2C(value) 231 return nil 232} 233 234func (ErrorReasonS2C) EnumDescriptor() ([]byte, []int) { 235 return fileDescriptor_39f66308029891ad, []int{3} 236} 237 238type TransportType int32 239 240const ( 241 TransportType_Null TransportType = 0 242 TransportType_Min TransportType = 1 243 TransportType_Obfs4 TransportType = 2 244) 245 246var TransportType_name = map[int32]string{ 247 0: "Null", 248 1: "Min", 249 2: "Obfs4", 250} 251 252var TransportType_value = map[string]int32{ 253 "Null": 0, 254 "Min": 1, 255 "Obfs4": 2, 256} 257 258func (x TransportType) Enum() *TransportType { 259 p := new(TransportType) 260 *p = x 261 return p 262} 263 264func (x TransportType) String() string { 265 return proto.EnumName(TransportType_name, int32(x)) 266} 267 268func (x *TransportType) UnmarshalJSON(data []byte) error { 269 value, err := proto.UnmarshalJSONEnum(TransportType_value, data, "TransportType") 270 if err != nil { 271 return err 272 } 273 *x = TransportType(value) 274 return nil 275} 276 277func (TransportType) EnumDescriptor() ([]byte, []int) { 278 return fileDescriptor_39f66308029891ad, []int{4} 279} 280 281type RegistrationSource int32 282 283const ( 284 RegistrationSource_Unspecified RegistrationSource = 0 285 RegistrationSource_Detector RegistrationSource = 1 286 RegistrationSource_API RegistrationSource = 2 287 RegistrationSource_DetectorPrescan RegistrationSource = 3 288) 289 290var RegistrationSource_name = map[int32]string{ 291 0: "Unspecified", 292 1: "Detector", 293 2: "API", 294 3: "DetectorPrescan", 295} 296 297var RegistrationSource_value = map[string]int32{ 298 "Unspecified": 0, 299 "Detector": 1, 300 "API": 2, 301 "DetectorPrescan": 3, 302} 303 304func (x RegistrationSource) Enum() *RegistrationSource { 305 p := new(RegistrationSource) 306 *p = x 307 return p 308} 309 310func (x RegistrationSource) String() string { 311 return proto.EnumName(RegistrationSource_name, int32(x)) 312} 313 314func (x *RegistrationSource) UnmarshalJSON(data []byte) error { 315 value, err := proto.UnmarshalJSONEnum(RegistrationSource_value, data, "RegistrationSource") 316 if err != nil { 317 return err 318 } 319 *x = RegistrationSource(value) 320 return nil 321} 322 323func (RegistrationSource) EnumDescriptor() ([]byte, []int) { 324 return fileDescriptor_39f66308029891ad, []int{5} 325} 326 327type PubKey struct { 328 // A public key, as used by the station. 329 Key []byte `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` 330 Type *KeyType `protobuf:"varint,2,opt,name=type,enum=tapdance.KeyType" json:"type,omitempty"` 331 XXX_NoUnkeyedLiteral struct{} `json:"-"` 332 XXX_unrecognized []byte `json:"-"` 333 XXX_sizecache int32 `json:"-"` 334} 335 336func (m *PubKey) Reset() { *m = PubKey{} } 337func (m *PubKey) String() string { return proto.CompactTextString(m) } 338func (*PubKey) ProtoMessage() {} 339func (*PubKey) Descriptor() ([]byte, []int) { 340 return fileDescriptor_39f66308029891ad, []int{0} 341} 342 343func (m *PubKey) XXX_Unmarshal(b []byte) error { 344 return xxx_messageInfo_PubKey.Unmarshal(m, b) 345} 346func (m *PubKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 347 return xxx_messageInfo_PubKey.Marshal(b, m, deterministic) 348} 349func (m *PubKey) XXX_Merge(src proto.Message) { 350 xxx_messageInfo_PubKey.Merge(m, src) 351} 352func (m *PubKey) XXX_Size() int { 353 return xxx_messageInfo_PubKey.Size(m) 354} 355func (m *PubKey) XXX_DiscardUnknown() { 356 xxx_messageInfo_PubKey.DiscardUnknown(m) 357} 358 359var xxx_messageInfo_PubKey proto.InternalMessageInfo 360 361func (m *PubKey) GetKey() []byte { 362 if m != nil { 363 return m.Key 364 } 365 return nil 366} 367 368func (m *PubKey) GetType() KeyType { 369 if m != nil && m.Type != nil { 370 return *m.Type 371 } 372 return KeyType_AES_GCM_128 373} 374 375type TLSDecoySpec struct { 376 // The hostname/SNI to use for this host 377 // 378 // The hostname is the only required field, although other 379 // fields are expected to be present in most cases. 380 Hostname *string `protobuf:"bytes,1,opt,name=hostname" json:"hostname,omitempty"` 381 // The 32-bit ipv4 address, in network byte order 382 // 383 // If the IPv4 address is absent, then it may be resolved via 384 // DNS by the client, or the client may discard this decoy spec 385 // if local DNS is untrusted, or the service may be multihomed. 386 Ipv4Addr *uint32 `protobuf:"fixed32,2,opt,name=ipv4addr" json:"ipv4addr,omitempty"` 387 // The 128-bit ipv6 address, in network byte order 388 Ipv6Addr []byte `protobuf:"bytes,6,opt,name=ipv6addr" json:"ipv6addr,omitempty"` 389 // The Tapdance station public key to use when contacting this 390 // decoy 391 // 392 // If omitted, the default station public key (if any) is used. 393 Pubkey *PubKey `protobuf:"bytes,3,opt,name=pubkey" json:"pubkey,omitempty"` 394 // The maximum duration, in milliseconds, to maintain an open 395 // connection to this decoy (because the decoy may close the 396 // connection itself after this length of time) 397 // 398 // If omitted, a default of 30,000 milliseconds is assumed. 399 Timeout *uint32 `protobuf:"varint,4,opt,name=timeout" json:"timeout,omitempty"` 400 // The maximum TCP window size to attempt to use for this decoy. 401 // 402 // If omitted, a default of 15360 is assumed. 403 // 404 // TODO: the default is based on the current heuristic of only 405 // using decoys that permit windows of 15KB or larger. If this 406 // heuristic changes, then this default doesn't make sense. 407 Tcpwin *uint32 `protobuf:"varint,5,opt,name=tcpwin" json:"tcpwin,omitempty"` 408 XXX_NoUnkeyedLiteral struct{} `json:"-"` 409 XXX_unrecognized []byte `json:"-"` 410 XXX_sizecache int32 `json:"-"` 411} 412 413func (m *TLSDecoySpec) Reset() { *m = TLSDecoySpec{} } 414func (m *TLSDecoySpec) String() string { return proto.CompactTextString(m) } 415func (*TLSDecoySpec) ProtoMessage() {} 416func (*TLSDecoySpec) Descriptor() ([]byte, []int) { 417 return fileDescriptor_39f66308029891ad, []int{1} 418} 419 420func (m *TLSDecoySpec) XXX_Unmarshal(b []byte) error { 421 return xxx_messageInfo_TLSDecoySpec.Unmarshal(m, b) 422} 423func (m *TLSDecoySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 424 return xxx_messageInfo_TLSDecoySpec.Marshal(b, m, deterministic) 425} 426func (m *TLSDecoySpec) XXX_Merge(src proto.Message) { 427 xxx_messageInfo_TLSDecoySpec.Merge(m, src) 428} 429func (m *TLSDecoySpec) XXX_Size() int { 430 return xxx_messageInfo_TLSDecoySpec.Size(m) 431} 432func (m *TLSDecoySpec) XXX_DiscardUnknown() { 433 xxx_messageInfo_TLSDecoySpec.DiscardUnknown(m) 434} 435 436var xxx_messageInfo_TLSDecoySpec proto.InternalMessageInfo 437 438func (m *TLSDecoySpec) GetHostname() string { 439 if m != nil && m.Hostname != nil { 440 return *m.Hostname 441 } 442 return "" 443} 444 445func (m *TLSDecoySpec) GetIpv4Addr() uint32 { 446 if m != nil && m.Ipv4Addr != nil { 447 return *m.Ipv4Addr 448 } 449 return 0 450} 451 452func (m *TLSDecoySpec) GetIpv6Addr() []byte { 453 if m != nil { 454 return m.Ipv6Addr 455 } 456 return nil 457} 458 459func (m *TLSDecoySpec) GetPubkey() *PubKey { 460 if m != nil { 461 return m.Pubkey 462 } 463 return nil 464} 465 466func (m *TLSDecoySpec) GetTimeout() uint32 { 467 if m != nil && m.Timeout != nil { 468 return *m.Timeout 469 } 470 return 0 471} 472 473func (m *TLSDecoySpec) GetTcpwin() uint32 { 474 if m != nil && m.Tcpwin != nil { 475 return *m.Tcpwin 476 } 477 return 0 478} 479 480type ClientConf struct { 481 DecoyList *DecoyList `protobuf:"bytes,1,opt,name=decoy_list,json=decoyList" json:"decoy_list,omitempty"` 482 Generation *uint32 `protobuf:"varint,2,opt,name=generation" json:"generation,omitempty"` 483 DefaultPubkey *PubKey `protobuf:"bytes,3,opt,name=default_pubkey,json=defaultPubkey" json:"default_pubkey,omitempty"` 484 PhantomSubnetsList *PhantomSubnetsList `protobuf:"bytes,4,opt,name=phantom_subnets_list,json=phantomSubnetsList" json:"phantom_subnets_list,omitempty"` 485 ConjurePubkey *PubKey `protobuf:"bytes,5,opt,name=conjure_pubkey,json=conjurePubkey" json:"conjure_pubkey,omitempty"` 486 XXX_NoUnkeyedLiteral struct{} `json:"-"` 487 XXX_unrecognized []byte `json:"-"` 488 XXX_sizecache int32 `json:"-"` 489} 490 491func (m *ClientConf) Reset() { *m = ClientConf{} } 492func (m *ClientConf) String() string { return proto.CompactTextString(m) } 493func (*ClientConf) ProtoMessage() {} 494func (*ClientConf) Descriptor() ([]byte, []int) { 495 return fileDescriptor_39f66308029891ad, []int{2} 496} 497 498func (m *ClientConf) XXX_Unmarshal(b []byte) error { 499 return xxx_messageInfo_ClientConf.Unmarshal(m, b) 500} 501func (m *ClientConf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 502 return xxx_messageInfo_ClientConf.Marshal(b, m, deterministic) 503} 504func (m *ClientConf) XXX_Merge(src proto.Message) { 505 xxx_messageInfo_ClientConf.Merge(m, src) 506} 507func (m *ClientConf) XXX_Size() int { 508 return xxx_messageInfo_ClientConf.Size(m) 509} 510func (m *ClientConf) XXX_DiscardUnknown() { 511 xxx_messageInfo_ClientConf.DiscardUnknown(m) 512} 513 514var xxx_messageInfo_ClientConf proto.InternalMessageInfo 515 516func (m *ClientConf) GetDecoyList() *DecoyList { 517 if m != nil { 518 return m.DecoyList 519 } 520 return nil 521} 522 523func (m *ClientConf) GetGeneration() uint32 { 524 if m != nil && m.Generation != nil { 525 return *m.Generation 526 } 527 return 0 528} 529 530func (m *ClientConf) GetDefaultPubkey() *PubKey { 531 if m != nil { 532 return m.DefaultPubkey 533 } 534 return nil 535} 536 537func (m *ClientConf) GetPhantomSubnetsList() *PhantomSubnetsList { 538 if m != nil { 539 return m.PhantomSubnetsList 540 } 541 return nil 542} 543 544func (m *ClientConf) GetConjurePubkey() *PubKey { 545 if m != nil { 546 return m.ConjurePubkey 547 } 548 return nil 549} 550 551type DecoyList struct { 552 TlsDecoys []*TLSDecoySpec `protobuf:"bytes,1,rep,name=tls_decoys,json=tlsDecoys" json:"tls_decoys,omitempty"` 553 XXX_NoUnkeyedLiteral struct{} `json:"-"` 554 XXX_unrecognized []byte `json:"-"` 555 XXX_sizecache int32 `json:"-"` 556} 557 558func (m *DecoyList) Reset() { *m = DecoyList{} } 559func (m *DecoyList) String() string { return proto.CompactTextString(m) } 560func (*DecoyList) ProtoMessage() {} 561func (*DecoyList) Descriptor() ([]byte, []int) { 562 return fileDescriptor_39f66308029891ad, []int{3} 563} 564 565func (m *DecoyList) XXX_Unmarshal(b []byte) error { 566 return xxx_messageInfo_DecoyList.Unmarshal(m, b) 567} 568func (m *DecoyList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 569 return xxx_messageInfo_DecoyList.Marshal(b, m, deterministic) 570} 571func (m *DecoyList) XXX_Merge(src proto.Message) { 572 xxx_messageInfo_DecoyList.Merge(m, src) 573} 574func (m *DecoyList) XXX_Size() int { 575 return xxx_messageInfo_DecoyList.Size(m) 576} 577func (m *DecoyList) XXX_DiscardUnknown() { 578 xxx_messageInfo_DecoyList.DiscardUnknown(m) 579} 580 581var xxx_messageInfo_DecoyList proto.InternalMessageInfo 582 583func (m *DecoyList) GetTlsDecoys() []*TLSDecoySpec { 584 if m != nil { 585 return m.TlsDecoys 586 } 587 return nil 588} 589 590type PhantomSubnetsList struct { 591 WeightedSubnets []*PhantomSubnets `protobuf:"bytes,1,rep,name=weighted_subnets,json=weightedSubnets" json:"weighted_subnets,omitempty"` 592 XXX_NoUnkeyedLiteral struct{} `json:"-"` 593 XXX_unrecognized []byte `json:"-"` 594 XXX_sizecache int32 `json:"-"` 595} 596 597func (m *PhantomSubnetsList) Reset() { *m = PhantomSubnetsList{} } 598func (m *PhantomSubnetsList) String() string { return proto.CompactTextString(m) } 599func (*PhantomSubnetsList) ProtoMessage() {} 600func (*PhantomSubnetsList) Descriptor() ([]byte, []int) { 601 return fileDescriptor_39f66308029891ad, []int{4} 602} 603 604func (m *PhantomSubnetsList) XXX_Unmarshal(b []byte) error { 605 return xxx_messageInfo_PhantomSubnetsList.Unmarshal(m, b) 606} 607func (m *PhantomSubnetsList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 608 return xxx_messageInfo_PhantomSubnetsList.Marshal(b, m, deterministic) 609} 610func (m *PhantomSubnetsList) XXX_Merge(src proto.Message) { 611 xxx_messageInfo_PhantomSubnetsList.Merge(m, src) 612} 613func (m *PhantomSubnetsList) XXX_Size() int { 614 return xxx_messageInfo_PhantomSubnetsList.Size(m) 615} 616func (m *PhantomSubnetsList) XXX_DiscardUnknown() { 617 xxx_messageInfo_PhantomSubnetsList.DiscardUnknown(m) 618} 619 620var xxx_messageInfo_PhantomSubnetsList proto.InternalMessageInfo 621 622func (m *PhantomSubnetsList) GetWeightedSubnets() []*PhantomSubnets { 623 if m != nil { 624 return m.WeightedSubnets 625 } 626 return nil 627} 628 629type PhantomSubnets struct { 630 Weight *uint32 `protobuf:"varint,1,opt,name=weight" json:"weight,omitempty"` 631 Subnets []string `protobuf:"bytes,2,rep,name=subnets" json:"subnets,omitempty"` 632 XXX_NoUnkeyedLiteral struct{} `json:"-"` 633 XXX_unrecognized []byte `json:"-"` 634 XXX_sizecache int32 `json:"-"` 635} 636 637func (m *PhantomSubnets) Reset() { *m = PhantomSubnets{} } 638func (m *PhantomSubnets) String() string { return proto.CompactTextString(m) } 639func (*PhantomSubnets) ProtoMessage() {} 640func (*PhantomSubnets) Descriptor() ([]byte, []int) { 641 return fileDescriptor_39f66308029891ad, []int{5} 642} 643 644func (m *PhantomSubnets) XXX_Unmarshal(b []byte) error { 645 return xxx_messageInfo_PhantomSubnets.Unmarshal(m, b) 646} 647func (m *PhantomSubnets) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 648 return xxx_messageInfo_PhantomSubnets.Marshal(b, m, deterministic) 649} 650func (m *PhantomSubnets) XXX_Merge(src proto.Message) { 651 xxx_messageInfo_PhantomSubnets.Merge(m, src) 652} 653func (m *PhantomSubnets) XXX_Size() int { 654 return xxx_messageInfo_PhantomSubnets.Size(m) 655} 656func (m *PhantomSubnets) XXX_DiscardUnknown() { 657 xxx_messageInfo_PhantomSubnets.DiscardUnknown(m) 658} 659 660var xxx_messageInfo_PhantomSubnets proto.InternalMessageInfo 661 662func (m *PhantomSubnets) GetWeight() uint32 { 663 if m != nil && m.Weight != nil { 664 return *m.Weight 665 } 666 return 0 667} 668 669func (m *PhantomSubnets) GetSubnets() []string { 670 if m != nil { 671 return m.Subnets 672 } 673 return nil 674} 675 676type StationToClient struct { 677 // Should accompany (at least) SESSION_INIT and CONFIRM_RECONNECT. 678 ProtocolVersion *uint32 `protobuf:"varint,1,opt,name=protocol_version,json=protocolVersion" json:"protocol_version,omitempty"` 679 // There might be a state transition. May be absent; absence should be 680 // treated identically to NO_CHANGE. 681 StateTransition *S2C_Transition `protobuf:"varint,2,opt,name=state_transition,json=stateTransition,enum=tapdance.S2C_Transition" json:"state_transition,omitempty"` 682 // The station can send client config info piggybacked 683 // on any message, as it sees fit 684 ConfigInfo *ClientConf `protobuf:"bytes,3,opt,name=config_info,json=configInfo" json:"config_info,omitempty"` 685 // If state_transition == S2C_ERROR, this field is the explanation. 686 ErrReason *ErrorReasonS2C `protobuf:"varint,4,opt,name=err_reason,json=errReason,enum=tapdance.ErrorReasonS2C" json:"err_reason,omitempty"` 687 // Signals client to stop connecting for following amount of seconds 688 TmpBackoff *uint32 `protobuf:"varint,5,opt,name=tmp_backoff,json=tmpBackoff" json:"tmp_backoff,omitempty"` 689 // Sent in SESSION_INIT, identifies the station that picked up 690 StationId *string `protobuf:"bytes,6,opt,name=station_id,json=stationId" json:"station_id,omitempty"` 691 // Random-sized junk to defeat packet size fingerprinting. 692 Padding []byte `protobuf:"bytes,100,opt,name=padding" json:"padding,omitempty"` 693 XXX_NoUnkeyedLiteral struct{} `json:"-"` 694 XXX_unrecognized []byte `json:"-"` 695 XXX_sizecache int32 `json:"-"` 696} 697 698func (m *StationToClient) Reset() { *m = StationToClient{} } 699func (m *StationToClient) String() string { return proto.CompactTextString(m) } 700func (*StationToClient) ProtoMessage() {} 701func (*StationToClient) Descriptor() ([]byte, []int) { 702 return fileDescriptor_39f66308029891ad, []int{6} 703} 704 705func (m *StationToClient) XXX_Unmarshal(b []byte) error { 706 return xxx_messageInfo_StationToClient.Unmarshal(m, b) 707} 708func (m *StationToClient) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 709 return xxx_messageInfo_StationToClient.Marshal(b, m, deterministic) 710} 711func (m *StationToClient) XXX_Merge(src proto.Message) { 712 xxx_messageInfo_StationToClient.Merge(m, src) 713} 714func (m *StationToClient) XXX_Size() int { 715 return xxx_messageInfo_StationToClient.Size(m) 716} 717func (m *StationToClient) XXX_DiscardUnknown() { 718 xxx_messageInfo_StationToClient.DiscardUnknown(m) 719} 720 721var xxx_messageInfo_StationToClient proto.InternalMessageInfo 722 723func (m *StationToClient) GetProtocolVersion() uint32 { 724 if m != nil && m.ProtocolVersion != nil { 725 return *m.ProtocolVersion 726 } 727 return 0 728} 729 730func (m *StationToClient) GetStateTransition() S2C_Transition { 731 if m != nil && m.StateTransition != nil { 732 return *m.StateTransition 733 } 734 return S2C_Transition_S2C_NO_CHANGE 735} 736 737func (m *StationToClient) GetConfigInfo() *ClientConf { 738 if m != nil { 739 return m.ConfigInfo 740 } 741 return nil 742} 743 744func (m *StationToClient) GetErrReason() ErrorReasonS2C { 745 if m != nil && m.ErrReason != nil { 746 return *m.ErrReason 747 } 748 return ErrorReasonS2C_NO_ERROR 749} 750 751func (m *StationToClient) GetTmpBackoff() uint32 { 752 if m != nil && m.TmpBackoff != nil { 753 return *m.TmpBackoff 754 } 755 return 0 756} 757 758func (m *StationToClient) GetStationId() string { 759 if m != nil && m.StationId != nil { 760 return *m.StationId 761 } 762 return "" 763} 764 765func (m *StationToClient) GetPadding() []byte { 766 if m != nil { 767 return m.Padding 768 } 769 return nil 770} 771 772type RegistrationFlags struct { 773 UploadOnly *bool `protobuf:"varint,1,opt,name=upload_only,json=uploadOnly" json:"upload_only,omitempty"` 774 DarkDecoy *bool `protobuf:"varint,2,opt,name=dark_decoy,json=darkDecoy" json:"dark_decoy,omitempty"` 775 ProxyHeader *bool `protobuf:"varint,3,opt,name=proxy_header,json=proxyHeader" json:"proxy_header,omitempty"` 776 Use_TIL *bool `protobuf:"varint,4,opt,name=use_TIL,json=useTIL" json:"use_TIL,omitempty"` 777 Prescanned *bool `protobuf:"varint,5,opt,name=prescanned" json:"prescanned,omitempty"` 778 XXX_NoUnkeyedLiteral struct{} `json:"-"` 779 XXX_unrecognized []byte `json:"-"` 780 XXX_sizecache int32 `json:"-"` 781} 782 783func (m *RegistrationFlags) Reset() { *m = RegistrationFlags{} } 784func (m *RegistrationFlags) String() string { return proto.CompactTextString(m) } 785func (*RegistrationFlags) ProtoMessage() {} 786func (*RegistrationFlags) Descriptor() ([]byte, []int) { 787 return fileDescriptor_39f66308029891ad, []int{7} 788} 789 790func (m *RegistrationFlags) XXX_Unmarshal(b []byte) error { 791 return xxx_messageInfo_RegistrationFlags.Unmarshal(m, b) 792} 793func (m *RegistrationFlags) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 794 return xxx_messageInfo_RegistrationFlags.Marshal(b, m, deterministic) 795} 796func (m *RegistrationFlags) XXX_Merge(src proto.Message) { 797 xxx_messageInfo_RegistrationFlags.Merge(m, src) 798} 799func (m *RegistrationFlags) XXX_Size() int { 800 return xxx_messageInfo_RegistrationFlags.Size(m) 801} 802func (m *RegistrationFlags) XXX_DiscardUnknown() { 803 xxx_messageInfo_RegistrationFlags.DiscardUnknown(m) 804} 805 806var xxx_messageInfo_RegistrationFlags proto.InternalMessageInfo 807 808func (m *RegistrationFlags) GetUploadOnly() bool { 809 if m != nil && m.UploadOnly != nil { 810 return *m.UploadOnly 811 } 812 return false 813} 814 815func (m *RegistrationFlags) GetDarkDecoy() bool { 816 if m != nil && m.DarkDecoy != nil { 817 return *m.DarkDecoy 818 } 819 return false 820} 821 822func (m *RegistrationFlags) GetProxyHeader() bool { 823 if m != nil && m.ProxyHeader != nil { 824 return *m.ProxyHeader 825 } 826 return false 827} 828 829func (m *RegistrationFlags) GetUse_TIL() bool { 830 if m != nil && m.Use_TIL != nil { 831 return *m.Use_TIL 832 } 833 return false 834} 835 836func (m *RegistrationFlags) GetPrescanned() bool { 837 if m != nil && m.Prescanned != nil { 838 return *m.Prescanned 839 } 840 return false 841} 842 843type ClientToStation struct { 844 ProtocolVersion *uint32 `protobuf:"varint,1,opt,name=protocol_version,json=protocolVersion" json:"protocol_version,omitempty"` 845 // The client reports its decoy list's version number here, which the 846 // station can use to decide whether to send an updated one. The station 847 // should always send a list if this field is set to 0. 848 DecoyListGeneration *uint32 `protobuf:"varint,2,opt,name=decoy_list_generation,json=decoyListGeneration" json:"decoy_list_generation,omitempty"` 849 StateTransition *C2S_Transition `protobuf:"varint,3,opt,name=state_transition,json=stateTransition,enum=tapdance.C2S_Transition" json:"state_transition,omitempty"` 850 // The position in the overall session's upload sequence where the current 851 // YIELD=>ACQUIRE switchover is happening. 852 UploadSync *uint64 `protobuf:"varint,4,opt,name=upload_sync,json=uploadSync" json:"upload_sync,omitempty"` 853 // List of decoys that client have unsuccessfully tried in current session. 854 // Could be sent in chunks 855 FailedDecoys []string `protobuf:"bytes,10,rep,name=failed_decoys,json=failedDecoys" json:"failed_decoys,omitempty"` 856 Stats *SessionStats `protobuf:"bytes,11,opt,name=stats" json:"stats,omitempty"` 857 // NullTransport, MinTransport, Obfs4Transport, etc. Transport type we want from phantom proxy 858 Transport *TransportType `protobuf:"varint,12,opt,name=transport,enum=tapdance.TransportType" json:"transport,omitempty"` 859 // Station is only required to check this variable during session initialization. 860 // If set, station must facilitate connection to said target by itself, i.e. write into squid 861 // socket an HTTP/SOCKS/any other connection request. 862 // covert_address must have exactly one ':' colon, that separates host (literal IP address or 863 // resolvable hostname) and port 864 // TODO: make it required for initialization, and stop connecting any client straight to squid? 865 CovertAddress *string `protobuf:"bytes,20,opt,name=covert_address,json=covertAddress" json:"covert_address,omitempty"` 866 // Used in dark decoys to signal which dark decoy it will connect to. 867 MaskedDecoyServerName *string `protobuf:"bytes,21,opt,name=masked_decoy_server_name,json=maskedDecoyServerName" json:"masked_decoy_server_name,omitempty"` 868 // Used to indicate to server if client is registering v4, v6 or both 869 V6Support *bool `protobuf:"varint,22,opt,name=v6_support,json=v6Support" json:"v6_support,omitempty"` 870 V4Support *bool `protobuf:"varint,23,opt,name=v4_support,json=v4Support" json:"v4_support,omitempty"` 871 // A collection of optional flags for the registration. 872 Flags *RegistrationFlags `protobuf:"bytes,24,opt,name=flags" json:"flags,omitempty"` 873 // Random-sized junk to defeat packet size fingerprinting. 874 Padding []byte `protobuf:"bytes,100,opt,name=padding" json:"padding,omitempty"` 875 XXX_NoUnkeyedLiteral struct{} `json:"-"` 876 XXX_unrecognized []byte `json:"-"` 877 XXX_sizecache int32 `json:"-"` 878} 879 880func (m *ClientToStation) Reset() { *m = ClientToStation{} } 881func (m *ClientToStation) String() string { return proto.CompactTextString(m) } 882func (*ClientToStation) ProtoMessage() {} 883func (*ClientToStation) Descriptor() ([]byte, []int) { 884 return fileDescriptor_39f66308029891ad, []int{8} 885} 886 887func (m *ClientToStation) XXX_Unmarshal(b []byte) error { 888 return xxx_messageInfo_ClientToStation.Unmarshal(m, b) 889} 890func (m *ClientToStation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 891 return xxx_messageInfo_ClientToStation.Marshal(b, m, deterministic) 892} 893func (m *ClientToStation) XXX_Merge(src proto.Message) { 894 xxx_messageInfo_ClientToStation.Merge(m, src) 895} 896func (m *ClientToStation) XXX_Size() int { 897 return xxx_messageInfo_ClientToStation.Size(m) 898} 899func (m *ClientToStation) XXX_DiscardUnknown() { 900 xxx_messageInfo_ClientToStation.DiscardUnknown(m) 901} 902 903var xxx_messageInfo_ClientToStation proto.InternalMessageInfo 904 905func (m *ClientToStation) GetProtocolVersion() uint32 { 906 if m != nil && m.ProtocolVersion != nil { 907 return *m.ProtocolVersion 908 } 909 return 0 910} 911 912func (m *ClientToStation) GetDecoyListGeneration() uint32 { 913 if m != nil && m.DecoyListGeneration != nil { 914 return *m.DecoyListGeneration 915 } 916 return 0 917} 918 919func (m *ClientToStation) GetStateTransition() C2S_Transition { 920 if m != nil && m.StateTransition != nil { 921 return *m.StateTransition 922 } 923 return C2S_Transition_C2S_NO_CHANGE 924} 925 926func (m *ClientToStation) GetUploadSync() uint64 { 927 if m != nil && m.UploadSync != nil { 928 return *m.UploadSync 929 } 930 return 0 931} 932 933func (m *ClientToStation) GetFailedDecoys() []string { 934 if m != nil { 935 return m.FailedDecoys 936 } 937 return nil 938} 939 940func (m *ClientToStation) GetStats() *SessionStats { 941 if m != nil { 942 return m.Stats 943 } 944 return nil 945} 946 947func (m *ClientToStation) GetTransport() TransportType { 948 if m != nil && m.Transport != nil { 949 return *m.Transport 950 } 951 return TransportType_Null 952} 953 954func (m *ClientToStation) GetCovertAddress() string { 955 if m != nil && m.CovertAddress != nil { 956 return *m.CovertAddress 957 } 958 return "" 959} 960 961func (m *ClientToStation) GetMaskedDecoyServerName() string { 962 if m != nil && m.MaskedDecoyServerName != nil { 963 return *m.MaskedDecoyServerName 964 } 965 return "" 966} 967 968func (m *ClientToStation) GetV6Support() bool { 969 if m != nil && m.V6Support != nil { 970 return *m.V6Support 971 } 972 return false 973} 974 975func (m *ClientToStation) GetV4Support() bool { 976 if m != nil && m.V4Support != nil { 977 return *m.V4Support 978 } 979 return false 980} 981 982func (m *ClientToStation) GetFlags() *RegistrationFlags { 983 if m != nil { 984 return m.Flags 985 } 986 return nil 987} 988 989func (m *ClientToStation) GetPadding() []byte { 990 if m != nil { 991 return m.Padding 992 } 993 return nil 994} 995 996type C2SWrapper struct { 997 SharedSecret []byte `protobuf:"bytes,1,opt,name=shared_secret,json=sharedSecret" json:"shared_secret,omitempty"` 998 RegistrationPayload *ClientToStation `protobuf:"bytes,3,opt,name=registration_payload,json=registrationPayload" json:"registration_payload,omitempty"` 999 RegistrationSource *RegistrationSource `protobuf:"varint,4,opt,name=registration_source,json=registrationSource,enum=tapdance.RegistrationSource" json:"registration_source,omitempty"` 1000 // client source address when receiving a registration 1001 RegistrationAddress []byte `protobuf:"bytes,6,opt,name=registration_address,json=registrationAddress" json:"registration_address,omitempty"` 1002 // Decoy address used when registering over Decoy registrar 1003 DecoyAddress []byte `protobuf:"bytes,7,opt,name=decoy_address,json=decoyAddress" json:"decoy_address,omitempty"` 1004 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1005 XXX_unrecognized []byte `json:"-"` 1006 XXX_sizecache int32 `json:"-"` 1007} 1008 1009func (m *C2SWrapper) Reset() { *m = C2SWrapper{} } 1010func (m *C2SWrapper) String() string { return proto.CompactTextString(m) } 1011func (*C2SWrapper) ProtoMessage() {} 1012func (*C2SWrapper) Descriptor() ([]byte, []int) { 1013 return fileDescriptor_39f66308029891ad, []int{9} 1014} 1015 1016func (m *C2SWrapper) XXX_Unmarshal(b []byte) error { 1017 return xxx_messageInfo_C2SWrapper.Unmarshal(m, b) 1018} 1019func (m *C2SWrapper) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1020 return xxx_messageInfo_C2SWrapper.Marshal(b, m, deterministic) 1021} 1022func (m *C2SWrapper) XXX_Merge(src proto.Message) { 1023 xxx_messageInfo_C2SWrapper.Merge(m, src) 1024} 1025func (m *C2SWrapper) XXX_Size() int { 1026 return xxx_messageInfo_C2SWrapper.Size(m) 1027} 1028func (m *C2SWrapper) XXX_DiscardUnknown() { 1029 xxx_messageInfo_C2SWrapper.DiscardUnknown(m) 1030} 1031 1032var xxx_messageInfo_C2SWrapper proto.InternalMessageInfo 1033 1034func (m *C2SWrapper) GetSharedSecret() []byte { 1035 if m != nil { 1036 return m.SharedSecret 1037 } 1038 return nil 1039} 1040 1041func (m *C2SWrapper) GetRegistrationPayload() *ClientToStation { 1042 if m != nil { 1043 return m.RegistrationPayload 1044 } 1045 return nil 1046} 1047 1048func (m *C2SWrapper) GetRegistrationSource() RegistrationSource { 1049 if m != nil && m.RegistrationSource != nil { 1050 return *m.RegistrationSource 1051 } 1052 return RegistrationSource_Unspecified 1053} 1054 1055func (m *C2SWrapper) GetRegistrationAddress() []byte { 1056 if m != nil { 1057 return m.RegistrationAddress 1058 } 1059 return nil 1060} 1061 1062func (m *C2SWrapper) GetDecoyAddress() []byte { 1063 if m != nil { 1064 return m.DecoyAddress 1065 } 1066 return nil 1067} 1068 1069type SessionStats struct { 1070 FailedDecoysAmount *uint32 `protobuf:"varint,20,opt,name=failed_decoys_amount,json=failedDecoysAmount" json:"failed_decoys_amount,omitempty"` 1071 // Applicable to whole session: 1072 TotalTimeToConnect *uint32 `protobuf:"varint,31,opt,name=total_time_to_connect,json=totalTimeToConnect" json:"total_time_to_connect,omitempty"` 1073 // Last (i.e. successful) decoy: 1074 RttToStation *uint32 `protobuf:"varint,33,opt,name=rtt_to_station,json=rttToStation" json:"rtt_to_station,omitempty"` 1075 TlsToDecoy *uint32 `protobuf:"varint,38,opt,name=tls_to_decoy,json=tlsToDecoy" json:"tls_to_decoy,omitempty"` 1076 TcpToDecoy *uint32 `protobuf:"varint,39,opt,name=tcp_to_decoy,json=tcpToDecoy" json:"tcp_to_decoy,omitempty"` 1077 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1078 XXX_unrecognized []byte `json:"-"` 1079 XXX_sizecache int32 `json:"-"` 1080} 1081 1082func (m *SessionStats) Reset() { *m = SessionStats{} } 1083func (m *SessionStats) String() string { return proto.CompactTextString(m) } 1084func (*SessionStats) ProtoMessage() {} 1085func (*SessionStats) Descriptor() ([]byte, []int) { 1086 return fileDescriptor_39f66308029891ad, []int{10} 1087} 1088 1089func (m *SessionStats) XXX_Unmarshal(b []byte) error { 1090 return xxx_messageInfo_SessionStats.Unmarshal(m, b) 1091} 1092func (m *SessionStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1093 return xxx_messageInfo_SessionStats.Marshal(b, m, deterministic) 1094} 1095func (m *SessionStats) XXX_Merge(src proto.Message) { 1096 xxx_messageInfo_SessionStats.Merge(m, src) 1097} 1098func (m *SessionStats) XXX_Size() int { 1099 return xxx_messageInfo_SessionStats.Size(m) 1100} 1101func (m *SessionStats) XXX_DiscardUnknown() { 1102 xxx_messageInfo_SessionStats.DiscardUnknown(m) 1103} 1104 1105var xxx_messageInfo_SessionStats proto.InternalMessageInfo 1106 1107func (m *SessionStats) GetFailedDecoysAmount() uint32 { 1108 if m != nil && m.FailedDecoysAmount != nil { 1109 return *m.FailedDecoysAmount 1110 } 1111 return 0 1112} 1113 1114func (m *SessionStats) GetTotalTimeToConnect() uint32 { 1115 if m != nil && m.TotalTimeToConnect != nil { 1116 return *m.TotalTimeToConnect 1117 } 1118 return 0 1119} 1120 1121func (m *SessionStats) GetRttToStation() uint32 { 1122 if m != nil && m.RttToStation != nil { 1123 return *m.RttToStation 1124 } 1125 return 0 1126} 1127 1128func (m *SessionStats) GetTlsToDecoy() uint32 { 1129 if m != nil && m.TlsToDecoy != nil { 1130 return *m.TlsToDecoy 1131 } 1132 return 0 1133} 1134 1135func (m *SessionStats) GetTcpToDecoy() uint32 { 1136 if m != nil && m.TcpToDecoy != nil { 1137 return *m.TcpToDecoy 1138 } 1139 return 0 1140} 1141 1142type StationToDetector struct { 1143 PhantomIp *string `protobuf:"bytes,1,opt,name=phantom_ip,json=phantomIp" json:"phantom_ip,omitempty"` 1144 ClientIp *string `protobuf:"bytes,2,opt,name=client_ip,json=clientIp" json:"client_ip,omitempty"` 1145 TimeoutNs *uint64 `protobuf:"varint,3,opt,name=timeout_ns,json=timeoutNs" json:"timeout_ns,omitempty"` 1146 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1147 XXX_unrecognized []byte `json:"-"` 1148 XXX_sizecache int32 `json:"-"` 1149} 1150 1151func (m *StationToDetector) Reset() { *m = StationToDetector{} } 1152func (m *StationToDetector) String() string { return proto.CompactTextString(m) } 1153func (*StationToDetector) ProtoMessage() {} 1154func (*StationToDetector) Descriptor() ([]byte, []int) { 1155 return fileDescriptor_39f66308029891ad, []int{11} 1156} 1157 1158func (m *StationToDetector) XXX_Unmarshal(b []byte) error { 1159 return xxx_messageInfo_StationToDetector.Unmarshal(m, b) 1160} 1161func (m *StationToDetector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1162 return xxx_messageInfo_StationToDetector.Marshal(b, m, deterministic) 1163} 1164func (m *StationToDetector) XXX_Merge(src proto.Message) { 1165 xxx_messageInfo_StationToDetector.Merge(m, src) 1166} 1167func (m *StationToDetector) XXX_Size() int { 1168 return xxx_messageInfo_StationToDetector.Size(m) 1169} 1170func (m *StationToDetector) XXX_DiscardUnknown() { 1171 xxx_messageInfo_StationToDetector.DiscardUnknown(m) 1172} 1173 1174var xxx_messageInfo_StationToDetector proto.InternalMessageInfo 1175 1176func (m *StationToDetector) GetPhantomIp() string { 1177 if m != nil && m.PhantomIp != nil { 1178 return *m.PhantomIp 1179 } 1180 return "" 1181} 1182 1183func (m *StationToDetector) GetClientIp() string { 1184 if m != nil && m.ClientIp != nil { 1185 return *m.ClientIp 1186 } 1187 return "" 1188} 1189 1190func (m *StationToDetector) GetTimeoutNs() uint64 { 1191 if m != nil && m.TimeoutNs != nil { 1192 return *m.TimeoutNs 1193 } 1194 return 0 1195} 1196 1197func init() { 1198 proto.RegisterEnum("tapdance.KeyType", KeyType_name, KeyType_value) 1199 proto.RegisterEnum("tapdance.C2S_Transition", C2S_Transition_name, C2S_Transition_value) 1200 proto.RegisterEnum("tapdance.S2C_Transition", S2C_Transition_name, S2C_Transition_value) 1201 proto.RegisterEnum("tapdance.ErrorReasonS2C", ErrorReasonS2C_name, ErrorReasonS2C_value) 1202 proto.RegisterEnum("tapdance.TransportType", TransportType_name, TransportType_value) 1203 proto.RegisterEnum("tapdance.RegistrationSource", RegistrationSource_name, RegistrationSource_value) 1204 proto.RegisterType((*PubKey)(nil), "tapdance.PubKey") 1205 proto.RegisterType((*TLSDecoySpec)(nil), "tapdance.TLSDecoySpec") 1206 proto.RegisterType((*ClientConf)(nil), "tapdance.ClientConf") 1207 proto.RegisterType((*DecoyList)(nil), "tapdance.DecoyList") 1208 proto.RegisterType((*PhantomSubnetsList)(nil), "tapdance.PhantomSubnetsList") 1209 proto.RegisterType((*PhantomSubnets)(nil), "tapdance.PhantomSubnets") 1210 proto.RegisterType((*StationToClient)(nil), "tapdance.StationToClient") 1211 proto.RegisterType((*RegistrationFlags)(nil), "tapdance.RegistrationFlags") 1212 proto.RegisterType((*ClientToStation)(nil), "tapdance.ClientToStation") 1213 proto.RegisterType((*C2SWrapper)(nil), "tapdance.C2SWrapper") 1214 proto.RegisterType((*SessionStats)(nil), "tapdance.SessionStats") 1215 proto.RegisterType((*StationToDetector)(nil), "tapdance.StationToDetector") 1216} 1217 1218func init() { proto.RegisterFile("signalling.proto", fileDescriptor_39f66308029891ad) } 1219 1220var fileDescriptor_39f66308029891ad = []byte{ 1221 // 1542 bytes of a gzipped FileDescriptorProto 1222 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xcd, 0x72, 0xe3, 0xc6, 1223 0x11, 0x5e, 0x88, 0x94, 0x44, 0x34, 0x7f, 0x04, 0xcd, 0x4a, 0xbb, 0x70, 0x76, 0x1d, 0xd3, 0x74, 1224 0x9c, 0x28, 0x4a, 0xb2, 0x95, 0x65, 0xed, 0x4f, 0xae, 0x5c, 0x08, 0x5e, 0xb3, 0x4c, 0x11, 0xf4, 1225 0x00, 0xeb, 0x64, 0x93, 0xc3, 0x14, 0x04, 0x0c, 0x29, 0x44, 0x20, 0x80, 0xc2, 0x0c, 0xe5, 0xf0, 1226 0x4d, 0x72, 0xce, 0x21, 0xa7, 0x54, 0xe5, 0x0d, 0xf2, 0x02, 0x7e, 0x86, 0x9c, 0xf3, 0x18, 0x49, 1227 0xcd, 0x0f, 0x48, 0x50, 0xb2, 0x37, 0xe5, 0x1b, 0xe6, 0xeb, 0xee, 0x99, 0xfe, 0xa6, 0xbf, 0xe9, 1228 0x06, 0x58, 0x2c, 0x59, 0x64, 0x61, 0x9a, 0x26, 0xd9, 0xe2, 0x59, 0x51, 0xe6, 0x3c, 0x47, 0x2d, 1229 0x1e, 0x16, 0x71, 0x98, 0x45, 0x74, 0x30, 0x82, 0x83, 0xd9, 0xea, 0xea, 0x2b, 0xba, 0x46, 0x16, 1230 0x34, 0x6e, 0xe8, 0xda, 0x36, 0xfa, 0xc6, 0x59, 0x07, 0x8b, 0x4f, 0xf4, 0x39, 0x34, 0xf9, 0xba, 1231 0xa0, 0xf6, 0x5e, 0xdf, 0x38, 0xeb, 0x0d, 0x8f, 0x9f, 0x55, 0x41, 0xcf, 0xbe, 0xa2, 0xeb, 0x60, 1232 0x5d, 0x50, 0x2c, 0xcd, 0x83, 0x7f, 0x19, 0xd0, 0x09, 0x26, 0xfe, 0x05, 0x8d, 0xf2, 0xb5, 0x5f, 1233 0xd0, 0x08, 0xfd, 0x04, 0x5a, 0xd7, 0x39, 0xe3, 0x59, 0xb8, 0xa4, 0x72, 0x3b, 0x13, 0x6f, 0xd6, 1234 0xc2, 0x96, 0x14, 0xb7, 0x2f, 0xc2, 0x38, 0x2e, 0xe5, 0xbe, 0x87, 0x78, 0xb3, 0xd6, 0xb6, 0x57, 1235 0xd2, 0x76, 0x20, 0xd3, 0xd8, 0xac, 0xd1, 0x19, 0x1c, 0x14, 0xab, 0x2b, 0x91, 0x60, 0xa3, 0x6f, 1236 0x9c, 0xb5, 0x87, 0xd6, 0x36, 0x1b, 0x95, 0x3f, 0xd6, 0x76, 0x64, 0xc3, 0x21, 0x4f, 0x96, 0x34, 1237 0x5f, 0x71, 0xbb, 0xd9, 0x37, 0xce, 0xba, 0xb8, 0x5a, 0xa2, 0x47, 0x70, 0xc0, 0xa3, 0xe2, 0xdb, 1238 0x24, 0xb3, 0xf7, 0xa5, 0x41, 0xaf, 0x06, 0x7f, 0xdb, 0x03, 0x70, 0xd2, 0x84, 0x66, 0xdc, 0xc9, 1239 0xb3, 0x39, 0x1a, 0x02, 0xc4, 0x82, 0x0b, 0x49, 0x13, 0xc6, 0x25, 0x81, 0xf6, 0xf0, 0xe1, 0xf6, 1240 0x38, 0xc9, 0x73, 0x92, 0x30, 0x8e, 0xcd, 0xb8, 0xfa, 0x44, 0x3f, 0x05, 0x58, 0xd0, 0x8c, 0x96, 1241 0x21, 0x4f, 0xf2, 0x4c, 0x12, 0xeb, 0xe2, 0x1a, 0x82, 0x5e, 0x43, 0x2f, 0xa6, 0xf3, 0x70, 0x95, 1242 0x72, 0xf2, 0x7f, 0x68, 0x74, 0xb5, 0xdf, 0x4c, 0xb1, 0x99, 0xc2, 0x49, 0x71, 0x1d, 0x66, 0x3c, 1243 0x5f, 0x12, 0xb6, 0xba, 0xca, 0x28, 0x67, 0x2a, 0xad, 0xa6, 0x0c, 0x7f, 0x5a, 0x0b, 0x57, 0x5e, 1244 0xbe, 0x72, 0x92, 0xf9, 0xa1, 0xe2, 0x1e, 0x26, 0x12, 0x89, 0xf2, 0xec, 0xcf, 0xab, 0x92, 0x56, 1245 0x89, 0xec, 0xff, 0x50, 0x22, 0xda, 0x4f, 0x25, 0x32, 0x78, 0x03, 0xe6, 0x86, 0x39, 0x7a, 0x09, 1246 0xc0, 0x53, 0x46, 0x24, 0x7f, 0x66, 0x1b, 0xfd, 0xc6, 0x59, 0x7b, 0xf8, 0x68, 0xbb, 0x43, 0x5d, 1247 0x0d, 0xd8, 0xe4, 0x29, 0x93, 0x2b, 0x36, 0x78, 0x0f, 0xe8, 0x7e, 0x9a, 0xc8, 0x01, 0xeb, 0x5b, 1248 0x9a, 0x2c, 0xae, 0x39, 0x8d, 0x2b, 0x8e, 0x7a, 0x4b, 0xfb, 0x87, 0xe8, 0xe1, 0xa3, 0x2a, 0x42, 1249 0x03, 0x83, 0x37, 0xd0, 0xdb, 0x75, 0x11, 0xd5, 0x56, 0x4e, 0xb2, 0x84, 0x5d, 0xac, 0x57, 0x42, 1250 0x1f, 0xd5, 0x29, 0x7b, 0xfd, 0xc6, 0x99, 0x89, 0xab, 0xe5, 0xe0, 0xbb, 0x3d, 0x38, 0xf2, 0xb9, 1251 0x2c, 0x58, 0x90, 0x2b, 0x41, 0xa0, 0x5f, 0x82, 0x25, 0x9f, 0x4c, 0x94, 0xa7, 0xe4, 0x96, 0x96, 1252 0x4c, 0x94, 0x57, 0xed, 0x77, 0x54, 0xe1, 0xdf, 0x28, 0x58, 0xf0, 0x60, 0x3c, 0xe4, 0x94, 0xf0, 1253 0x32, 0xcc, 0x58, 0xb2, 0x51, 0x42, 0xaf, 0xce, 0xc3, 0x1f, 0x3a, 0x24, 0xd8, 0xd8, 0xf1, 0x91, 1254 0x8c, 0xd8, 0x02, 0xe8, 0x25, 0xb4, 0xa3, 0x3c, 0x9b, 0x27, 0x0b, 0x92, 0x64, 0xf3, 0x5c, 0xab, 1255 0xe4, 0x64, 0x1b, 0xbf, 0xd5, 0x29, 0x06, 0xe5, 0x38, 0xce, 0xe6, 0x39, 0x7a, 0x0d, 0x40, 0xcb, 1256 0x92, 0x94, 0x34, 0x64, 0x79, 0x26, 0xc5, 0xb1, 0x73, 0xaa, 0x5b, 0x96, 0x79, 0x89, 0xa5, 0xd1, 1257 0x1f, 0x3a, 0xd8, 0xa4, 0xa5, 0x5e, 0xa1, 0x4f, 0xa0, 0xcd, 0x97, 0x05, 0xb9, 0x0a, 0xa3, 0x9b, 1258 0x7c, 0x3e, 0xd7, 0x0f, 0x03, 0xf8, 0xb2, 0x78, 0xa3, 0x10, 0xf4, 0x31, 0x00, 0x53, 0x77, 0x42, 1259 0x92, 0x58, 0x3e, 0x4b, 0x13, 0x9b, 0x1a, 0x19, 0xc7, 0xe2, 0x36, 0x8b, 0x30, 0x8e, 0x93, 0x6c, 1260 0x61, 0xc7, 0xf2, 0xc9, 0x56, 0xcb, 0xc1, 0x3f, 0x0d, 0x38, 0xc6, 0x74, 0x91, 0x30, 0xae, 0xde, 1261 0xc0, 0x17, 0x69, 0xb8, 0x60, 0xe2, 0xbc, 0x55, 0x91, 0xe6, 0x61, 0x4c, 0xf2, 0x2c, 0x55, 0xdd, 1262 0xa6, 0x85, 0x41, 0x41, 0x5e, 0x96, 0xae, 0xc5, 0x79, 0x71, 0x58, 0xde, 0x28, 0x6d, 0xc9, 0xfb, 1263 0x6b, 0x61, 0x53, 0x20, 0x52, 0x43, 0xe8, 0x53, 0xe8, 0x14, 0x65, 0xfe, 0x97, 0x35, 0xb9, 0xa6, 1264 0x61, 0x4c, 0x4b, 0x79, 0x41, 0x2d, 0xdc, 0x96, 0xd8, 0x97, 0x12, 0x42, 0x8f, 0xe1, 0x70, 0xc5, 1265 0x28, 0x09, 0xc6, 0x13, 0x79, 0x11, 0x2d, 0x7c, 0xb0, 0x62, 0x34, 0x18, 0x4f, 0xc4, 0x23, 0x2d, 1266 0x4a, 0xca, 0xa2, 0x30, 0xcb, 0x68, 0x2c, 0xa9, 0xb6, 0x70, 0x0d, 0x19, 0x7c, 0xd7, 0x84, 0x23, 1267 0x75, 0xbf, 0x41, 0xae, 0x75, 0xf0, 0x63, 0xea, 0x3f, 0x84, 0xd3, 0x6d, 0xdf, 0x20, 0xf7, 0xda, 1268 0xc1, 0xc3, 0x4d, 0xb7, 0x78, 0xbb, 0xed, 0x0b, 0xdf, 0xa7, 0x99, 0xc6, 0xdd, 0xea, 0x39, 0x43, 1269 0xff, 0x83, 0x9a, 0xd9, 0xde, 0x29, 0x5b, 0x67, 0x91, 0x24, 0xdd, 0xac, 0xee, 0xd4, 0x5f, 0x67, 1270 0x11, 0xfa, 0x0c, 0xba, 0xf3, 0x30, 0x49, 0x69, 0x5c, 0xbd, 0x58, 0x90, 0xc2, 0xef, 0x28, 0x50, 1271 0x3d, 0x4e, 0xf4, 0x6b, 0xd8, 0x17, 0x1b, 0x33, 0xbb, 0x2d, 0x35, 0x57, 0x7b, 0xce, 0x3e, 0x65, 1272 0x82, 0xa0, 0xb8, 0x12, 0x86, 0x95, 0x13, 0x7a, 0x09, 0xa6, 0x4c, 0xb9, 0xc8, 0x4b, 0x6e, 0x77, 1273 0x64, 0xc6, 0x8f, 0x6b, 0x0d, 0xa0, 0x32, 0xc9, 0x31, 0xb1, 0xf5, 0x44, 0x9f, 0x8b, 0xf6, 0x73, 1274 0x4b, 0x4b, 0x4e, 0x44, 0x57, 0xa7, 0x8c, 0xd9, 0x27, 0x52, 0x51, 0x5d, 0x85, 0x8e, 0x14, 0x88, 1275 0x5e, 0x83, 0xbd, 0x0c, 0xd9, 0x4d, 0x95, 0x30, 0x61, 0xb4, 0xbc, 0xa5, 0x25, 0x91, 0x13, 0xe5, 1276 0x54, 0x06, 0x9c, 0x2a, 0xbb, 0x6a, 0x33, 0xd2, 0x3a, 0x15, 0xe3, 0xe5, 0x63, 0x80, 0xdb, 0x57, 1277 0x84, 0xad, 0x0a, 0x99, 0xd7, 0x23, 0xa5, 0x9e, 0xdb, 0x57, 0xbe, 0x02, 0xa4, 0xf9, 0xc5, 0xc6, 1278 0xfc, 0x58, 0x9b, 0x5f, 0x54, 0xe6, 0xe7, 0xb0, 0x3f, 0x17, 0x2a, 0xb5, 0x6d, 0x79, 0x05, 0x4f, 1279 0xb6, 0x84, 0xee, 0x09, 0x19, 0x2b, 0xcf, 0x0f, 0xe8, 0xff, 0xef, 0x62, 0xaa, 0x0c, 0xfd, 0xdf, 1280 0x97, 0x61, 0x51, 0xd0, 0x52, 0xd4, 0x80, 0x5d, 0x87, 0xa5, 0xe8, 0x71, 0x34, 0x2a, 0x29, 0xd7, 1281 0x83, 0xb6, 0xa3, 0x40, 0x5f, 0x62, 0x68, 0x02, 0x27, 0x65, 0xed, 0x24, 0x52, 0x84, 0x6b, 0x51, 1282 0x44, 0xdd, 0x06, 0x3e, 0xba, 0xdb, 0x06, 0x36, 0x32, 0xc5, 0x0f, 0xeb, 0x61, 0x33, 0x15, 0x85, 1283 0x2e, 0x61, 0x07, 0x26, 0x2c, 0x5f, 0x95, 0x11, 0xd5, 0xdd, 0xe1, 0xe9, 0xf7, 0x93, 0xf3, 0xa5, 1284 0x0f, 0x46, 0xe5, 0x3d, 0x0c, 0x3d, 0xbf, 0x93, 0x5c, 0x55, 0x41, 0x35, 0xaa, 0x77, 0x8e, 0xaa, 1285 0xea, 0xf8, 0x19, 0x74, 0x55, 0x01, 0x2b, 0xdf, 0x43, 0x45, 0x5a, 0x82, 0xda, 0x69, 0xf0, 0x6f, 1286 0x03, 0x3a, 0x75, 0x89, 0xa1, 0xdf, 0xc2, 0xc9, 0x8e, 0x5c, 0x49, 0xb8, 0xcc, 0x57, 0x19, 0x97, 1287 0x52, 0xe9, 0x62, 0x54, 0x57, 0xed, 0x48, 0x5a, 0xd0, 0x73, 0x38, 0xe5, 0x39, 0x0f, 0x53, 0x22, 1288 0x46, 0x3d, 0xe1, 0x39, 0x89, 0xf2, 0x2c, 0xa3, 0x11, 0xb7, 0x3f, 0x51, 0x21, 0xd2, 0x18, 0x24, 1289 0x4b, 0x1a, 0xe4, 0x8e, 0xb2, 0xa0, 0x9f, 0x41, 0xaf, 0xe4, 0x5c, 0xf8, 0xea, 0x66, 0x66, 0x7f, 1290 0x2a, 0x7d, 0x3b, 0x25, 0xaf, 0x3d, 0xff, 0x3e, 0x74, 0xc4, 0xa0, 0xe3, 0xb9, 0xee, 0x47, 0x3f, 1291 0xd7, 0xfd, 0x31, 0x65, 0x41, 0xae, 0x1a, 0x92, 0xf0, 0x88, 0x8a, 0xad, 0xc7, 0x2f, 0xb4, 0x47, 1292 0x54, 0x68, 0x8f, 0x41, 0x06, 0xc7, 0x9b, 0xa9, 0x72, 0x41, 0x39, 0x8d, 0x78, 0x5e, 0x0a, 0x25, 1293 0x56, 0x73, 0x3d, 0x29, 0xf4, 0x5f, 0x92, 0xa9, 0x91, 0x71, 0x81, 0x9e, 0x80, 0x19, 0xc9, 0x12, 1294 0x0b, 0xeb, 0x9e, 0xfa, 0x87, 0x52, 0xc0, 0xb8, 0x10, 0xb1, 0xfa, 0x97, 0x86, 0x64, 0x4c, 0x6a, 1295 0xa3, 0x89, 0x4d, 0x8d, 0x4c, 0xd9, 0xf9, 0xaf, 0xe0, 0x50, 0xff, 0xa0, 0xa1, 0x23, 0x68, 0x8f, 1296 0x5c, 0x9f, 0xbc, 0x75, 0x2e, 0xc9, 0xf3, 0xe1, 0xef, 0xac, 0x3f, 0xd6, 0x81, 0xe1, 0xcb, 0x57, 1297 0xd6, 0x9f, 0xce, 0xff, 0x63, 0x40, 0x6f, 0xb7, 0xbf, 0xa0, 0x63, 0xe8, 0x0a, 0x64, 0xea, 0x11, 1298 0xe7, 0xcb, 0xd1, 0xf4, 0xad, 0x6b, 0x3d, 0x40, 0x27, 0x60, 0x09, 0xc8, 0x77, 0x7d, 0x7f, 0xec, 1299 0x4d, 0xc9, 0x78, 0x3a, 0x0e, 0x2c, 0x03, 0x3d, 0x81, 0xc7, 0x75, 0xd4, 0xf1, 0xbe, 0x71, 0x71, 1300 0xa0, 0x8c, 0x6d, 0x64, 0xc3, 0x89, 0x30, 0xba, 0x7f, 0x98, 0xb9, 0x4e, 0x40, 0xb0, 0xeb, 0x78, 1301 0xd3, 0xa9, 0xeb, 0x04, 0xd6, 0x1e, 0x3a, 0x85, 0xe3, 0x9d, 0xb0, 0x89, 0xe7, 0xbb, 0x56, 0xa3, 1302 0x3a, 0xe3, 0xfd, 0xd8, 0x9d, 0x5c, 0x90, 0x77, 0xb3, 0x89, 0x37, 0xba, 0xb0, 0x9a, 0xe8, 0x11, 1303 0x20, 0x81, 0x8e, 0x9c, 0xaf, 0xdf, 0x8d, 0xb1, 0x5b, 0xe1, 0xfb, 0xa8, 0x0f, 0x4f, 0x6b, 0xdb, 1304 0x2b, 0xd8, 0x9b, 0x4e, 0xde, 0xeb, 0x93, 0xac, 0x03, 0xd4, 0x03, 0x53, 0x7a, 0x60, 0xec, 0x61, 1305 0xeb, 0xbf, 0xc6, 0xf9, 0x5f, 0x0d, 0xe8, 0xed, 0x4e, 0x5f, 0xc1, 0x54, 0x20, 0x77, 0x98, 0x0a, 1306 0xe8, 0x3e, 0xd3, 0x3a, 0xba, 0xcb, 0xf4, 0x23, 0x38, 0x15, 0x46, 0xc7, 0x9b, 0x7e, 0x31, 0xc6, 1307 0x97, 0x77, 0xa9, 0xee, 0xc4, 0x69, 0xaa, 0x3d, 0x30, 0x05, 0xbc, 0x49, 0xed, 0x1f, 0x06, 0xf4, 1308 0x76, 0x47, 0x34, 0xea, 0x40, 0x6b, 0xea, 0x69, 0x8f, 0x07, 0xb2, 0x24, 0xea, 0x4c, 0x3f, 0xc0, 1309 0xee, 0xe8, 0xd2, 0x32, 0xd0, 0x43, 0x38, 0x72, 0x26, 0x63, 0x77, 0x2a, 0xee, 0x76, 0xe6, 0xe1, 1310 0xc0, 0xbd, 0xb0, 0xf6, 0x6a, 0xe0, 0x0c, 0x7b, 0x81, 0xe7, 0x78, 0x13, 0x75, 0xb1, 0x7e, 0x30, 1311 0x0a, 0x14, 0x9d, 0xc0, 0xc5, 0xd3, 0xd1, 0xc4, 0x6a, 0x22, 0x04, 0xbd, 0x0b, 0xd7, 0xf1, 0xde, 1312 0x13, 0xb1, 0xaf, 0xbe, 0x54, 0x71, 0x8c, 0x0a, 0xd7, 0xc7, 0xc4, 0xc2, 0x4d, 0x43, 0xc1, 0xf8, 1313 0xd2, 0xf5, 0xde, 0x05, 0x16, 0x3d, 0xff, 0x0d, 0x74, 0x77, 0x1a, 0x3c, 0x6a, 0x41, 0x73, 0xba, 1314 0x4a, 0x53, 0xeb, 0x01, 0x3a, 0x84, 0xc6, 0x65, 0x92, 0x59, 0x06, 0x32, 0x61, 0xdf, 0xbb, 0x9a, 1315 0xb3, 0x17, 0xd6, 0xde, 0xf9, 0xd7, 0x80, 0xee, 0x77, 0x18, 0xa1, 0xc4, 0x77, 0x19, 0x2b, 0x68, 1316 0x94, 0xcc, 0x13, 0x1a, 0x5b, 0x0f, 0x04, 0xe3, 0xea, 0x75, 0x58, 0x86, 0xd8, 0x68, 0x34, 0x1b, 1317 0x2b, 0x4a, 0x15, 0x3c, 0x53, 0xa3, 0xda, 0x6a, 0xfc, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x98, 0x6e, 1318 0x73, 0xc1, 0xd2, 0x0c, 0x00, 0x00, 1319} 1320