s2a.pb.go

   1// Copyright 2021 Google LLC
   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//    https://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// Code generated by protoc-gen-go. DO NOT EDIT.
  16// versions:
  17// 	protoc-gen-go v1.34.2
  18// 	protoc        v3.21.12
  19// source: internal/proto/s2a/s2a.proto
  20
  21package s2a_go_proto
  22
  23import (
  24	common_go_proto "github.com/google/s2a-go/internal/proto/common_go_proto"
  25	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
  26	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
  27	reflect "reflect"
  28	sync "sync"
  29)
  30
  31const (
  32	// Verify that this generated code is sufficiently up-to-date.
  33	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
  34	// Verify that runtime/protoimpl is sufficiently up-to-date.
  35	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
  36)
  37
  38type AuthenticationMechanism struct {
  39	state         protoimpl.MessageState
  40	sizeCache     protoimpl.SizeCache
  41	unknownFields protoimpl.UnknownFields
  42
  43	// (Optional) Application may specify an identity associated to an
  44	// authentication mechanism. Otherwise, S2A assumes that the authentication
  45	// mechanism is associated with the default identity. If the default identity
  46	// cannot be determined, session setup fails.
  47	Identity *common_go_proto.Identity `protobuf:"bytes,1,opt,name=identity,proto3" json:"identity,omitempty"`
  48	// Types that are assignable to MechanismOneof:
  49	//
  50	//	*AuthenticationMechanism_Token
  51	MechanismOneof isAuthenticationMechanism_MechanismOneof `protobuf_oneof:"mechanism_oneof"`
  52}
  53
  54func (x *AuthenticationMechanism) Reset() {
  55	*x = AuthenticationMechanism{}
  56	if protoimpl.UnsafeEnabled {
  57		mi := &file_internal_proto_s2a_s2a_proto_msgTypes[0]
  58		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  59		ms.StoreMessageInfo(mi)
  60	}
  61}
  62
  63func (x *AuthenticationMechanism) String() string {
  64	return protoimpl.X.MessageStringOf(x)
  65}
  66
  67func (*AuthenticationMechanism) ProtoMessage() {}
  68
  69func (x *AuthenticationMechanism) ProtoReflect() protoreflect.Message {
  70	mi := &file_internal_proto_s2a_s2a_proto_msgTypes[0]
  71	if protoimpl.UnsafeEnabled && x != nil {
  72		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  73		if ms.LoadMessageInfo() == nil {
  74			ms.StoreMessageInfo(mi)
  75		}
  76		return ms
  77	}
  78	return mi.MessageOf(x)
  79}
  80
  81// Deprecated: Use AuthenticationMechanism.ProtoReflect.Descriptor instead.
  82func (*AuthenticationMechanism) Descriptor() ([]byte, []int) {
  83	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{0}
  84}
  85
  86func (x *AuthenticationMechanism) GetIdentity() *common_go_proto.Identity {
  87	if x != nil {
  88		return x.Identity
  89	}
  90	return nil
  91}
  92
  93func (m *AuthenticationMechanism) GetMechanismOneof() isAuthenticationMechanism_MechanismOneof {
  94	if m != nil {
  95		return m.MechanismOneof
  96	}
  97	return nil
  98}
  99
 100func (x *AuthenticationMechanism) GetToken() string {
 101	if x, ok := x.GetMechanismOneof().(*AuthenticationMechanism_Token); ok {
 102		return x.Token
 103	}
 104	return ""
 105}
 106
 107type isAuthenticationMechanism_MechanismOneof interface {
 108	isAuthenticationMechanism_MechanismOneof()
 109}
 110
 111type AuthenticationMechanism_Token struct {
 112	// A token that the application uses to authenticate itself to the S2A.
 113	Token string `protobuf:"bytes,2,opt,name=token,proto3,oneof"`
 114}
 115
 116func (*AuthenticationMechanism_Token) isAuthenticationMechanism_MechanismOneof() {}
 117
 118type ClientSessionStartReq struct {
 119	state         protoimpl.MessageState
 120	sizeCache     protoimpl.SizeCache
 121	unknownFields protoimpl.UnknownFields
 122
 123	// The application protocols supported by the client, e.g., "grpc".
 124	ApplicationProtocols []string `protobuf:"bytes,1,rep,name=application_protocols,json=applicationProtocols,proto3" json:"application_protocols,omitempty"`
 125	// (Optional) The minimum TLS version number that the S2A's handshaker module
 126	// will use to set up the session. If this field is not provided, S2A will use
 127	// the minimum version it supports.
 128	MinTlsVersion common_go_proto.TLSVersion `protobuf:"varint,2,opt,name=min_tls_version,json=minTlsVersion,proto3,enum=s2a.proto.TLSVersion" json:"min_tls_version,omitempty"`
 129	// (Optional) The maximum TLS version number that the S2A's handshaker module
 130	// will use to set up the session. If this field is not provided, S2A will use
 131	// the maximum version it supports.
 132	MaxTlsVersion common_go_proto.TLSVersion `protobuf:"varint,3,opt,name=max_tls_version,json=maxTlsVersion,proto3,enum=s2a.proto.TLSVersion" json:"max_tls_version,omitempty"`
 133	// The TLS ciphersuites that the client is willing to support.
 134	TlsCiphersuites []common_go_proto.Ciphersuite `protobuf:"varint,4,rep,packed,name=tls_ciphersuites,json=tlsCiphersuites,proto3,enum=s2a.proto.Ciphersuite" json:"tls_ciphersuites,omitempty"`
 135	// (Optional) Describes which server identities are acceptable by the client.
 136	// If target identities are provided and none of them matches the peer
 137	// identity of the server, session setup fails.
 138	TargetIdentities []*common_go_proto.Identity `protobuf:"bytes,5,rep,name=target_identities,json=targetIdentities,proto3" json:"target_identities,omitempty"`
 139	// (Optional) Application may specify a local identity. Otherwise, S2A chooses
 140	// the default local identity. If the default identity cannot be determined,
 141	// session setup fails.
 142	LocalIdentity *common_go_proto.Identity `protobuf:"bytes,6,opt,name=local_identity,json=localIdentity,proto3" json:"local_identity,omitempty"`
 143	// The target name that is used by S2A to configure SNI in the TLS handshake.
 144	// It is also used to perform server authorization check if avaiable. This
 145	// check is intended to verify that the peer authenticated identity is
 146	// authorized to run a service with the target name.
 147	// This field MUST only contain the host portion of the server address. It
 148	// MUST not contain the scheme or the port number. For example, if the server
 149	// address is dns://www.example.com:443, the value of this field should be
 150	// set to www.example.com.
 151	TargetName string `protobuf:"bytes,7,opt,name=target_name,json=targetName,proto3" json:"target_name,omitempty"`
 152}
 153
 154func (x *ClientSessionStartReq) Reset() {
 155	*x = ClientSessionStartReq{}
 156	if protoimpl.UnsafeEnabled {
 157		mi := &file_internal_proto_s2a_s2a_proto_msgTypes[1]
 158		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 159		ms.StoreMessageInfo(mi)
 160	}
 161}
 162
 163func (x *ClientSessionStartReq) String() string {
 164	return protoimpl.X.MessageStringOf(x)
 165}
 166
 167func (*ClientSessionStartReq) ProtoMessage() {}
 168
 169func (x *ClientSessionStartReq) ProtoReflect() protoreflect.Message {
 170	mi := &file_internal_proto_s2a_s2a_proto_msgTypes[1]
 171	if protoimpl.UnsafeEnabled && x != nil {
 172		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 173		if ms.LoadMessageInfo() == nil {
 174			ms.StoreMessageInfo(mi)
 175		}
 176		return ms
 177	}
 178	return mi.MessageOf(x)
 179}
 180
 181// Deprecated: Use ClientSessionStartReq.ProtoReflect.Descriptor instead.
 182func (*ClientSessionStartReq) Descriptor() ([]byte, []int) {
 183	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{1}
 184}
 185
 186func (x *ClientSessionStartReq) GetApplicationProtocols() []string {
 187	if x != nil {
 188		return x.ApplicationProtocols
 189	}
 190	return nil
 191}
 192
 193func (x *ClientSessionStartReq) GetMinTlsVersion() common_go_proto.TLSVersion {
 194	if x != nil {
 195		return x.MinTlsVersion
 196	}
 197	return common_go_proto.TLSVersion(0)
 198}
 199
 200func (x *ClientSessionStartReq) GetMaxTlsVersion() common_go_proto.TLSVersion {
 201	if x != nil {
 202		return x.MaxTlsVersion
 203	}
 204	return common_go_proto.TLSVersion(0)
 205}
 206
 207func (x *ClientSessionStartReq) GetTlsCiphersuites() []common_go_proto.Ciphersuite {
 208	if x != nil {
 209		return x.TlsCiphersuites
 210	}
 211	return nil
 212}
 213
 214func (x *ClientSessionStartReq) GetTargetIdentities() []*common_go_proto.Identity {
 215	if x != nil {
 216		return x.TargetIdentities
 217	}
 218	return nil
 219}
 220
 221func (x *ClientSessionStartReq) GetLocalIdentity() *common_go_proto.Identity {
 222	if x != nil {
 223		return x.LocalIdentity
 224	}
 225	return nil
 226}
 227
 228func (x *ClientSessionStartReq) GetTargetName() string {
 229	if x != nil {
 230		return x.TargetName
 231	}
 232	return ""
 233}
 234
 235type ServerSessionStartReq struct {
 236	state         protoimpl.MessageState
 237	sizeCache     protoimpl.SizeCache
 238	unknownFields protoimpl.UnknownFields
 239
 240	// The application protocols supported by the server, e.g., "grpc".
 241	ApplicationProtocols []string `protobuf:"bytes,1,rep,name=application_protocols,json=applicationProtocols,proto3" json:"application_protocols,omitempty"`
 242	// (Optional) The minimum TLS version number that the S2A's handshaker module
 243	// will use to set up the session. If this field is not provided, S2A will use
 244	// the minimum version it supports.
 245	MinTlsVersion common_go_proto.TLSVersion `protobuf:"varint,2,opt,name=min_tls_version,json=minTlsVersion,proto3,enum=s2a.proto.TLSVersion" json:"min_tls_version,omitempty"`
 246	// (Optional) The maximum TLS version number that the S2A's handshaker module
 247	// will use to set up the session. If this field is not provided, S2A will use
 248	// the maximum version it supports.
 249	MaxTlsVersion common_go_proto.TLSVersion `protobuf:"varint,3,opt,name=max_tls_version,json=maxTlsVersion,proto3,enum=s2a.proto.TLSVersion" json:"max_tls_version,omitempty"`
 250	// The TLS ciphersuites that the server is willing to support.
 251	TlsCiphersuites []common_go_proto.Ciphersuite `protobuf:"varint,4,rep,packed,name=tls_ciphersuites,json=tlsCiphersuites,proto3,enum=s2a.proto.Ciphersuite" json:"tls_ciphersuites,omitempty"`
 252	// (Optional) A list of local identities supported by the server, if
 253	// specified. Otherwise, S2A chooses the default local identity. If the
 254	// default identity cannot be determined, session setup fails.
 255	LocalIdentities []*common_go_proto.Identity `protobuf:"bytes,5,rep,name=local_identities,json=localIdentities,proto3" json:"local_identities,omitempty"`
 256	// The byte representation of the first handshake message received from the
 257	// client peer. It is possible that this first message is split into multiple
 258	// chunks. In this case, the first chunk is sent using this field and the
 259	// following chunks are sent using the in_bytes field of SessionNextReq
 260	// Specifically, if the client peer is using S2A, this field contains the
 261	// bytes in the out_frames field of SessionResp message that the client peer
 262	// received from its S2A after initiating the handshake.
 263	InBytes []byte `protobuf:"bytes,6,opt,name=in_bytes,json=inBytes,proto3" json:"in_bytes,omitempty"`
 264}
 265
 266func (x *ServerSessionStartReq) Reset() {
 267	*x = ServerSessionStartReq{}
 268	if protoimpl.UnsafeEnabled {
 269		mi := &file_internal_proto_s2a_s2a_proto_msgTypes[2]
 270		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 271		ms.StoreMessageInfo(mi)
 272	}
 273}
 274
 275func (x *ServerSessionStartReq) String() string {
 276	return protoimpl.X.MessageStringOf(x)
 277}
 278
 279func (*ServerSessionStartReq) ProtoMessage() {}
 280
 281func (x *ServerSessionStartReq) ProtoReflect() protoreflect.Message {
 282	mi := &file_internal_proto_s2a_s2a_proto_msgTypes[2]
 283	if protoimpl.UnsafeEnabled && x != nil {
 284		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 285		if ms.LoadMessageInfo() == nil {
 286			ms.StoreMessageInfo(mi)
 287		}
 288		return ms
 289	}
 290	return mi.MessageOf(x)
 291}
 292
 293// Deprecated: Use ServerSessionStartReq.ProtoReflect.Descriptor instead.
 294func (*ServerSessionStartReq) Descriptor() ([]byte, []int) {
 295	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{2}
 296}
 297
 298func (x *ServerSessionStartReq) GetApplicationProtocols() []string {
 299	if x != nil {
 300		return x.ApplicationProtocols
 301	}
 302	return nil
 303}
 304
 305func (x *ServerSessionStartReq) GetMinTlsVersion() common_go_proto.TLSVersion {
 306	if x != nil {
 307		return x.MinTlsVersion
 308	}
 309	return common_go_proto.TLSVersion(0)
 310}
 311
 312func (x *ServerSessionStartReq) GetMaxTlsVersion() common_go_proto.TLSVersion {
 313	if x != nil {
 314		return x.MaxTlsVersion
 315	}
 316	return common_go_proto.TLSVersion(0)
 317}
 318
 319func (x *ServerSessionStartReq) GetTlsCiphersuites() []common_go_proto.Ciphersuite {
 320	if x != nil {
 321		return x.TlsCiphersuites
 322	}
 323	return nil
 324}
 325
 326func (x *ServerSessionStartReq) GetLocalIdentities() []*common_go_proto.Identity {
 327	if x != nil {
 328		return x.LocalIdentities
 329	}
 330	return nil
 331}
 332
 333func (x *ServerSessionStartReq) GetInBytes() []byte {
 334	if x != nil {
 335		return x.InBytes
 336	}
 337	return nil
 338}
 339
 340type SessionNextReq struct {
 341	state         protoimpl.MessageState
 342	sizeCache     protoimpl.SizeCache
 343	unknownFields protoimpl.UnknownFields
 344
 345	// The byte representation of session setup, i.e., handshake messages.
 346	// Specifically:
 347	//   - All handshake messages sent from the server to the client.
 348	//   - All, except for the first, handshake messages sent from the client to
 349	//     the server. Note that the first message is communicated to S2A using the
 350	//     in_bytes field of ServerSessionStartReq.
 351	//
 352	// If the peer is using S2A, this field contains the bytes in the out_frames
 353	// field of SessionResp message that the peer received from its S2A.
 354	InBytes []byte `protobuf:"bytes,1,opt,name=in_bytes,json=inBytes,proto3" json:"in_bytes,omitempty"`
 355}
 356
 357func (x *SessionNextReq) Reset() {
 358	*x = SessionNextReq{}
 359	if protoimpl.UnsafeEnabled {
 360		mi := &file_internal_proto_s2a_s2a_proto_msgTypes[3]
 361		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 362		ms.StoreMessageInfo(mi)
 363	}
 364}
 365
 366func (x *SessionNextReq) String() string {
 367	return protoimpl.X.MessageStringOf(x)
 368}
 369
 370func (*SessionNextReq) ProtoMessage() {}
 371
 372func (x *SessionNextReq) ProtoReflect() protoreflect.Message {
 373	mi := &file_internal_proto_s2a_s2a_proto_msgTypes[3]
 374	if protoimpl.UnsafeEnabled && x != nil {
 375		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 376		if ms.LoadMessageInfo() == nil {
 377			ms.StoreMessageInfo(mi)
 378		}
 379		return ms
 380	}
 381	return mi.MessageOf(x)
 382}
 383
 384// Deprecated: Use SessionNextReq.ProtoReflect.Descriptor instead.
 385func (*SessionNextReq) Descriptor() ([]byte, []int) {
 386	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{3}
 387}
 388
 389func (x *SessionNextReq) GetInBytes() []byte {
 390	if x != nil {
 391		return x.InBytes
 392	}
 393	return nil
 394}
 395
 396type ResumptionTicketReq struct {
 397	state         protoimpl.MessageState
 398	sizeCache     protoimpl.SizeCache
 399	unknownFields protoimpl.UnknownFields
 400
 401	// The byte representation of a NewSessionTicket message received from the
 402	// server.
 403	InBytes [][]byte `protobuf:"bytes,1,rep,name=in_bytes,json=inBytes,proto3" json:"in_bytes,omitempty"`
 404	// A connection identifier that was created and sent by S2A at the end of a
 405	// handshake.
 406	ConnectionId uint64 `protobuf:"varint,2,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"`
 407	// The local identity that was used by S2A during session setup and included
 408	// in |SessionResult|.
 409	LocalIdentity *common_go_proto.Identity `protobuf:"bytes,3,opt,name=local_identity,json=localIdentity,proto3" json:"local_identity,omitempty"`
 410}
 411
 412func (x *ResumptionTicketReq) Reset() {
 413	*x = ResumptionTicketReq{}
 414	if protoimpl.UnsafeEnabled {
 415		mi := &file_internal_proto_s2a_s2a_proto_msgTypes[4]
 416		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 417		ms.StoreMessageInfo(mi)
 418	}
 419}
 420
 421func (x *ResumptionTicketReq) String() string {
 422	return protoimpl.X.MessageStringOf(x)
 423}
 424
 425func (*ResumptionTicketReq) ProtoMessage() {}
 426
 427func (x *ResumptionTicketReq) ProtoReflect() protoreflect.Message {
 428	mi := &file_internal_proto_s2a_s2a_proto_msgTypes[4]
 429	if protoimpl.UnsafeEnabled && x != nil {
 430		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 431		if ms.LoadMessageInfo() == nil {
 432			ms.StoreMessageInfo(mi)
 433		}
 434		return ms
 435	}
 436	return mi.MessageOf(x)
 437}
 438
 439// Deprecated: Use ResumptionTicketReq.ProtoReflect.Descriptor instead.
 440func (*ResumptionTicketReq) Descriptor() ([]byte, []int) {
 441	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{4}
 442}
 443
 444func (x *ResumptionTicketReq) GetInBytes() [][]byte {
 445	if x != nil {
 446		return x.InBytes
 447	}
 448	return nil
 449}
 450
 451func (x *ResumptionTicketReq) GetConnectionId() uint64 {
 452	if x != nil {
 453		return x.ConnectionId
 454	}
 455	return 0
 456}
 457
 458func (x *ResumptionTicketReq) GetLocalIdentity() *common_go_proto.Identity {
 459	if x != nil {
 460		return x.LocalIdentity
 461	}
 462	return nil
 463}
 464
 465type SessionReq struct {
 466	state         protoimpl.MessageState
 467	sizeCache     protoimpl.SizeCache
 468	unknownFields protoimpl.UnknownFields
 469
 470	// Types that are assignable to ReqOneof:
 471	//
 472	//	*SessionReq_ClientStart
 473	//	*SessionReq_ServerStart
 474	//	*SessionReq_Next
 475	//	*SessionReq_ResumptionTicket
 476	ReqOneof isSessionReq_ReqOneof `protobuf_oneof:"req_oneof"`
 477	// (Optional) The authentication mechanisms that the client wishes to use to
 478	// authenticate to the S2A, ordered by preference. The S2A will always use the
 479	// first authentication mechanism that appears in the list and is supported by
 480	// the S2A.
 481	AuthMechanisms []*AuthenticationMechanism `protobuf:"bytes,5,rep,name=auth_mechanisms,json=authMechanisms,proto3" json:"auth_mechanisms,omitempty"`
 482}
 483
 484func (x *SessionReq) Reset() {
 485	*x = SessionReq{}
 486	if protoimpl.UnsafeEnabled {
 487		mi := &file_internal_proto_s2a_s2a_proto_msgTypes[5]
 488		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 489		ms.StoreMessageInfo(mi)
 490	}
 491}
 492
 493func (x *SessionReq) String() string {
 494	return protoimpl.X.MessageStringOf(x)
 495}
 496
 497func (*SessionReq) ProtoMessage() {}
 498
 499func (x *SessionReq) ProtoReflect() protoreflect.Message {
 500	mi := &file_internal_proto_s2a_s2a_proto_msgTypes[5]
 501	if protoimpl.UnsafeEnabled && x != nil {
 502		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 503		if ms.LoadMessageInfo() == nil {
 504			ms.StoreMessageInfo(mi)
 505		}
 506		return ms
 507	}
 508	return mi.MessageOf(x)
 509}
 510
 511// Deprecated: Use SessionReq.ProtoReflect.Descriptor instead.
 512func (*SessionReq) Descriptor() ([]byte, []int) {
 513	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{5}
 514}
 515
 516func (m *SessionReq) GetReqOneof() isSessionReq_ReqOneof {
 517	if m != nil {
 518		return m.ReqOneof
 519	}
 520	return nil
 521}
 522
 523func (x *SessionReq) GetClientStart() *ClientSessionStartReq {
 524	if x, ok := x.GetReqOneof().(*SessionReq_ClientStart); ok {
 525		return x.ClientStart
 526	}
 527	return nil
 528}
 529
 530func (x *SessionReq) GetServerStart() *ServerSessionStartReq {
 531	if x, ok := x.GetReqOneof().(*SessionReq_ServerStart); ok {
 532		return x.ServerStart
 533	}
 534	return nil
 535}
 536
 537func (x *SessionReq) GetNext() *SessionNextReq {
 538	if x, ok := x.GetReqOneof().(*SessionReq_Next); ok {
 539		return x.Next
 540	}
 541	return nil
 542}
 543
 544func (x *SessionReq) GetResumptionTicket() *ResumptionTicketReq {
 545	if x, ok := x.GetReqOneof().(*SessionReq_ResumptionTicket); ok {
 546		return x.ResumptionTicket
 547	}
 548	return nil
 549}
 550
 551func (x *SessionReq) GetAuthMechanisms() []*AuthenticationMechanism {
 552	if x != nil {
 553		return x.AuthMechanisms
 554	}
 555	return nil
 556}
 557
 558type isSessionReq_ReqOneof interface {
 559	isSessionReq_ReqOneof()
 560}
 561
 562type SessionReq_ClientStart struct {
 563	// The client session setup request message.
 564	ClientStart *ClientSessionStartReq `protobuf:"bytes,1,opt,name=client_start,json=clientStart,proto3,oneof"`
 565}
 566
 567type SessionReq_ServerStart struct {
 568	// The server session setup request message.
 569	ServerStart *ServerSessionStartReq `protobuf:"bytes,2,opt,name=server_start,json=serverStart,proto3,oneof"`
 570}
 571
 572type SessionReq_Next struct {
 573	// The next session setup message request message.
 574	Next *SessionNextReq `protobuf:"bytes,3,opt,name=next,proto3,oneof"`
 575}
 576
 577type SessionReq_ResumptionTicket struct {
 578	// The resumption ticket that is received from the server. This message is
 579	// only accepted by S2A if it is running as a client and if it is received
 580	// after session setup is complete. If S2A is running as a server and it
 581	// receives this message, the session is terminated.
 582	ResumptionTicket *ResumptionTicketReq `protobuf:"bytes,4,opt,name=resumption_ticket,json=resumptionTicket,proto3,oneof"`
 583}
 584
 585func (*SessionReq_ClientStart) isSessionReq_ReqOneof() {}
 586
 587func (*SessionReq_ServerStart) isSessionReq_ReqOneof() {}
 588
 589func (*SessionReq_Next) isSessionReq_ReqOneof() {}
 590
 591func (*SessionReq_ResumptionTicket) isSessionReq_ReqOneof() {}
 592
 593type SessionState struct {
 594	state         protoimpl.MessageState
 595	sizeCache     protoimpl.SizeCache
 596	unknownFields protoimpl.UnknownFields
 597
 598	// The TLS version number that the S2A's handshaker module used to set up the
 599	// session.
 600	TlsVersion common_go_proto.TLSVersion `protobuf:"varint,1,opt,name=tls_version,json=tlsVersion,proto3,enum=s2a.proto.TLSVersion" json:"tls_version,omitempty"`
 601	// The TLS ciphersuite negotiated by the S2A's handshaker module.
 602	TlsCiphersuite common_go_proto.Ciphersuite `protobuf:"varint,2,opt,name=tls_ciphersuite,json=tlsCiphersuite,proto3,enum=s2a.proto.Ciphersuite" json:"tls_ciphersuite,omitempty"`
 603	// The sequence number of the next, incoming, TLS record.
 604	InSequence uint64 `protobuf:"varint,3,opt,name=in_sequence,json=inSequence,proto3" json:"in_sequence,omitempty"`
 605	// The sequence number of the next, outgoing, TLS record.
 606	OutSequence uint64 `protobuf:"varint,4,opt,name=out_sequence,json=outSequence,proto3" json:"out_sequence,omitempty"`
 607	// The key for the inbound direction.
 608	InKey []byte `protobuf:"bytes,5,opt,name=in_key,json=inKey,proto3" json:"in_key,omitempty"`
 609	// The key for the outbound direction.
 610	OutKey []byte `protobuf:"bytes,6,opt,name=out_key,json=outKey,proto3" json:"out_key,omitempty"`
 611	// The constant part of the record nonce for the outbound direction.
 612	InFixedNonce []byte `protobuf:"bytes,7,opt,name=in_fixed_nonce,json=inFixedNonce,proto3" json:"in_fixed_nonce,omitempty"`
 613	// The constant part of the record nonce for the inbound direction.
 614	OutFixedNonce []byte `protobuf:"bytes,8,opt,name=out_fixed_nonce,json=outFixedNonce,proto3" json:"out_fixed_nonce,omitempty"`
 615	// A connection identifier that can be provided to S2A to perform operations
 616	// related to this connection. This identifier will be stored by the record
 617	// protocol, and included in the |ResumptionTicketReq| message that is later
 618	// sent back to S2A. This field is set only for client-side connections.
 619	ConnectionId uint64 `protobuf:"varint,9,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"`
 620	// Set to true if a cached session was reused to do an abbreviated handshake.
 621	IsHandshakeResumed bool `protobuf:"varint,10,opt,name=is_handshake_resumed,json=isHandshakeResumed,proto3" json:"is_handshake_resumed,omitempty"`
 622}
 623
 624func (x *SessionState) Reset() {
 625	*x = SessionState{}
 626	if protoimpl.UnsafeEnabled {
 627		mi := &file_internal_proto_s2a_s2a_proto_msgTypes[6]
 628		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 629		ms.StoreMessageInfo(mi)
 630	}
 631}
 632
 633func (x *SessionState) String() string {
 634	return protoimpl.X.MessageStringOf(x)
 635}
 636
 637func (*SessionState) ProtoMessage() {}
 638
 639func (x *SessionState) ProtoReflect() protoreflect.Message {
 640	mi := &file_internal_proto_s2a_s2a_proto_msgTypes[6]
 641	if protoimpl.UnsafeEnabled && x != nil {
 642		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 643		if ms.LoadMessageInfo() == nil {
 644			ms.StoreMessageInfo(mi)
 645		}
 646		return ms
 647	}
 648	return mi.MessageOf(x)
 649}
 650
 651// Deprecated: Use SessionState.ProtoReflect.Descriptor instead.
 652func (*SessionState) Descriptor() ([]byte, []int) {
 653	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{6}
 654}
 655
 656func (x *SessionState) GetTlsVersion() common_go_proto.TLSVersion {
 657	if x != nil {
 658		return x.TlsVersion
 659	}
 660	return common_go_proto.TLSVersion(0)
 661}
 662
 663func (x *SessionState) GetTlsCiphersuite() common_go_proto.Ciphersuite {
 664	if x != nil {
 665		return x.TlsCiphersuite
 666	}
 667	return common_go_proto.Ciphersuite(0)
 668}
 669
 670func (x *SessionState) GetInSequence() uint64 {
 671	if x != nil {
 672		return x.InSequence
 673	}
 674	return 0
 675}
 676
 677func (x *SessionState) GetOutSequence() uint64 {
 678	if x != nil {
 679		return x.OutSequence
 680	}
 681	return 0
 682}
 683
 684func (x *SessionState) GetInKey() []byte {
 685	if x != nil {
 686		return x.InKey
 687	}
 688	return nil
 689}
 690
 691func (x *SessionState) GetOutKey() []byte {
 692	if x != nil {
 693		return x.OutKey
 694	}
 695	return nil
 696}
 697
 698func (x *SessionState) GetInFixedNonce() []byte {
 699	if x != nil {
 700		return x.InFixedNonce
 701	}
 702	return nil
 703}
 704
 705func (x *SessionState) GetOutFixedNonce() []byte {
 706	if x != nil {
 707		return x.OutFixedNonce
 708	}
 709	return nil
 710}
 711
 712func (x *SessionState) GetConnectionId() uint64 {
 713	if x != nil {
 714		return x.ConnectionId
 715	}
 716	return 0
 717}
 718
 719func (x *SessionState) GetIsHandshakeResumed() bool {
 720	if x != nil {
 721		return x.IsHandshakeResumed
 722	}
 723	return false
 724}
 725
 726type SessionResult struct {
 727	state         protoimpl.MessageState
 728	sizeCache     protoimpl.SizeCache
 729	unknownFields protoimpl.UnknownFields
 730
 731	// The application protocol negotiated for this session.
 732	ApplicationProtocol string `protobuf:"bytes,1,opt,name=application_protocol,json=applicationProtocol,proto3" json:"application_protocol,omitempty"`
 733	// The session state at the end. This state contains all cryptographic
 734	// material required to initialize the record protocol object.
 735	State *SessionState `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
 736	// The authenticated identity of the peer.
 737	PeerIdentity *common_go_proto.Identity `protobuf:"bytes,4,opt,name=peer_identity,json=peerIdentity,proto3" json:"peer_identity,omitempty"`
 738	// The local identity used during session setup. This could be:
 739	//   - The local identity that the client specifies in ClientSessionStartReq.
 740	//   - One of the local identities that the server specifies in
 741	//     ServerSessionStartReq.
 742	//   - If neither client or server specifies local identities, the S2A picks the
 743	//     default one. In this case, this field will contain that identity.
 744	LocalIdentity *common_go_proto.Identity `protobuf:"bytes,5,opt,name=local_identity,json=localIdentity,proto3" json:"local_identity,omitempty"`
 745	// The SHA256 hash of the local certificate used in the handshake.
 746	LocalCertFingerprint []byte `protobuf:"bytes,6,opt,name=local_cert_fingerprint,json=localCertFingerprint,proto3" json:"local_cert_fingerprint,omitempty"`
 747	// The SHA256 hash of the peer certificate used in the handshake.
 748	PeerCertFingerprint []byte `protobuf:"bytes,7,opt,name=peer_cert_fingerprint,json=peerCertFingerprint,proto3" json:"peer_cert_fingerprint,omitempty"`
 749}
 750
 751func (x *SessionResult) Reset() {
 752	*x = SessionResult{}
 753	if protoimpl.UnsafeEnabled {
 754		mi := &file_internal_proto_s2a_s2a_proto_msgTypes[7]
 755		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 756		ms.StoreMessageInfo(mi)
 757	}
 758}
 759
 760func (x *SessionResult) String() string {
 761	return protoimpl.X.MessageStringOf(x)
 762}
 763
 764func (*SessionResult) ProtoMessage() {}
 765
 766func (x *SessionResult) ProtoReflect() protoreflect.Message {
 767	mi := &file_internal_proto_s2a_s2a_proto_msgTypes[7]
 768	if protoimpl.UnsafeEnabled && x != nil {
 769		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 770		if ms.LoadMessageInfo() == nil {
 771			ms.StoreMessageInfo(mi)
 772		}
 773		return ms
 774	}
 775	return mi.MessageOf(x)
 776}
 777
 778// Deprecated: Use SessionResult.ProtoReflect.Descriptor instead.
 779func (*SessionResult) Descriptor() ([]byte, []int) {
 780	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{7}
 781}
 782
 783func (x *SessionResult) GetApplicationProtocol() string {
 784	if x != nil {
 785		return x.ApplicationProtocol
 786	}
 787	return ""
 788}
 789
 790func (x *SessionResult) GetState() *SessionState {
 791	if x != nil {
 792		return x.State
 793	}
 794	return nil
 795}
 796
 797func (x *SessionResult) GetPeerIdentity() *common_go_proto.Identity {
 798	if x != nil {
 799		return x.PeerIdentity
 800	}
 801	return nil
 802}
 803
 804func (x *SessionResult) GetLocalIdentity() *common_go_proto.Identity {
 805	if x != nil {
 806		return x.LocalIdentity
 807	}
 808	return nil
 809}
 810
 811func (x *SessionResult) GetLocalCertFingerprint() []byte {
 812	if x != nil {
 813		return x.LocalCertFingerprint
 814	}
 815	return nil
 816}
 817
 818func (x *SessionResult) GetPeerCertFingerprint() []byte {
 819	if x != nil {
 820		return x.PeerCertFingerprint
 821	}
 822	return nil
 823}
 824
 825type SessionStatus struct {
 826	state         protoimpl.MessageState
 827	sizeCache     protoimpl.SizeCache
 828	unknownFields protoimpl.UnknownFields
 829
 830	// The status code that is specific to the application and the implementation
 831	// of S2A, e.g., gRPC status code.
 832	Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
 833	// The status details.
 834	Details string `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"`
 835}
 836
 837func (x *SessionStatus) Reset() {
 838	*x = SessionStatus{}
 839	if protoimpl.UnsafeEnabled {
 840		mi := &file_internal_proto_s2a_s2a_proto_msgTypes[8]
 841		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 842		ms.StoreMessageInfo(mi)
 843	}
 844}
 845
 846func (x *SessionStatus) String() string {
 847	return protoimpl.X.MessageStringOf(x)
 848}
 849
 850func (*SessionStatus) ProtoMessage() {}
 851
 852func (x *SessionStatus) ProtoReflect() protoreflect.Message {
 853	mi := &file_internal_proto_s2a_s2a_proto_msgTypes[8]
 854	if protoimpl.UnsafeEnabled && x != nil {
 855		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 856		if ms.LoadMessageInfo() == nil {
 857			ms.StoreMessageInfo(mi)
 858		}
 859		return ms
 860	}
 861	return mi.MessageOf(x)
 862}
 863
 864// Deprecated: Use SessionStatus.ProtoReflect.Descriptor instead.
 865func (*SessionStatus) Descriptor() ([]byte, []int) {
 866	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{8}
 867}
 868
 869func (x *SessionStatus) GetCode() uint32 {
 870	if x != nil {
 871		return x.Code
 872	}
 873	return 0
 874}
 875
 876func (x *SessionStatus) GetDetails() string {
 877	if x != nil {
 878		return x.Details
 879	}
 880	return ""
 881}
 882
 883type SessionResp struct {
 884	state         protoimpl.MessageState
 885	sizeCache     protoimpl.SizeCache
 886	unknownFields protoimpl.UnknownFields
 887
 888	// The local identity used during session setup. This could be:
 889	//   - The local identity that the client specifies in ClientSessionStartReq.
 890	//   - One of the local identities that the server specifies in
 891	//     ServerSessionStartReq.
 892	//   - If neither client or server specifies local identities, the S2A picks the
 893	//     default one. In this case, this field will contain that identity.
 894	//
 895	// If the SessionResult is populated, then this must coincide with the local
 896	// identity specified in the SessionResult; otherwise, the handshake must
 897	// fail.
 898	LocalIdentity *common_go_proto.Identity `protobuf:"bytes,1,opt,name=local_identity,json=localIdentity,proto3" json:"local_identity,omitempty"`
 899	// The byte representation of the frames that should be sent to the peer. May
 900	// be empty if nothing needs to be sent to the peer or if in_bytes in the
 901	// SessionReq is incomplete. All bytes in a non-empty out_frames must be sent
 902	// to the peer even if the session setup status is not OK as these frames may
 903	// contain appropriate alerts.
 904	OutFrames []byte `protobuf:"bytes,2,opt,name=out_frames,json=outFrames,proto3" json:"out_frames,omitempty"`
 905	// Number of bytes in the in_bytes field that are consumed by S2A. It is
 906	// possible that part of in_bytes is unrelated to the session setup process.
 907	BytesConsumed uint32 `protobuf:"varint,3,opt,name=bytes_consumed,json=bytesConsumed,proto3" json:"bytes_consumed,omitempty"`
 908	// This is set if the session is successfully set up. out_frames may
 909	// still be set to frames that needs to be forwarded to the peer.
 910	Result *SessionResult `protobuf:"bytes,4,opt,name=result,proto3" json:"result,omitempty"`
 911	// Status of session setup at the current stage.
 912	Status *SessionStatus `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"`
 913}
 914
 915func (x *SessionResp) Reset() {
 916	*x = SessionResp{}
 917	if protoimpl.UnsafeEnabled {
 918		mi := &file_internal_proto_s2a_s2a_proto_msgTypes[9]
 919		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 920		ms.StoreMessageInfo(mi)
 921	}
 922}
 923
 924func (x *SessionResp) String() string {
 925	return protoimpl.X.MessageStringOf(x)
 926}
 927
 928func (*SessionResp) ProtoMessage() {}
 929
 930func (x *SessionResp) ProtoReflect() protoreflect.Message {
 931	mi := &file_internal_proto_s2a_s2a_proto_msgTypes[9]
 932	if protoimpl.UnsafeEnabled && x != nil {
 933		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 934		if ms.LoadMessageInfo() == nil {
 935			ms.StoreMessageInfo(mi)
 936		}
 937		return ms
 938	}
 939	return mi.MessageOf(x)
 940}
 941
 942// Deprecated: Use SessionResp.ProtoReflect.Descriptor instead.
 943func (*SessionResp) Descriptor() ([]byte, []int) {
 944	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{9}
 945}
 946
 947func (x *SessionResp) GetLocalIdentity() *common_go_proto.Identity {
 948	if x != nil {
 949		return x.LocalIdentity
 950	}
 951	return nil
 952}
 953
 954func (x *SessionResp) GetOutFrames() []byte {
 955	if x != nil {
 956		return x.OutFrames
 957	}
 958	return nil
 959}
 960
 961func (x *SessionResp) GetBytesConsumed() uint32 {
 962	if x != nil {
 963		return x.BytesConsumed
 964	}
 965	return 0
 966}
 967
 968func (x *SessionResp) GetResult() *SessionResult {
 969	if x != nil {
 970		return x.Result
 971	}
 972	return nil
 973}
 974
 975func (x *SessionResp) GetStatus() *SessionStatus {
 976	if x != nil {
 977		return x.Status
 978	}
 979	return nil
 980}
 981
 982var File_internal_proto_s2a_s2a_proto protoreflect.FileDescriptor
 983
 984var file_internal_proto_s2a_s2a_proto_rawDesc = []byte{
 985	0x0a, 0x1c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
 986	0x2f, 0x73, 0x32, 0x61, 0x2f, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09,
 987	0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x69, 0x6e, 0x74, 0x65, 0x72,
 988	0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
 989	0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x75, 0x0a,
 990	0x17, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d,
 991	0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, 0x2f, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e,
 992	0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x32, 0x61,
 993	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52,
 994	0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x05, 0x74, 0x6f, 0x6b,
 995	0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65,
 996	0x6e, 0x42, 0x11, 0x0a, 0x0f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x5f, 0x6f,
 997	0x6e, 0x65, 0x6f, 0x66, 0x22, 0xac, 0x03, 0x0a, 0x15, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53,
 998	0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x33,
 999	0x0a, 0x15, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72,
1000	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61,
1001	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63,
1002	0x6f, 0x6c, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x76,
1003	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x73,
1004	0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x4c, 0x53, 0x56, 0x65, 0x72, 0x73,
1005	0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x54, 0x6c, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69,
1006	0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x76, 0x65,
1007	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x73, 0x32,
1008	0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x4c, 0x53, 0x56, 0x65, 0x72, 0x73, 0x69,
1009	0x6f, 0x6e, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x54, 0x6c, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
1010	0x6e, 0x12, 0x41, 0x0a, 0x10, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73,
1011	0x75, 0x69, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x32,
1012	0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, 0x75,
1013	0x69, 0x74, 0x65, 0x52, 0x0f, 0x74, 0x6c, 0x73, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, 0x75,
1014	0x69, 0x74, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69,
1015	0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32,
1016	0x13, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x64, 0x65, 0x6e,
1017	0x74, 0x69, 0x74, 0x79, 0x52, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x65, 0x6e,
1018	0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f,
1019	0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
1020	0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74,
1021	0x69, 0x74, 0x79, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69,
1022	0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d,
1023	0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e,
1024	0x61, 0x6d, 0x65, 0x22, 0xe8, 0x02, 0x0a, 0x15, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65,
1025	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a,
1026	0x15, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f,
1027	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x70,
1028	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
1029	0x6c, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x76, 0x65,
1030	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x73, 0x32,
1031	0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x4c, 0x53, 0x56, 0x65, 0x72, 0x73, 0x69,
1032	0x6f, 0x6e, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x54, 0x6c, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
1033	0x6e, 0x12, 0x3d, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x76, 0x65, 0x72,
1034	0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x73, 0x32, 0x61,
1035	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x4c, 0x53, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
1036	0x6e, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x54, 0x6c, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
1037	0x12, 0x41, 0x0a, 0x10, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, 0x75,
1038	0x69, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x32, 0x61,
1039	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, 0x75, 0x69,
1040	0x74, 0x65, 0x52, 0x0f, 0x74, 0x6c, 0x73, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, 0x75, 0x69,
1041	0x74, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x65,
1042	0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e,
1043	0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69,
1044	0x74, 0x79, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
1045	0x69, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18,
1046	0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x69, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x2b,
1047	0x0a, 0x0e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71,
1048	0x12, 0x19, 0x0a, 0x08, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01,
1049	0x28, 0x0c, 0x52, 0x07, 0x69, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x91, 0x01, 0x0a, 0x13,
1050	0x52, 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74,
1051	0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18,
1052	0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x07, 0x69, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x23,
1053	0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18,
1054	0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f,
1055	0x6e, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x65,
1056	0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x32,
1057	0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
1058	0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22,
1059	0xf4, 0x02, 0x0a, 0x0a, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x45,
1060	0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01,
1061	0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
1062	0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74,
1063	0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
1064	0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x45, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f,
1065	0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x32,
1066	0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65,
1067	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52,
1068	0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2f, 0x0a, 0x04,
1069	0x6e, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x32, 0x61,
1070	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65,
1071	0x78, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x12, 0x4d, 0x0a,
1072	0x11, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x63, 0x6b,
1073	0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70,
1074	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54,
1075	0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x72, 0x65, 0x73, 0x75,
1076	0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x4b, 0x0a, 0x0f,
1077	0x61, 0x75, 0x74, 0x68, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x73, 0x18,
1078	0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74,
1079	0x6f, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
1080	0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x4d,
1081	0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x72, 0x65, 0x71,
1082	0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0xa0, 0x03, 0x0a, 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69,
1083	0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x0b, 0x74, 0x6c, 0x73, 0x5f, 0x76,
1084	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x73,
1085	0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x4c, 0x53, 0x56, 0x65, 0x72, 0x73,
1086	0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x74, 0x6c, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
1087	0x3f, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, 0x75, 0x69,
1088	0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70,
1089	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, 0x75, 0x69, 0x74, 0x65,
1090	0x52, 0x0e, 0x74, 0x6c, 0x73, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, 0x75, 0x69, 0x74, 0x65,
1091	0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18,
1092	0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63,
1093	0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63,
1094	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x71, 0x75,
1095	0x65, 0x6e, 0x63, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05,
1096	0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x6f,
1097	0x75, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x75,
1098	0x74, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x6e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64,
1099	0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x69, 0x6e,
1100	0x46, 0x69, 0x78, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x75,
1101	0x74, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20,
1102	0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x78, 0x65, 0x64, 0x4e, 0x6f, 0x6e,
1103	0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
1104	0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
1105	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x68, 0x61,
1106	0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x18,
1107	0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61,
1108	0x6b, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x22, 0xd1, 0x02, 0x0a, 0x0d, 0x53, 0x65,
1109	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x31, 0x0a, 0x14, 0x61,
1110	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
1111	0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x69,
1112	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x2d,
1113	0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
1114	0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f,
1115	0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a,
1116	0x0d, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x04,
1117	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
1118	0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x49,
1119	0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
1120	0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
1121	0x13, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x64, 0x65, 0x6e,
1122	0x74, 0x69, 0x74, 0x79, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x65, 0x6e, 0x74,
1123	0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x16, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x65, 0x72,
1124	0x74, 0x5f, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, 0x06, 0x20,
1125	0x01, 0x28, 0x0c, 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x46, 0x69,
1126	0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x65, 0x65,
1127	0x72, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69,
1128	0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x70, 0x65, 0x65, 0x72, 0x43, 0x65,
1129	0x72, 0x74, 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x22, 0x3d, 0x0a,
1130	0x0d, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12,
1131	0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f,
1132	0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20,
1133	0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xf3, 0x01, 0x0a,
1134	0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0e,
1135	0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01,
1136	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
1137	0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
1138	0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x5f,
1139	0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6f, 0x75,
1140	0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x79, 0x74, 0x65, 0x73,
1141	0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
1142	0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x12, 0x30,
1143	0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
1144	0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69,
1145	0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
1146	0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
1147	0x32, 0x18, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x73,
1148	0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
1149	0x75, 0x73, 0x32, 0x51, 0x0a, 0x0a, 0x53, 0x32, 0x41, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
1150	0x12, 0x43, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x55, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
1151	0x12, 0x15, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x73,
1152	0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72,
1153	0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22,
1154	0x00, 0x28, 0x01, 0x30, 0x01, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
1155	0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x73, 0x32, 0x61, 0x2f, 0x69,
1156	0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x32,
1157	0x61, 0x5f, 0x67, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
1158	0x6f, 0x33,
1159}
1160
1161var (
1162	file_internal_proto_s2a_s2a_proto_rawDescOnce sync.Once
1163	file_internal_proto_s2a_s2a_proto_rawDescData = file_internal_proto_s2a_s2a_proto_rawDesc
1164)
1165
1166func file_internal_proto_s2a_s2a_proto_rawDescGZIP() []byte {
1167	file_internal_proto_s2a_s2a_proto_rawDescOnce.Do(func() {
1168		file_internal_proto_s2a_s2a_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_proto_s2a_s2a_proto_rawDescData)
1169	})
1170	return file_internal_proto_s2a_s2a_proto_rawDescData
1171}
1172
1173var file_internal_proto_s2a_s2a_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
1174var file_internal_proto_s2a_s2a_proto_goTypes = []any{
1175	(*AuthenticationMechanism)(nil),  // 0: s2a.proto.AuthenticationMechanism
1176	(*ClientSessionStartReq)(nil),    // 1: s2a.proto.ClientSessionStartReq
1177	(*ServerSessionStartReq)(nil),    // 2: s2a.proto.ServerSessionStartReq
1178	(*SessionNextReq)(nil),           // 3: s2a.proto.SessionNextReq
1179	(*ResumptionTicketReq)(nil),      // 4: s2a.proto.ResumptionTicketReq
1180	(*SessionReq)(nil),               // 5: s2a.proto.SessionReq
1181	(*SessionState)(nil),             // 6: s2a.proto.SessionState
1182	(*SessionResult)(nil),            // 7: s2a.proto.SessionResult
1183	(*SessionStatus)(nil),            // 8: s2a.proto.SessionStatus
1184	(*SessionResp)(nil),              // 9: s2a.proto.SessionResp
1185	(*common_go_proto.Identity)(nil), // 10: s2a.proto.Identity
1186	(common_go_proto.TLSVersion)(0),  // 11: s2a.proto.TLSVersion
1187	(common_go_proto.Ciphersuite)(0), // 12: s2a.proto.Ciphersuite
1188}
1189var file_internal_proto_s2a_s2a_proto_depIdxs = []int32{
1190	10, // 0: s2a.proto.AuthenticationMechanism.identity:type_name -> s2a.proto.Identity
1191	11, // 1: s2a.proto.ClientSessionStartReq.min_tls_version:type_name -> s2a.proto.TLSVersion
1192	11, // 2: s2a.proto.ClientSessionStartReq.max_tls_version:type_name -> s2a.proto.TLSVersion
1193	12, // 3: s2a.proto.ClientSessionStartReq.tls_ciphersuites:type_name -> s2a.proto.Ciphersuite
1194	10, // 4: s2a.proto.ClientSessionStartReq.target_identities:type_name -> s2a.proto.Identity
1195	10, // 5: s2a.proto.ClientSessionStartReq.local_identity:type_name -> s2a.proto.Identity
1196	11, // 6: s2a.proto.ServerSessionStartReq.min_tls_version:type_name -> s2a.proto.TLSVersion
1197	11, // 7: s2a.proto.ServerSessionStartReq.max_tls_version:type_name -> s2a.proto.TLSVersion
1198	12, // 8: s2a.proto.ServerSessionStartReq.tls_ciphersuites:type_name -> s2a.proto.Ciphersuite
1199	10, // 9: s2a.proto.ServerSessionStartReq.local_identities:type_name -> s2a.proto.Identity
1200	10, // 10: s2a.proto.ResumptionTicketReq.local_identity:type_name -> s2a.proto.Identity
1201	1,  // 11: s2a.proto.SessionReq.client_start:type_name -> s2a.proto.ClientSessionStartReq
1202	2,  // 12: s2a.proto.SessionReq.server_start:type_name -> s2a.proto.ServerSessionStartReq
1203	3,  // 13: s2a.proto.SessionReq.next:type_name -> s2a.proto.SessionNextReq
1204	4,  // 14: s2a.proto.SessionReq.resumption_ticket:type_name -> s2a.proto.ResumptionTicketReq
1205	0,  // 15: s2a.proto.SessionReq.auth_mechanisms:type_name -> s2a.proto.AuthenticationMechanism
1206	11, // 16: s2a.proto.SessionState.tls_version:type_name -> s2a.proto.TLSVersion
1207	12, // 17: s2a.proto.SessionState.tls_ciphersuite:type_name -> s2a.proto.Ciphersuite
1208	6,  // 18: s2a.proto.SessionResult.state:type_name -> s2a.proto.SessionState
1209	10, // 19: s2a.proto.SessionResult.peer_identity:type_name -> s2a.proto.Identity
1210	10, // 20: s2a.proto.SessionResult.local_identity:type_name -> s2a.proto.Identity
1211	10, // 21: s2a.proto.SessionResp.local_identity:type_name -> s2a.proto.Identity
1212	7,  // 22: s2a.proto.SessionResp.result:type_name -> s2a.proto.SessionResult
1213	8,  // 23: s2a.proto.SessionResp.status:type_name -> s2a.proto.SessionStatus
1214	5,  // 24: s2a.proto.S2AService.SetUpSession:input_type -> s2a.proto.SessionReq
1215	9,  // 25: s2a.proto.S2AService.SetUpSession:output_type -> s2a.proto.SessionResp
1216	25, // [25:26] is the sub-list for method output_type
1217	24, // [24:25] is the sub-list for method input_type
1218	24, // [24:24] is the sub-list for extension type_name
1219	24, // [24:24] is the sub-list for extension extendee
1220	0,  // [0:24] is the sub-list for field type_name
1221}
1222
1223func init() { file_internal_proto_s2a_s2a_proto_init() }
1224func file_internal_proto_s2a_s2a_proto_init() {
1225	if File_internal_proto_s2a_s2a_proto != nil {
1226		return
1227	}
1228	if !protoimpl.UnsafeEnabled {
1229		file_internal_proto_s2a_s2a_proto_msgTypes[0].Exporter = func(v any, i int) any {
1230			switch v := v.(*AuthenticationMechanism); i {
1231			case 0:
1232				return &v.state
1233			case 1:
1234				return &v.sizeCache
1235			case 2:
1236				return &v.unknownFields
1237			default:
1238				return nil
1239			}
1240		}
1241		file_internal_proto_s2a_s2a_proto_msgTypes[1].Exporter = func(v any, i int) any {
1242			switch v := v.(*ClientSessionStartReq); i {
1243			case 0:
1244				return &v.state
1245			case 1:
1246				return &v.sizeCache
1247			case 2:
1248				return &v.unknownFields
1249			default:
1250				return nil
1251			}
1252		}
1253		file_internal_proto_s2a_s2a_proto_msgTypes[2].Exporter = func(v any, i int) any {
1254			switch v := v.(*ServerSessionStartReq); i {
1255			case 0:
1256				return &v.state
1257			case 1:
1258				return &v.sizeCache
1259			case 2:
1260				return &v.unknownFields
1261			default:
1262				return nil
1263			}
1264		}
1265		file_internal_proto_s2a_s2a_proto_msgTypes[3].Exporter = func(v any, i int) any {
1266			switch v := v.(*SessionNextReq); i {
1267			case 0:
1268				return &v.state
1269			case 1:
1270				return &v.sizeCache
1271			case 2:
1272				return &v.unknownFields
1273			default:
1274				return nil
1275			}
1276		}
1277		file_internal_proto_s2a_s2a_proto_msgTypes[4].Exporter = func(v any, i int) any {
1278			switch v := v.(*ResumptionTicketReq); i {
1279			case 0:
1280				return &v.state
1281			case 1:
1282				return &v.sizeCache
1283			case 2:
1284				return &v.unknownFields
1285			default:
1286				return nil
1287			}
1288		}
1289		file_internal_proto_s2a_s2a_proto_msgTypes[5].Exporter = func(v any, i int) any {
1290			switch v := v.(*SessionReq); i {
1291			case 0:
1292				return &v.state
1293			case 1:
1294				return &v.sizeCache
1295			case 2:
1296				return &v.unknownFields
1297			default:
1298				return nil
1299			}
1300		}
1301		file_internal_proto_s2a_s2a_proto_msgTypes[6].Exporter = func(v any, i int) any {
1302			switch v := v.(*SessionState); i {
1303			case 0:
1304				return &v.state
1305			case 1:
1306				return &v.sizeCache
1307			case 2:
1308				return &v.unknownFields
1309			default:
1310				return nil
1311			}
1312		}
1313		file_internal_proto_s2a_s2a_proto_msgTypes[7].Exporter = func(v any, i int) any {
1314			switch v := v.(*SessionResult); i {
1315			case 0:
1316				return &v.state
1317			case 1:
1318				return &v.sizeCache
1319			case 2:
1320				return &v.unknownFields
1321			default:
1322				return nil
1323			}
1324		}
1325		file_internal_proto_s2a_s2a_proto_msgTypes[8].Exporter = func(v any, i int) any {
1326			switch v := v.(*SessionStatus); i {
1327			case 0:
1328				return &v.state
1329			case 1:
1330				return &v.sizeCache
1331			case 2:
1332				return &v.unknownFields
1333			default:
1334				return nil
1335			}
1336		}
1337		file_internal_proto_s2a_s2a_proto_msgTypes[9].Exporter = func(v any, i int) any {
1338			switch v := v.(*SessionResp); i {
1339			case 0:
1340				return &v.state
1341			case 1:
1342				return &v.sizeCache
1343			case 2:
1344				return &v.unknownFields
1345			default:
1346				return nil
1347			}
1348		}
1349	}
1350	file_internal_proto_s2a_s2a_proto_msgTypes[0].OneofWrappers = []any{
1351		(*AuthenticationMechanism_Token)(nil),
1352	}
1353	file_internal_proto_s2a_s2a_proto_msgTypes[5].OneofWrappers = []any{
1354		(*SessionReq_ClientStart)(nil),
1355		(*SessionReq_ServerStart)(nil),
1356		(*SessionReq_Next)(nil),
1357		(*SessionReq_ResumptionTicket)(nil),
1358	}
1359	type x struct{}
1360	out := protoimpl.TypeBuilder{
1361		File: protoimpl.DescBuilder{
1362			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1363			RawDescriptor: file_internal_proto_s2a_s2a_proto_rawDesc,
1364			NumEnums:      0,
1365			NumMessages:   10,
1366			NumExtensions: 0,
1367			NumServices:   1,
1368		},
1369		GoTypes:           file_internal_proto_s2a_s2a_proto_goTypes,
1370		DependencyIndexes: file_internal_proto_s2a_s2a_proto_depIdxs,
1371		MessageInfos:      file_internal_proto_s2a_s2a_proto_msgTypes,
1372	}.Build()
1373	File_internal_proto_s2a_s2a_proto = out.File
1374	file_internal_proto_s2a_s2a_proto_rawDesc = nil
1375	file_internal_proto_s2a_s2a_proto_goTypes = nil
1376	file_internal_proto_s2a_s2a_proto_depIdxs = nil
1377}