google.golang.org/grpc@v1.72.2/credentials/alts/internal/proto/grpc_gcp/handshaker.pb.go (about) 1 // Copyright 2018 The gRPC Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // The canonical version of this proto can be found at 16 // https://github.com/grpc/grpc-proto/blob/master/grpc/gcp/handshaker.proto 17 18 // Code generated by protoc-gen-go. DO NOT EDIT. 19 // versions: 20 // protoc-gen-go v1.36.5 21 // protoc v5.27.1 22 // source: grpc/gcp/handshaker.proto 23 24 package grpc_gcp 25 26 import ( 27 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 28 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 29 reflect "reflect" 30 sync "sync" 31 unsafe "unsafe" 32 ) 33 34 const ( 35 // Verify that this generated code is sufficiently up-to-date. 36 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 37 // Verify that runtime/protoimpl is sufficiently up-to-date. 38 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 39 ) 40 41 type HandshakeProtocol int32 42 43 const ( 44 // Default value. 45 HandshakeProtocol_HANDSHAKE_PROTOCOL_UNSPECIFIED HandshakeProtocol = 0 46 // TLS handshake protocol. 47 HandshakeProtocol_TLS HandshakeProtocol = 1 48 // Application Layer Transport Security handshake protocol. 49 HandshakeProtocol_ALTS HandshakeProtocol = 2 50 ) 51 52 // Enum value maps for HandshakeProtocol. 53 var ( 54 HandshakeProtocol_name = map[int32]string{ 55 0: "HANDSHAKE_PROTOCOL_UNSPECIFIED", 56 1: "TLS", 57 2: "ALTS", 58 } 59 HandshakeProtocol_value = map[string]int32{ 60 "HANDSHAKE_PROTOCOL_UNSPECIFIED": 0, 61 "TLS": 1, 62 "ALTS": 2, 63 } 64 ) 65 66 func (x HandshakeProtocol) Enum() *HandshakeProtocol { 67 p := new(HandshakeProtocol) 68 *p = x 69 return p 70 } 71 72 func (x HandshakeProtocol) String() string { 73 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 74 } 75 76 func (HandshakeProtocol) Descriptor() protoreflect.EnumDescriptor { 77 return file_grpc_gcp_handshaker_proto_enumTypes[0].Descriptor() 78 } 79 80 func (HandshakeProtocol) Type() protoreflect.EnumType { 81 return &file_grpc_gcp_handshaker_proto_enumTypes[0] 82 } 83 84 func (x HandshakeProtocol) Number() protoreflect.EnumNumber { 85 return protoreflect.EnumNumber(x) 86 } 87 88 // Deprecated: Use HandshakeProtocol.Descriptor instead. 89 func (HandshakeProtocol) EnumDescriptor() ([]byte, []int) { 90 return file_grpc_gcp_handshaker_proto_rawDescGZIP(), []int{0} 91 } 92 93 type NetworkProtocol int32 94 95 const ( 96 NetworkProtocol_NETWORK_PROTOCOL_UNSPECIFIED NetworkProtocol = 0 97 NetworkProtocol_TCP NetworkProtocol = 1 98 NetworkProtocol_UDP NetworkProtocol = 2 99 ) 100 101 // Enum value maps for NetworkProtocol. 102 var ( 103 NetworkProtocol_name = map[int32]string{ 104 0: "NETWORK_PROTOCOL_UNSPECIFIED", 105 1: "TCP", 106 2: "UDP", 107 } 108 NetworkProtocol_value = map[string]int32{ 109 "NETWORK_PROTOCOL_UNSPECIFIED": 0, 110 "TCP": 1, 111 "UDP": 2, 112 } 113 ) 114 115 func (x NetworkProtocol) Enum() *NetworkProtocol { 116 p := new(NetworkProtocol) 117 *p = x 118 return p 119 } 120 121 func (x NetworkProtocol) String() string { 122 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 123 } 124 125 func (NetworkProtocol) Descriptor() protoreflect.EnumDescriptor { 126 return file_grpc_gcp_handshaker_proto_enumTypes[1].Descriptor() 127 } 128 129 func (NetworkProtocol) Type() protoreflect.EnumType { 130 return &file_grpc_gcp_handshaker_proto_enumTypes[1] 131 } 132 133 func (x NetworkProtocol) Number() protoreflect.EnumNumber { 134 return protoreflect.EnumNumber(x) 135 } 136 137 // Deprecated: Use NetworkProtocol.Descriptor instead. 138 func (NetworkProtocol) EnumDescriptor() ([]byte, []int) { 139 return file_grpc_gcp_handshaker_proto_rawDescGZIP(), []int{1} 140 } 141 142 type Endpoint struct { 143 state protoimpl.MessageState `protogen:"open.v1"` 144 // IP address. It should contain an IPv4 or IPv6 string literal, e.g. 145 // "192.168.0.1" or "2001:db8::1". 146 IpAddress string `protobuf:"bytes,1,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"` 147 // Port number. 148 Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` 149 // Network protocol (e.g., TCP, UDP) associated with this endpoint. 150 Protocol NetworkProtocol `protobuf:"varint,3,opt,name=protocol,proto3,enum=grpc.gcp.NetworkProtocol" json:"protocol,omitempty"` 151 unknownFields protoimpl.UnknownFields 152 sizeCache protoimpl.SizeCache 153 } 154 155 func (x *Endpoint) Reset() { 156 *x = Endpoint{} 157 mi := &file_grpc_gcp_handshaker_proto_msgTypes[0] 158 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 159 ms.StoreMessageInfo(mi) 160 } 161 162 func (x *Endpoint) String() string { 163 return protoimpl.X.MessageStringOf(x) 164 } 165 166 func (*Endpoint) ProtoMessage() {} 167 168 func (x *Endpoint) ProtoReflect() protoreflect.Message { 169 mi := &file_grpc_gcp_handshaker_proto_msgTypes[0] 170 if x != nil { 171 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 172 if ms.LoadMessageInfo() == nil { 173 ms.StoreMessageInfo(mi) 174 } 175 return ms 176 } 177 return mi.MessageOf(x) 178 } 179 180 // Deprecated: Use Endpoint.ProtoReflect.Descriptor instead. 181 func (*Endpoint) Descriptor() ([]byte, []int) { 182 return file_grpc_gcp_handshaker_proto_rawDescGZIP(), []int{0} 183 } 184 185 func (x *Endpoint) GetIpAddress() string { 186 if x != nil { 187 return x.IpAddress 188 } 189 return "" 190 } 191 192 func (x *Endpoint) GetPort() int32 { 193 if x != nil { 194 return x.Port 195 } 196 return 0 197 } 198 199 func (x *Endpoint) GetProtocol() NetworkProtocol { 200 if x != nil { 201 return x.Protocol 202 } 203 return NetworkProtocol_NETWORK_PROTOCOL_UNSPECIFIED 204 } 205 206 type Identity struct { 207 state protoimpl.MessageState `protogen:"open.v1"` 208 // Types that are valid to be assigned to IdentityOneof: 209 // 210 // *Identity_ServiceAccount 211 // *Identity_Hostname 212 IdentityOneof isIdentity_IdentityOneof `protobuf_oneof:"identity_oneof"` 213 // Additional attributes of the identity. 214 Attributes map[string]string `protobuf:"bytes,3,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` 215 unknownFields protoimpl.UnknownFields 216 sizeCache protoimpl.SizeCache 217 } 218 219 func (x *Identity) Reset() { 220 *x = Identity{} 221 mi := &file_grpc_gcp_handshaker_proto_msgTypes[1] 222 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 223 ms.StoreMessageInfo(mi) 224 } 225 226 func (x *Identity) String() string { 227 return protoimpl.X.MessageStringOf(x) 228 } 229 230 func (*Identity) ProtoMessage() {} 231 232 func (x *Identity) ProtoReflect() protoreflect.Message { 233 mi := &file_grpc_gcp_handshaker_proto_msgTypes[1] 234 if x != nil { 235 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 236 if ms.LoadMessageInfo() == nil { 237 ms.StoreMessageInfo(mi) 238 } 239 return ms 240 } 241 return mi.MessageOf(x) 242 } 243 244 // Deprecated: Use Identity.ProtoReflect.Descriptor instead. 245 func (*Identity) Descriptor() ([]byte, []int) { 246 return file_grpc_gcp_handshaker_proto_rawDescGZIP(), []int{1} 247 } 248 249 func (x *Identity) GetIdentityOneof() isIdentity_IdentityOneof { 250 if x != nil { 251 return x.IdentityOneof 252 } 253 return nil 254 } 255 256 func (x *Identity) GetServiceAccount() string { 257 if x != nil { 258 if x, ok := x.IdentityOneof.(*Identity_ServiceAccount); ok { 259 return x.ServiceAccount 260 } 261 } 262 return "" 263 } 264 265 func (x *Identity) GetHostname() string { 266 if x != nil { 267 if x, ok := x.IdentityOneof.(*Identity_Hostname); ok { 268 return x.Hostname 269 } 270 } 271 return "" 272 } 273 274 func (x *Identity) GetAttributes() map[string]string { 275 if x != nil { 276 return x.Attributes 277 } 278 return nil 279 } 280 281 type isIdentity_IdentityOneof interface { 282 isIdentity_IdentityOneof() 283 } 284 285 type Identity_ServiceAccount struct { 286 // Service account of a connection endpoint. 287 ServiceAccount string `protobuf:"bytes,1,opt,name=service_account,json=serviceAccount,proto3,oneof"` 288 } 289 290 type Identity_Hostname struct { 291 // Hostname of a connection endpoint. 292 Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3,oneof"` 293 } 294 295 func (*Identity_ServiceAccount) isIdentity_IdentityOneof() {} 296 297 func (*Identity_Hostname) isIdentity_IdentityOneof() {} 298 299 type StartClientHandshakeReq struct { 300 state protoimpl.MessageState `protogen:"open.v1"` 301 // Handshake security protocol requested by the client. 302 HandshakeSecurityProtocol HandshakeProtocol `protobuf:"varint,1,opt,name=handshake_security_protocol,json=handshakeSecurityProtocol,proto3,enum=grpc.gcp.HandshakeProtocol" json:"handshake_security_protocol,omitempty"` 303 // The application protocols supported by the client, e.g., "h2" (for http2), 304 // "grpc". 305 ApplicationProtocols []string `protobuf:"bytes,2,rep,name=application_protocols,json=applicationProtocols,proto3" json:"application_protocols,omitempty"` 306 // The record protocols supported by the client, e.g., 307 // "ALTSRP_GCM_AES128". 308 RecordProtocols []string `protobuf:"bytes,3,rep,name=record_protocols,json=recordProtocols,proto3" json:"record_protocols,omitempty"` 309 // (Optional) Describes which server identities are acceptable by the client. 310 // If target identities are provided and none of them matches the peer 311 // identity of the server, handshake will fail. 312 TargetIdentities []*Identity `protobuf:"bytes,4,rep,name=target_identities,json=targetIdentities,proto3" json:"target_identities,omitempty"` 313 // (Optional) Application may specify a local identity. Otherwise, the 314 // handshaker chooses a default local identity. 315 LocalIdentity *Identity `protobuf:"bytes,5,opt,name=local_identity,json=localIdentity,proto3" json:"local_identity,omitempty"` 316 // (Optional) Local endpoint information of the connection to the server, 317 // such as local IP address, port number, and network protocol. 318 LocalEndpoint *Endpoint `protobuf:"bytes,6,opt,name=local_endpoint,json=localEndpoint,proto3" json:"local_endpoint,omitempty"` 319 // (Optional) Endpoint information of the remote server, such as IP address, 320 // port number, and network protocol. 321 RemoteEndpoint *Endpoint `protobuf:"bytes,7,opt,name=remote_endpoint,json=remoteEndpoint,proto3" json:"remote_endpoint,omitempty"` 322 // (Optional) If target name is provided, a secure naming check is performed 323 // to verify that the peer authenticated identity is indeed authorized to run 324 // the target name. 325 TargetName string `protobuf:"bytes,8,opt,name=target_name,json=targetName,proto3" json:"target_name,omitempty"` 326 // (Optional) RPC protocol versions supported by the client. 327 RpcVersions *RpcProtocolVersions `protobuf:"bytes,9,opt,name=rpc_versions,json=rpcVersions,proto3" json:"rpc_versions,omitempty"` 328 // (Optional) Maximum frame size supported by the client. 329 MaxFrameSize uint32 `protobuf:"varint,10,opt,name=max_frame_size,json=maxFrameSize,proto3" json:"max_frame_size,omitempty"` 330 // (Optional) An access token created by the caller only intended for use in 331 // ALTS connections. The access token that should be used to authenticate to 332 // the peer. The access token MUST be strongly bound to the ALTS credentials 333 // used to establish the connection that the token is sent over. 334 AccessToken string `protobuf:"bytes,11,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"` 335 unknownFields protoimpl.UnknownFields 336 sizeCache protoimpl.SizeCache 337 } 338 339 func (x *StartClientHandshakeReq) Reset() { 340 *x = StartClientHandshakeReq{} 341 mi := &file_grpc_gcp_handshaker_proto_msgTypes[2] 342 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 343 ms.StoreMessageInfo(mi) 344 } 345 346 func (x *StartClientHandshakeReq) String() string { 347 return protoimpl.X.MessageStringOf(x) 348 } 349 350 func (*StartClientHandshakeReq) ProtoMessage() {} 351 352 func (x *StartClientHandshakeReq) ProtoReflect() protoreflect.Message { 353 mi := &file_grpc_gcp_handshaker_proto_msgTypes[2] 354 if x != nil { 355 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 356 if ms.LoadMessageInfo() == nil { 357 ms.StoreMessageInfo(mi) 358 } 359 return ms 360 } 361 return mi.MessageOf(x) 362 } 363 364 // Deprecated: Use StartClientHandshakeReq.ProtoReflect.Descriptor instead. 365 func (*StartClientHandshakeReq) Descriptor() ([]byte, []int) { 366 return file_grpc_gcp_handshaker_proto_rawDescGZIP(), []int{2} 367 } 368 369 func (x *StartClientHandshakeReq) GetHandshakeSecurityProtocol() HandshakeProtocol { 370 if x != nil { 371 return x.HandshakeSecurityProtocol 372 } 373 return HandshakeProtocol_HANDSHAKE_PROTOCOL_UNSPECIFIED 374 } 375 376 func (x *StartClientHandshakeReq) GetApplicationProtocols() []string { 377 if x != nil { 378 return x.ApplicationProtocols 379 } 380 return nil 381 } 382 383 func (x *StartClientHandshakeReq) GetRecordProtocols() []string { 384 if x != nil { 385 return x.RecordProtocols 386 } 387 return nil 388 } 389 390 func (x *StartClientHandshakeReq) GetTargetIdentities() []*Identity { 391 if x != nil { 392 return x.TargetIdentities 393 } 394 return nil 395 } 396 397 func (x *StartClientHandshakeReq) GetLocalIdentity() *Identity { 398 if x != nil { 399 return x.LocalIdentity 400 } 401 return nil 402 } 403 404 func (x *StartClientHandshakeReq) GetLocalEndpoint() *Endpoint { 405 if x != nil { 406 return x.LocalEndpoint 407 } 408 return nil 409 } 410 411 func (x *StartClientHandshakeReq) GetRemoteEndpoint() *Endpoint { 412 if x != nil { 413 return x.RemoteEndpoint 414 } 415 return nil 416 } 417 418 func (x *StartClientHandshakeReq) GetTargetName() string { 419 if x != nil { 420 return x.TargetName 421 } 422 return "" 423 } 424 425 func (x *StartClientHandshakeReq) GetRpcVersions() *RpcProtocolVersions { 426 if x != nil { 427 return x.RpcVersions 428 } 429 return nil 430 } 431 432 func (x *StartClientHandshakeReq) GetMaxFrameSize() uint32 { 433 if x != nil { 434 return x.MaxFrameSize 435 } 436 return 0 437 } 438 439 func (x *StartClientHandshakeReq) GetAccessToken() string { 440 if x != nil { 441 return x.AccessToken 442 } 443 return "" 444 } 445 446 type ServerHandshakeParameters struct { 447 state protoimpl.MessageState `protogen:"open.v1"` 448 // The record protocols supported by the server, e.g., 449 // "ALTSRP_GCM_AES128". 450 RecordProtocols []string `protobuf:"bytes,1,rep,name=record_protocols,json=recordProtocols,proto3" json:"record_protocols,omitempty"` 451 // (Optional) A list of local identities supported by the server, if 452 // specified. Otherwise, the handshaker chooses a default local identity. 453 LocalIdentities []*Identity `protobuf:"bytes,2,rep,name=local_identities,json=localIdentities,proto3" json:"local_identities,omitempty"` 454 // A token created by the caller only intended for use in 455 // ALTS connections. The token should be used to authenticate to 456 // the peer. The token MUST be strongly bound to the ALTS credentials 457 // used to establish the connection that the token is sent over. 458 Token *string `protobuf:"bytes,3,opt,name=token,proto3,oneof" json:"token,omitempty"` 459 unknownFields protoimpl.UnknownFields 460 sizeCache protoimpl.SizeCache 461 } 462 463 func (x *ServerHandshakeParameters) Reset() { 464 *x = ServerHandshakeParameters{} 465 mi := &file_grpc_gcp_handshaker_proto_msgTypes[3] 466 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 467 ms.StoreMessageInfo(mi) 468 } 469 470 func (x *ServerHandshakeParameters) String() string { 471 return protoimpl.X.MessageStringOf(x) 472 } 473 474 func (*ServerHandshakeParameters) ProtoMessage() {} 475 476 func (x *ServerHandshakeParameters) ProtoReflect() protoreflect.Message { 477 mi := &file_grpc_gcp_handshaker_proto_msgTypes[3] 478 if x != nil { 479 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 480 if ms.LoadMessageInfo() == nil { 481 ms.StoreMessageInfo(mi) 482 } 483 return ms 484 } 485 return mi.MessageOf(x) 486 } 487 488 // Deprecated: Use ServerHandshakeParameters.ProtoReflect.Descriptor instead. 489 func (*ServerHandshakeParameters) Descriptor() ([]byte, []int) { 490 return file_grpc_gcp_handshaker_proto_rawDescGZIP(), []int{3} 491 } 492 493 func (x *ServerHandshakeParameters) GetRecordProtocols() []string { 494 if x != nil { 495 return x.RecordProtocols 496 } 497 return nil 498 } 499 500 func (x *ServerHandshakeParameters) GetLocalIdentities() []*Identity { 501 if x != nil { 502 return x.LocalIdentities 503 } 504 return nil 505 } 506 507 func (x *ServerHandshakeParameters) GetToken() string { 508 if x != nil && x.Token != nil { 509 return *x.Token 510 } 511 return "" 512 } 513 514 type StartServerHandshakeReq struct { 515 state protoimpl.MessageState `protogen:"open.v1"` 516 // The application protocols supported by the server, e.g., "h2" (for http2), 517 // "grpc". 518 ApplicationProtocols []string `protobuf:"bytes,1,rep,name=application_protocols,json=applicationProtocols,proto3" json:"application_protocols,omitempty"` 519 // Handshake parameters (record protocols and local identities supported by 520 // the server) mapped by the handshake protocol. Each handshake security 521 // protocol (e.g., TLS or ALTS) has its own set of record protocols and local 522 // identities. Since protobuf does not support enum as key to the map, the key 523 // to handshake_parameters is the integer value of HandshakeProtocol enum. 524 HandshakeParameters map[int32]*ServerHandshakeParameters `protobuf:"bytes,2,rep,name=handshake_parameters,json=handshakeParameters,proto3" json:"handshake_parameters,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` 525 // Bytes in out_frames returned from the peer's HandshakerResp. It is possible 526 // that the peer's out_frames are split into multiple HandshakeReq messages. 527 InBytes []byte `protobuf:"bytes,3,opt,name=in_bytes,json=inBytes,proto3" json:"in_bytes,omitempty"` 528 // (Optional) Local endpoint information of the connection to the client, 529 // such as local IP address, port number, and network protocol. 530 LocalEndpoint *Endpoint `protobuf:"bytes,4,opt,name=local_endpoint,json=localEndpoint,proto3" json:"local_endpoint,omitempty"` 531 // (Optional) Endpoint information of the remote client, such as IP address, 532 // port number, and network protocol. 533 RemoteEndpoint *Endpoint `protobuf:"bytes,5,opt,name=remote_endpoint,json=remoteEndpoint,proto3" json:"remote_endpoint,omitempty"` 534 // (Optional) RPC protocol versions supported by the server. 535 RpcVersions *RpcProtocolVersions `protobuf:"bytes,6,opt,name=rpc_versions,json=rpcVersions,proto3" json:"rpc_versions,omitempty"` 536 // (Optional) Maximum frame size supported by the server. 537 MaxFrameSize uint32 `protobuf:"varint,7,opt,name=max_frame_size,json=maxFrameSize,proto3" json:"max_frame_size,omitempty"` 538 unknownFields protoimpl.UnknownFields 539 sizeCache protoimpl.SizeCache 540 } 541 542 func (x *StartServerHandshakeReq) Reset() { 543 *x = StartServerHandshakeReq{} 544 mi := &file_grpc_gcp_handshaker_proto_msgTypes[4] 545 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 546 ms.StoreMessageInfo(mi) 547 } 548 549 func (x *StartServerHandshakeReq) String() string { 550 return protoimpl.X.MessageStringOf(x) 551 } 552 553 func (*StartServerHandshakeReq) ProtoMessage() {} 554 555 func (x *StartServerHandshakeReq) ProtoReflect() protoreflect.Message { 556 mi := &file_grpc_gcp_handshaker_proto_msgTypes[4] 557 if x != nil { 558 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 559 if ms.LoadMessageInfo() == nil { 560 ms.StoreMessageInfo(mi) 561 } 562 return ms 563 } 564 return mi.MessageOf(x) 565 } 566 567 // Deprecated: Use StartServerHandshakeReq.ProtoReflect.Descriptor instead. 568 func (*StartServerHandshakeReq) Descriptor() ([]byte, []int) { 569 return file_grpc_gcp_handshaker_proto_rawDescGZIP(), []int{4} 570 } 571 572 func (x *StartServerHandshakeReq) GetApplicationProtocols() []string { 573 if x != nil { 574 return x.ApplicationProtocols 575 } 576 return nil 577 } 578 579 func (x *StartServerHandshakeReq) GetHandshakeParameters() map[int32]*ServerHandshakeParameters { 580 if x != nil { 581 return x.HandshakeParameters 582 } 583 return nil 584 } 585 586 func (x *StartServerHandshakeReq) GetInBytes() []byte { 587 if x != nil { 588 return x.InBytes 589 } 590 return nil 591 } 592 593 func (x *StartServerHandshakeReq) GetLocalEndpoint() *Endpoint { 594 if x != nil { 595 return x.LocalEndpoint 596 } 597 return nil 598 } 599 600 func (x *StartServerHandshakeReq) GetRemoteEndpoint() *Endpoint { 601 if x != nil { 602 return x.RemoteEndpoint 603 } 604 return nil 605 } 606 607 func (x *StartServerHandshakeReq) GetRpcVersions() *RpcProtocolVersions { 608 if x != nil { 609 return x.RpcVersions 610 } 611 return nil 612 } 613 614 func (x *StartServerHandshakeReq) GetMaxFrameSize() uint32 { 615 if x != nil { 616 return x.MaxFrameSize 617 } 618 return 0 619 } 620 621 type NextHandshakeMessageReq struct { 622 state protoimpl.MessageState `protogen:"open.v1"` 623 // Bytes in out_frames returned from the peer's HandshakerResp. It is possible 624 // that the peer's out_frames are split into multiple NextHandshakerMessageReq 625 // messages. 626 InBytes []byte `protobuf:"bytes,1,opt,name=in_bytes,json=inBytes,proto3" json:"in_bytes,omitempty"` 627 // Number of milliseconds between when the application send the last handshake 628 // message to the peer and when the application received the current handshake 629 // message (in the in_bytes field) from the peer. 630 NetworkLatencyMs uint32 `protobuf:"varint,2,opt,name=network_latency_ms,json=networkLatencyMs,proto3" json:"network_latency_ms,omitempty"` 631 unknownFields protoimpl.UnknownFields 632 sizeCache protoimpl.SizeCache 633 } 634 635 func (x *NextHandshakeMessageReq) Reset() { 636 *x = NextHandshakeMessageReq{} 637 mi := &file_grpc_gcp_handshaker_proto_msgTypes[5] 638 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 639 ms.StoreMessageInfo(mi) 640 } 641 642 func (x *NextHandshakeMessageReq) String() string { 643 return protoimpl.X.MessageStringOf(x) 644 } 645 646 func (*NextHandshakeMessageReq) ProtoMessage() {} 647 648 func (x *NextHandshakeMessageReq) ProtoReflect() protoreflect.Message { 649 mi := &file_grpc_gcp_handshaker_proto_msgTypes[5] 650 if x != nil { 651 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 652 if ms.LoadMessageInfo() == nil { 653 ms.StoreMessageInfo(mi) 654 } 655 return ms 656 } 657 return mi.MessageOf(x) 658 } 659 660 // Deprecated: Use NextHandshakeMessageReq.ProtoReflect.Descriptor instead. 661 func (*NextHandshakeMessageReq) Descriptor() ([]byte, []int) { 662 return file_grpc_gcp_handshaker_proto_rawDescGZIP(), []int{5} 663 } 664 665 func (x *NextHandshakeMessageReq) GetInBytes() []byte { 666 if x != nil { 667 return x.InBytes 668 } 669 return nil 670 } 671 672 func (x *NextHandshakeMessageReq) GetNetworkLatencyMs() uint32 { 673 if x != nil { 674 return x.NetworkLatencyMs 675 } 676 return 0 677 } 678 679 type HandshakerReq struct { 680 state protoimpl.MessageState `protogen:"open.v1"` 681 // Types that are valid to be assigned to ReqOneof: 682 // 683 // *HandshakerReq_ClientStart 684 // *HandshakerReq_ServerStart 685 // *HandshakerReq_Next 686 ReqOneof isHandshakerReq_ReqOneof `protobuf_oneof:"req_oneof"` 687 unknownFields protoimpl.UnknownFields 688 sizeCache protoimpl.SizeCache 689 } 690 691 func (x *HandshakerReq) Reset() { 692 *x = HandshakerReq{} 693 mi := &file_grpc_gcp_handshaker_proto_msgTypes[6] 694 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 695 ms.StoreMessageInfo(mi) 696 } 697 698 func (x *HandshakerReq) String() string { 699 return protoimpl.X.MessageStringOf(x) 700 } 701 702 func (*HandshakerReq) ProtoMessage() {} 703 704 func (x *HandshakerReq) ProtoReflect() protoreflect.Message { 705 mi := &file_grpc_gcp_handshaker_proto_msgTypes[6] 706 if x != nil { 707 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 708 if ms.LoadMessageInfo() == nil { 709 ms.StoreMessageInfo(mi) 710 } 711 return ms 712 } 713 return mi.MessageOf(x) 714 } 715 716 // Deprecated: Use HandshakerReq.ProtoReflect.Descriptor instead. 717 func (*HandshakerReq) Descriptor() ([]byte, []int) { 718 return file_grpc_gcp_handshaker_proto_rawDescGZIP(), []int{6} 719 } 720 721 func (x *HandshakerReq) GetReqOneof() isHandshakerReq_ReqOneof { 722 if x != nil { 723 return x.ReqOneof 724 } 725 return nil 726 } 727 728 func (x *HandshakerReq) GetClientStart() *StartClientHandshakeReq { 729 if x != nil { 730 if x, ok := x.ReqOneof.(*HandshakerReq_ClientStart); ok { 731 return x.ClientStart 732 } 733 } 734 return nil 735 } 736 737 func (x *HandshakerReq) GetServerStart() *StartServerHandshakeReq { 738 if x != nil { 739 if x, ok := x.ReqOneof.(*HandshakerReq_ServerStart); ok { 740 return x.ServerStart 741 } 742 } 743 return nil 744 } 745 746 func (x *HandshakerReq) GetNext() *NextHandshakeMessageReq { 747 if x != nil { 748 if x, ok := x.ReqOneof.(*HandshakerReq_Next); ok { 749 return x.Next 750 } 751 } 752 return nil 753 } 754 755 type isHandshakerReq_ReqOneof interface { 756 isHandshakerReq_ReqOneof() 757 } 758 759 type HandshakerReq_ClientStart struct { 760 // The start client handshake request message. 761 ClientStart *StartClientHandshakeReq `protobuf:"bytes,1,opt,name=client_start,json=clientStart,proto3,oneof"` 762 } 763 764 type HandshakerReq_ServerStart struct { 765 // The start server handshake request message. 766 ServerStart *StartServerHandshakeReq `protobuf:"bytes,2,opt,name=server_start,json=serverStart,proto3,oneof"` 767 } 768 769 type HandshakerReq_Next struct { 770 // The next handshake request message. 771 Next *NextHandshakeMessageReq `protobuf:"bytes,3,opt,name=next,proto3,oneof"` 772 } 773 774 func (*HandshakerReq_ClientStart) isHandshakerReq_ReqOneof() {} 775 776 func (*HandshakerReq_ServerStart) isHandshakerReq_ReqOneof() {} 777 778 func (*HandshakerReq_Next) isHandshakerReq_ReqOneof() {} 779 780 type HandshakerResult struct { 781 state protoimpl.MessageState `protogen:"open.v1"` 782 // The application protocol negotiated for this connection. 783 ApplicationProtocol string `protobuf:"bytes,1,opt,name=application_protocol,json=applicationProtocol,proto3" json:"application_protocol,omitempty"` 784 // The record protocol negotiated for this connection. 785 RecordProtocol string `protobuf:"bytes,2,opt,name=record_protocol,json=recordProtocol,proto3" json:"record_protocol,omitempty"` 786 // Cryptographic key data. The key data may be more than the key length 787 // required for the record protocol, thus the client of the handshaker 788 // service needs to truncate the key data into the right key length. 789 KeyData []byte `protobuf:"bytes,3,opt,name=key_data,json=keyData,proto3" json:"key_data,omitempty"` 790 // The authenticated identity of the peer. 791 PeerIdentity *Identity `protobuf:"bytes,4,opt,name=peer_identity,json=peerIdentity,proto3" json:"peer_identity,omitempty"` 792 // The local identity used in the handshake. 793 LocalIdentity *Identity `protobuf:"bytes,5,opt,name=local_identity,json=localIdentity,proto3" json:"local_identity,omitempty"` 794 // Indicate whether the handshaker service client should keep the channel 795 // between the handshaker service open, e.g., in order to handle 796 // post-handshake messages in the future. 797 KeepChannelOpen bool `protobuf:"varint,6,opt,name=keep_channel_open,json=keepChannelOpen,proto3" json:"keep_channel_open,omitempty"` 798 // The RPC protocol versions supported by the peer. 799 PeerRpcVersions *RpcProtocolVersions `protobuf:"bytes,7,opt,name=peer_rpc_versions,json=peerRpcVersions,proto3" json:"peer_rpc_versions,omitempty"` 800 // The maximum frame size of the peer. 801 MaxFrameSize uint32 `protobuf:"varint,8,opt,name=max_frame_size,json=maxFrameSize,proto3" json:"max_frame_size,omitempty"` 802 unknownFields protoimpl.UnknownFields 803 sizeCache protoimpl.SizeCache 804 } 805 806 func (x *HandshakerResult) Reset() { 807 *x = HandshakerResult{} 808 mi := &file_grpc_gcp_handshaker_proto_msgTypes[7] 809 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 810 ms.StoreMessageInfo(mi) 811 } 812 813 func (x *HandshakerResult) String() string { 814 return protoimpl.X.MessageStringOf(x) 815 } 816 817 func (*HandshakerResult) ProtoMessage() {} 818 819 func (x *HandshakerResult) ProtoReflect() protoreflect.Message { 820 mi := &file_grpc_gcp_handshaker_proto_msgTypes[7] 821 if x != nil { 822 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 823 if ms.LoadMessageInfo() == nil { 824 ms.StoreMessageInfo(mi) 825 } 826 return ms 827 } 828 return mi.MessageOf(x) 829 } 830 831 // Deprecated: Use HandshakerResult.ProtoReflect.Descriptor instead. 832 func (*HandshakerResult) Descriptor() ([]byte, []int) { 833 return file_grpc_gcp_handshaker_proto_rawDescGZIP(), []int{7} 834 } 835 836 func (x *HandshakerResult) GetApplicationProtocol() string { 837 if x != nil { 838 return x.ApplicationProtocol 839 } 840 return "" 841 } 842 843 func (x *HandshakerResult) GetRecordProtocol() string { 844 if x != nil { 845 return x.RecordProtocol 846 } 847 return "" 848 } 849 850 func (x *HandshakerResult) GetKeyData() []byte { 851 if x != nil { 852 return x.KeyData 853 } 854 return nil 855 } 856 857 func (x *HandshakerResult) GetPeerIdentity() *Identity { 858 if x != nil { 859 return x.PeerIdentity 860 } 861 return nil 862 } 863 864 func (x *HandshakerResult) GetLocalIdentity() *Identity { 865 if x != nil { 866 return x.LocalIdentity 867 } 868 return nil 869 } 870 871 func (x *HandshakerResult) GetKeepChannelOpen() bool { 872 if x != nil { 873 return x.KeepChannelOpen 874 } 875 return false 876 } 877 878 func (x *HandshakerResult) GetPeerRpcVersions() *RpcProtocolVersions { 879 if x != nil { 880 return x.PeerRpcVersions 881 } 882 return nil 883 } 884 885 func (x *HandshakerResult) GetMaxFrameSize() uint32 { 886 if x != nil { 887 return x.MaxFrameSize 888 } 889 return 0 890 } 891 892 type HandshakerStatus struct { 893 state protoimpl.MessageState `protogen:"open.v1"` 894 // The status code. This could be the gRPC status code. 895 Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` 896 // The status details. 897 Details string `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"` 898 unknownFields protoimpl.UnknownFields 899 sizeCache protoimpl.SizeCache 900 } 901 902 func (x *HandshakerStatus) Reset() { 903 *x = HandshakerStatus{} 904 mi := &file_grpc_gcp_handshaker_proto_msgTypes[8] 905 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 906 ms.StoreMessageInfo(mi) 907 } 908 909 func (x *HandshakerStatus) String() string { 910 return protoimpl.X.MessageStringOf(x) 911 } 912 913 func (*HandshakerStatus) ProtoMessage() {} 914 915 func (x *HandshakerStatus) ProtoReflect() protoreflect.Message { 916 mi := &file_grpc_gcp_handshaker_proto_msgTypes[8] 917 if x != nil { 918 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 919 if ms.LoadMessageInfo() == nil { 920 ms.StoreMessageInfo(mi) 921 } 922 return ms 923 } 924 return mi.MessageOf(x) 925 } 926 927 // Deprecated: Use HandshakerStatus.ProtoReflect.Descriptor instead. 928 func (*HandshakerStatus) Descriptor() ([]byte, []int) { 929 return file_grpc_gcp_handshaker_proto_rawDescGZIP(), []int{8} 930 } 931 932 func (x *HandshakerStatus) GetCode() uint32 { 933 if x != nil { 934 return x.Code 935 } 936 return 0 937 } 938 939 func (x *HandshakerStatus) GetDetails() string { 940 if x != nil { 941 return x.Details 942 } 943 return "" 944 } 945 946 type HandshakerResp struct { 947 state protoimpl.MessageState `protogen:"open.v1"` 948 // Frames to be given to the peer for the NextHandshakeMessageReq. May be 949 // empty if no out_frames have to be sent to the peer or if in_bytes in the 950 // HandshakerReq are incomplete. All the non-empty out frames must be sent to 951 // the peer even if the handshaker status is not OK as these frames may 952 // contain the alert frames. 953 OutFrames []byte `protobuf:"bytes,1,opt,name=out_frames,json=outFrames,proto3" json:"out_frames,omitempty"` 954 // Number of bytes in the in_bytes consumed by the handshaker. It is possible 955 // that part of in_bytes in HandshakerReq was unrelated to the handshake 956 // process. 957 BytesConsumed uint32 `protobuf:"varint,2,opt,name=bytes_consumed,json=bytesConsumed,proto3" json:"bytes_consumed,omitempty"` 958 // This is set iff the handshake was successful. out_frames may still be set 959 // to frames that needs to be forwarded to the peer. 960 Result *HandshakerResult `protobuf:"bytes,3,opt,name=result,proto3" json:"result,omitempty"` 961 // Status of the handshaker. 962 Status *HandshakerStatus `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"` 963 unknownFields protoimpl.UnknownFields 964 sizeCache protoimpl.SizeCache 965 } 966 967 func (x *HandshakerResp) Reset() { 968 *x = HandshakerResp{} 969 mi := &file_grpc_gcp_handshaker_proto_msgTypes[9] 970 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 971 ms.StoreMessageInfo(mi) 972 } 973 974 func (x *HandshakerResp) String() string { 975 return protoimpl.X.MessageStringOf(x) 976 } 977 978 func (*HandshakerResp) ProtoMessage() {} 979 980 func (x *HandshakerResp) ProtoReflect() protoreflect.Message { 981 mi := &file_grpc_gcp_handshaker_proto_msgTypes[9] 982 if x != nil { 983 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 984 if ms.LoadMessageInfo() == nil { 985 ms.StoreMessageInfo(mi) 986 } 987 return ms 988 } 989 return mi.MessageOf(x) 990 } 991 992 // Deprecated: Use HandshakerResp.ProtoReflect.Descriptor instead. 993 func (*HandshakerResp) Descriptor() ([]byte, []int) { 994 return file_grpc_gcp_handshaker_proto_rawDescGZIP(), []int{9} 995 } 996 997 func (x *HandshakerResp) GetOutFrames() []byte { 998 if x != nil { 999 return x.OutFrames 1000 } 1001 return nil 1002 } 1003 1004 func (x *HandshakerResp) GetBytesConsumed() uint32 { 1005 if x != nil { 1006 return x.BytesConsumed 1007 } 1008 return 0 1009 } 1010 1011 func (x *HandshakerResp) GetResult() *HandshakerResult { 1012 if x != nil { 1013 return x.Result 1014 } 1015 return nil 1016 } 1017 1018 func (x *HandshakerResp) GetStatus() *HandshakerStatus { 1019 if x != nil { 1020 return x.Status 1021 } 1022 return nil 1023 } 1024 1025 var File_grpc_gcp_handshaker_proto protoreflect.FileDescriptor 1026 1027 var file_grpc_gcp_handshaker_proto_rawDesc = string([]byte{ 1028 0x0a, 0x19, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x67, 0x63, 0x70, 0x2f, 0x68, 0x61, 0x6e, 0x64, 0x73, 1029 0x68, 0x61, 0x6b, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x67, 0x72, 0x70, 1030 0x63, 0x2e, 0x67, 0x63, 0x70, 0x1a, 0x28, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x67, 0x63, 0x70, 0x2f, 1031 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 1032 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 1033 0x74, 0x0a, 0x08, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 1034 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 1035 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 1036 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x35, 1037 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 1038 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x4e, 0x65, 0x74, 0x77, 1039 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 1040 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xe8, 0x01, 0x0a, 0x08, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 1041 0x74, 0x79, 0x12, 0x29, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 1042 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x73, 1043 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 1044 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 1045 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0a, 0x61, 1046 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 1047 0x22, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 1048 0x69, 0x74, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 1049 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 1050 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 1051 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 1052 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 1053 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x10, 1054 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 1055 0x22, 0xfb, 0x04, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 1056 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x12, 0x5b, 0x0a, 0x1b, 1057 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 1058 0x74, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 1059 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x48, 0x61, 0x6e, 1060 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x19, 1061 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 1062 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x33, 0x0a, 0x15, 0x61, 0x70, 0x70, 1063 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 1064 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 1065 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x29, 1066 0x0a, 0x10, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 1067 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 1068 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x3f, 0x0a, 0x11, 0x74, 0x61, 0x72, 1069 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 1070 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 1071 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 1072 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0e, 0x6c, 0x6f, 1073 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 1074 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x49, 0x64, 1075 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x65, 1076 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x39, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x65, 1077 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 1078 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 1079 0x74, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 1080 0x12, 0x3b, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 1081 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 1082 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0e, 0x72, 1083 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 1084 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 1085 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 1086 0x0a, 0x0c, 0x72, 0x70, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 1087 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 1088 0x52, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 1089 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x72, 0x70, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 1090 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x69, 1091 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x46, 0x72, 0x61, 1092 0x6d, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 1093 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0x80, 0x01, 1094 0x01, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xaf, 1095 0x01, 0x0a, 0x19, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 1096 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x29, 0x0a, 0x10, 1097 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 1098 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x72, 1099 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x3d, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 1100 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 1101 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x49, 0x64, 0x65, 1102 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x65, 0x6e, 1103 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 1104 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0x80, 0x01, 0x01, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 1105 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 1106 0x22, 0xa5, 0x04, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 1107 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x15, 1108 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 1109 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x70, 0x70, 1110 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 1111 0x73, 0x12, 0x6d, 0x0a, 0x14, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x5f, 0x70, 1112 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 1113 0x3a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 1114 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x52, 1115 0x65, 0x71, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 1116 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x68, 0x61, 0x6e, 1117 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 1118 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 1119 0x28, 0x0c, 0x52, 0x07, 0x69, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0e, 0x6c, 1120 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 1121 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x45, 1122 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x45, 0x6e, 1123 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 1124 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 1125 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 1126 0x69, 0x6e, 0x74, 0x52, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 1127 0x69, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0c, 0x72, 0x70, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 1128 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x70, 0x63, 1129 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x52, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 1130 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x72, 0x70, 0x63, 0x56, 0x65, 0x72, 1131 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x72, 0x61, 1132 0x6d, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 1133 0x61, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x6b, 0x0a, 0x18, 0x48, 1134 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 1135 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 1136 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 1137 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 1138 0x67, 0x63, 0x70, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 1139 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x05, 0x76, 1140 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x62, 0x0a, 0x17, 0x4e, 0x65, 0x78, 0x74, 1141 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 1142 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 1143 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x69, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2c, 1144 0x0a, 0x12, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 1145 0x79, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6e, 0x65, 0x74, 0x77, 1146 0x6f, 0x72, 0x6b, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x22, 0xe5, 0x01, 0x0a, 1147 0x0d, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x46, 1148 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 1149 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 1150 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x73, 1151 0x68, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 1152 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x46, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 1153 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 1154 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x72, 1155 0x76, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x48, 1156 0x00, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x37, 1157 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 1158 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x61, 0x6e, 0x64, 1159 0x73, 0x68, 0x61, 0x6b, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x48, 1160 0x00, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x5f, 0x6f, 1161 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x9a, 0x03, 0x0a, 0x10, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 1162 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x31, 0x0a, 0x14, 0x61, 0x70, 0x70, 1163 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 1164 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 1165 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 1166 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 1167 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x50, 0x72, 0x6f, 1168 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x64, 0x61, 0x74, 1169 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 1170 0x12, 0x37, 0x0a, 0x0d, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 1171 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 1172 0x63, 0x70, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x70, 0x65, 0x65, 1173 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x39, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 1174 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 1175 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x49, 0x64, 0x65, 1176 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x65, 0x6e, 1177 0x74, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x63, 0x68, 0x61, 1178 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 1179 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 1180 0x12, 0x49, 0x0a, 0x11, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x76, 0x65, 0x72, 1181 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x72, 1182 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x52, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 1183 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0f, 0x70, 0x65, 0x65, 0x72, 1184 0x52, 0x70, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 1185 0x61, 0x78, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 1186 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x7a, 1187 0x65, 0x22, 0x40, 0x0a, 0x10, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x72, 0x53, 1188 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 1189 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 1190 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 1191 0x69, 0x6c, 0x73, 0x22, 0xbe, 0x01, 0x0a, 0x0e, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 1192 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x72, 1193 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6f, 0x75, 0x74, 0x46, 1194 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 1195 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x62, 1196 0x79, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x06, 1197 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 1198 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 1199 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 1200 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 1201 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x48, 0x61, 0x6e, 0x64, 1202 0x73, 0x68, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 1203 0x61, 0x74, 0x75, 0x73, 0x2a, 0x4a, 0x0a, 0x11, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 1204 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x22, 0x0a, 0x1e, 0x48, 0x41, 0x4e, 1205 0x44, 0x53, 0x48, 0x41, 0x4b, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 1206 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 1207 0x03, 0x54, 0x4c, 0x53, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x4c, 0x54, 0x53, 0x10, 0x02, 1208 0x2a, 0x45, 0x0a, 0x0f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 1209 0x63, 0x6f, 0x6c, 0x12, 0x20, 0x0a, 0x1c, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x50, 1210 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 1211 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x43, 0x50, 0x10, 0x01, 0x12, 0x07, 1212 0x0a, 0x03, 0x55, 0x44, 0x50, 0x10, 0x02, 0x32, 0x5b, 0x0a, 0x11, 0x48, 0x61, 0x6e, 0x64, 0x73, 1213 0x68, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x46, 0x0a, 0x0b, 1214 0x44, 0x6f, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x12, 0x17, 0x2e, 0x67, 0x72, 1215 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 1216 0x72, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x63, 0x70, 0x2e, 1217 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 1218 0x28, 0x01, 0x30, 0x01, 0x42, 0x6b, 0x0a, 0x15, 0x69, 0x6f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 1219 0x61, 0x6c, 0x74, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x42, 0x0f, 0x48, 1220 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 1221 0x5a, 0x3f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 1222 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 1223 0x69, 0x61, 0x6c, 0x73, 0x2f, 0x61, 0x6c, 0x74, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 1224 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x67, 0x63, 1225 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1226 }) 1227 1228 var ( 1229 file_grpc_gcp_handshaker_proto_rawDescOnce sync.Once 1230 file_grpc_gcp_handshaker_proto_rawDescData []byte 1231 ) 1232 1233 func file_grpc_gcp_handshaker_proto_rawDescGZIP() []byte { 1234 file_grpc_gcp_handshaker_proto_rawDescOnce.Do(func() { 1235 file_grpc_gcp_handshaker_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_grpc_gcp_handshaker_proto_rawDesc), len(file_grpc_gcp_handshaker_proto_rawDesc))) 1236 }) 1237 return file_grpc_gcp_handshaker_proto_rawDescData 1238 } 1239 1240 var file_grpc_gcp_handshaker_proto_enumTypes = make([]protoimpl.EnumInfo, 2) 1241 var file_grpc_gcp_handshaker_proto_msgTypes = make([]protoimpl.MessageInfo, 12) 1242 var file_grpc_gcp_handshaker_proto_goTypes = []any{ 1243 (HandshakeProtocol)(0), // 0: grpc.gcp.HandshakeProtocol 1244 (NetworkProtocol)(0), // 1: grpc.gcp.NetworkProtocol 1245 (*Endpoint)(nil), // 2: grpc.gcp.Endpoint 1246 (*Identity)(nil), // 3: grpc.gcp.Identity 1247 (*StartClientHandshakeReq)(nil), // 4: grpc.gcp.StartClientHandshakeReq 1248 (*ServerHandshakeParameters)(nil), // 5: grpc.gcp.ServerHandshakeParameters 1249 (*StartServerHandshakeReq)(nil), // 6: grpc.gcp.StartServerHandshakeReq 1250 (*NextHandshakeMessageReq)(nil), // 7: grpc.gcp.NextHandshakeMessageReq 1251 (*HandshakerReq)(nil), // 8: grpc.gcp.HandshakerReq 1252 (*HandshakerResult)(nil), // 9: grpc.gcp.HandshakerResult 1253 (*HandshakerStatus)(nil), // 10: grpc.gcp.HandshakerStatus 1254 (*HandshakerResp)(nil), // 11: grpc.gcp.HandshakerResp 1255 nil, // 12: grpc.gcp.Identity.AttributesEntry 1256 nil, // 13: grpc.gcp.StartServerHandshakeReq.HandshakeParametersEntry 1257 (*RpcProtocolVersions)(nil), // 14: grpc.gcp.RpcProtocolVersions 1258 } 1259 var file_grpc_gcp_handshaker_proto_depIdxs = []int32{ 1260 1, // 0: grpc.gcp.Endpoint.protocol:type_name -> grpc.gcp.NetworkProtocol 1261 12, // 1: grpc.gcp.Identity.attributes:type_name -> grpc.gcp.Identity.AttributesEntry 1262 0, // 2: grpc.gcp.StartClientHandshakeReq.handshake_security_protocol:type_name -> grpc.gcp.HandshakeProtocol 1263 3, // 3: grpc.gcp.StartClientHandshakeReq.target_identities:type_name -> grpc.gcp.Identity 1264 3, // 4: grpc.gcp.StartClientHandshakeReq.local_identity:type_name -> grpc.gcp.Identity 1265 2, // 5: grpc.gcp.StartClientHandshakeReq.local_endpoint:type_name -> grpc.gcp.Endpoint 1266 2, // 6: grpc.gcp.StartClientHandshakeReq.remote_endpoint:type_name -> grpc.gcp.Endpoint 1267 14, // 7: grpc.gcp.StartClientHandshakeReq.rpc_versions:type_name -> grpc.gcp.RpcProtocolVersions 1268 3, // 8: grpc.gcp.ServerHandshakeParameters.local_identities:type_name -> grpc.gcp.Identity 1269 13, // 9: grpc.gcp.StartServerHandshakeReq.handshake_parameters:type_name -> grpc.gcp.StartServerHandshakeReq.HandshakeParametersEntry 1270 2, // 10: grpc.gcp.StartServerHandshakeReq.local_endpoint:type_name -> grpc.gcp.Endpoint 1271 2, // 11: grpc.gcp.StartServerHandshakeReq.remote_endpoint:type_name -> grpc.gcp.Endpoint 1272 14, // 12: grpc.gcp.StartServerHandshakeReq.rpc_versions:type_name -> grpc.gcp.RpcProtocolVersions 1273 4, // 13: grpc.gcp.HandshakerReq.client_start:type_name -> grpc.gcp.StartClientHandshakeReq 1274 6, // 14: grpc.gcp.HandshakerReq.server_start:type_name -> grpc.gcp.StartServerHandshakeReq 1275 7, // 15: grpc.gcp.HandshakerReq.next:type_name -> grpc.gcp.NextHandshakeMessageReq 1276 3, // 16: grpc.gcp.HandshakerResult.peer_identity:type_name -> grpc.gcp.Identity 1277 3, // 17: grpc.gcp.HandshakerResult.local_identity:type_name -> grpc.gcp.Identity 1278 14, // 18: grpc.gcp.HandshakerResult.peer_rpc_versions:type_name -> grpc.gcp.RpcProtocolVersions 1279 9, // 19: grpc.gcp.HandshakerResp.result:type_name -> grpc.gcp.HandshakerResult 1280 10, // 20: grpc.gcp.HandshakerResp.status:type_name -> grpc.gcp.HandshakerStatus 1281 5, // 21: grpc.gcp.StartServerHandshakeReq.HandshakeParametersEntry.value:type_name -> grpc.gcp.ServerHandshakeParameters 1282 8, // 22: grpc.gcp.HandshakerService.DoHandshake:input_type -> grpc.gcp.HandshakerReq 1283 11, // 23: grpc.gcp.HandshakerService.DoHandshake:output_type -> grpc.gcp.HandshakerResp 1284 23, // [23:24] is the sub-list for method output_type 1285 22, // [22:23] is the sub-list for method input_type 1286 22, // [22:22] is the sub-list for extension type_name 1287 22, // [22:22] is the sub-list for extension extendee 1288 0, // [0:22] is the sub-list for field type_name 1289 } 1290 1291 func init() { file_grpc_gcp_handshaker_proto_init() } 1292 func file_grpc_gcp_handshaker_proto_init() { 1293 if File_grpc_gcp_handshaker_proto != nil { 1294 return 1295 } 1296 file_grpc_gcp_transport_security_common_proto_init() 1297 file_grpc_gcp_handshaker_proto_msgTypes[1].OneofWrappers = []any{ 1298 (*Identity_ServiceAccount)(nil), 1299 (*Identity_Hostname)(nil), 1300 } 1301 file_grpc_gcp_handshaker_proto_msgTypes[3].OneofWrappers = []any{} 1302 file_grpc_gcp_handshaker_proto_msgTypes[6].OneofWrappers = []any{ 1303 (*HandshakerReq_ClientStart)(nil), 1304 (*HandshakerReq_ServerStart)(nil), 1305 (*HandshakerReq_Next)(nil), 1306 } 1307 type x struct{} 1308 out := protoimpl.TypeBuilder{ 1309 File: protoimpl.DescBuilder{ 1310 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1311 RawDescriptor: unsafe.Slice(unsafe.StringData(file_grpc_gcp_handshaker_proto_rawDesc), len(file_grpc_gcp_handshaker_proto_rawDesc)), 1312 NumEnums: 2, 1313 NumMessages: 12, 1314 NumExtensions: 0, 1315 NumServices: 1, 1316 }, 1317 GoTypes: file_grpc_gcp_handshaker_proto_goTypes, 1318 DependencyIndexes: file_grpc_gcp_handshaker_proto_depIdxs, 1319 EnumInfos: file_grpc_gcp_handshaker_proto_enumTypes, 1320 MessageInfos: file_grpc_gcp_handshaker_proto_msgTypes, 1321 }.Build() 1322 File_grpc_gcp_handshaker_proto = out.File 1323 file_grpc_gcp_handshaker_proto_goTypes = nil 1324 file_grpc_gcp_handshaker_proto_depIdxs = nil 1325 }