s2a.pb.go raw

   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  
  21  package s2a_go_proto
  22  
  23  import (
  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  
  31  const (
  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  
  38  type 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  
  54  func (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  
  63  func (x *AuthenticationMechanism) String() string {
  64  	return protoimpl.X.MessageStringOf(x)
  65  }
  66  
  67  func (*AuthenticationMechanism) ProtoMessage() {}
  68  
  69  func (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.
  82  func (*AuthenticationMechanism) Descriptor() ([]byte, []int) {
  83  	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{0}
  84  }
  85  
  86  func (x *AuthenticationMechanism) GetIdentity() *common_go_proto.Identity {
  87  	if x != nil {
  88  		return x.Identity
  89  	}
  90  	return nil
  91  }
  92  
  93  func (m *AuthenticationMechanism) GetMechanismOneof() isAuthenticationMechanism_MechanismOneof {
  94  	if m != nil {
  95  		return m.MechanismOneof
  96  	}
  97  	return nil
  98  }
  99  
 100  func (x *AuthenticationMechanism) GetToken() string {
 101  	if x, ok := x.GetMechanismOneof().(*AuthenticationMechanism_Token); ok {
 102  		return x.Token
 103  	}
 104  	return ""
 105  }
 106  
 107  type isAuthenticationMechanism_MechanismOneof interface {
 108  	isAuthenticationMechanism_MechanismOneof()
 109  }
 110  
 111  type 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  
 116  func (*AuthenticationMechanism_Token) isAuthenticationMechanism_MechanismOneof() {}
 117  
 118  type 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  
 154  func (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  
 163  func (x *ClientSessionStartReq) String() string {
 164  	return protoimpl.X.MessageStringOf(x)
 165  }
 166  
 167  func (*ClientSessionStartReq) ProtoMessage() {}
 168  
 169  func (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.
 182  func (*ClientSessionStartReq) Descriptor() ([]byte, []int) {
 183  	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{1}
 184  }
 185  
 186  func (x *ClientSessionStartReq) GetApplicationProtocols() []string {
 187  	if x != nil {
 188  		return x.ApplicationProtocols
 189  	}
 190  	return nil
 191  }
 192  
 193  func (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  
 200  func (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  
 207  func (x *ClientSessionStartReq) GetTlsCiphersuites() []common_go_proto.Ciphersuite {
 208  	if x != nil {
 209  		return x.TlsCiphersuites
 210  	}
 211  	return nil
 212  }
 213  
 214  func (x *ClientSessionStartReq) GetTargetIdentities() []*common_go_proto.Identity {
 215  	if x != nil {
 216  		return x.TargetIdentities
 217  	}
 218  	return nil
 219  }
 220  
 221  func (x *ClientSessionStartReq) GetLocalIdentity() *common_go_proto.Identity {
 222  	if x != nil {
 223  		return x.LocalIdentity
 224  	}
 225  	return nil
 226  }
 227  
 228  func (x *ClientSessionStartReq) GetTargetName() string {
 229  	if x != nil {
 230  		return x.TargetName
 231  	}
 232  	return ""
 233  }
 234  
 235  type 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  
 266  func (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  
 275  func (x *ServerSessionStartReq) String() string {
 276  	return protoimpl.X.MessageStringOf(x)
 277  }
 278  
 279  func (*ServerSessionStartReq) ProtoMessage() {}
 280  
 281  func (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.
 294  func (*ServerSessionStartReq) Descriptor() ([]byte, []int) {
 295  	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{2}
 296  }
 297  
 298  func (x *ServerSessionStartReq) GetApplicationProtocols() []string {
 299  	if x != nil {
 300  		return x.ApplicationProtocols
 301  	}
 302  	return nil
 303  }
 304  
 305  func (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  
 312  func (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  
 319  func (x *ServerSessionStartReq) GetTlsCiphersuites() []common_go_proto.Ciphersuite {
 320  	if x != nil {
 321  		return x.TlsCiphersuites
 322  	}
 323  	return nil
 324  }
 325  
 326  func (x *ServerSessionStartReq) GetLocalIdentities() []*common_go_proto.Identity {
 327  	if x != nil {
 328  		return x.LocalIdentities
 329  	}
 330  	return nil
 331  }
 332  
 333  func (x *ServerSessionStartReq) GetInBytes() []byte {
 334  	if x != nil {
 335  		return x.InBytes
 336  	}
 337  	return nil
 338  }
 339  
 340  type 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  
 357  func (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  
 366  func (x *SessionNextReq) String() string {
 367  	return protoimpl.X.MessageStringOf(x)
 368  }
 369  
 370  func (*SessionNextReq) ProtoMessage() {}
 371  
 372  func (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.
 385  func (*SessionNextReq) Descriptor() ([]byte, []int) {
 386  	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{3}
 387  }
 388  
 389  func (x *SessionNextReq) GetInBytes() []byte {
 390  	if x != nil {
 391  		return x.InBytes
 392  	}
 393  	return nil
 394  }
 395  
 396  type 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  
 412  func (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  
 421  func (x *ResumptionTicketReq) String() string {
 422  	return protoimpl.X.MessageStringOf(x)
 423  }
 424  
 425  func (*ResumptionTicketReq) ProtoMessage() {}
 426  
 427  func (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.
 440  func (*ResumptionTicketReq) Descriptor() ([]byte, []int) {
 441  	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{4}
 442  }
 443  
 444  func (x *ResumptionTicketReq) GetInBytes() [][]byte {
 445  	if x != nil {
 446  		return x.InBytes
 447  	}
 448  	return nil
 449  }
 450  
 451  func (x *ResumptionTicketReq) GetConnectionId() uint64 {
 452  	if x != nil {
 453  		return x.ConnectionId
 454  	}
 455  	return 0
 456  }
 457  
 458  func (x *ResumptionTicketReq) GetLocalIdentity() *common_go_proto.Identity {
 459  	if x != nil {
 460  		return x.LocalIdentity
 461  	}
 462  	return nil
 463  }
 464  
 465  type 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  
 484  func (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  
 493  func (x *SessionReq) String() string {
 494  	return protoimpl.X.MessageStringOf(x)
 495  }
 496  
 497  func (*SessionReq) ProtoMessage() {}
 498  
 499  func (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.
 512  func (*SessionReq) Descriptor() ([]byte, []int) {
 513  	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{5}
 514  }
 515  
 516  func (m *SessionReq) GetReqOneof() isSessionReq_ReqOneof {
 517  	if m != nil {
 518  		return m.ReqOneof
 519  	}
 520  	return nil
 521  }
 522  
 523  func (x *SessionReq) GetClientStart() *ClientSessionStartReq {
 524  	if x, ok := x.GetReqOneof().(*SessionReq_ClientStart); ok {
 525  		return x.ClientStart
 526  	}
 527  	return nil
 528  }
 529  
 530  func (x *SessionReq) GetServerStart() *ServerSessionStartReq {
 531  	if x, ok := x.GetReqOneof().(*SessionReq_ServerStart); ok {
 532  		return x.ServerStart
 533  	}
 534  	return nil
 535  }
 536  
 537  func (x *SessionReq) GetNext() *SessionNextReq {
 538  	if x, ok := x.GetReqOneof().(*SessionReq_Next); ok {
 539  		return x.Next
 540  	}
 541  	return nil
 542  }
 543  
 544  func (x *SessionReq) GetResumptionTicket() *ResumptionTicketReq {
 545  	if x, ok := x.GetReqOneof().(*SessionReq_ResumptionTicket); ok {
 546  		return x.ResumptionTicket
 547  	}
 548  	return nil
 549  }
 550  
 551  func (x *SessionReq) GetAuthMechanisms() []*AuthenticationMechanism {
 552  	if x != nil {
 553  		return x.AuthMechanisms
 554  	}
 555  	return nil
 556  }
 557  
 558  type isSessionReq_ReqOneof interface {
 559  	isSessionReq_ReqOneof()
 560  }
 561  
 562  type 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  
 567  type 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  
 572  type SessionReq_Next struct {
 573  	// The next session setup message request message.
 574  	Next *SessionNextReq `protobuf:"bytes,3,opt,name=next,proto3,oneof"`
 575  }
 576  
 577  type 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  
 585  func (*SessionReq_ClientStart) isSessionReq_ReqOneof() {}
 586  
 587  func (*SessionReq_ServerStart) isSessionReq_ReqOneof() {}
 588  
 589  func (*SessionReq_Next) isSessionReq_ReqOneof() {}
 590  
 591  func (*SessionReq_ResumptionTicket) isSessionReq_ReqOneof() {}
 592  
 593  type 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  
 624  func (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  
 633  func (x *SessionState) String() string {
 634  	return protoimpl.X.MessageStringOf(x)
 635  }
 636  
 637  func (*SessionState) ProtoMessage() {}
 638  
 639  func (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.
 652  func (*SessionState) Descriptor() ([]byte, []int) {
 653  	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{6}
 654  }
 655  
 656  func (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  
 663  func (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  
 670  func (x *SessionState) GetInSequence() uint64 {
 671  	if x != nil {
 672  		return x.InSequence
 673  	}
 674  	return 0
 675  }
 676  
 677  func (x *SessionState) GetOutSequence() uint64 {
 678  	if x != nil {
 679  		return x.OutSequence
 680  	}
 681  	return 0
 682  }
 683  
 684  func (x *SessionState) GetInKey() []byte {
 685  	if x != nil {
 686  		return x.InKey
 687  	}
 688  	return nil
 689  }
 690  
 691  func (x *SessionState) GetOutKey() []byte {
 692  	if x != nil {
 693  		return x.OutKey
 694  	}
 695  	return nil
 696  }
 697  
 698  func (x *SessionState) GetInFixedNonce() []byte {
 699  	if x != nil {
 700  		return x.InFixedNonce
 701  	}
 702  	return nil
 703  }
 704  
 705  func (x *SessionState) GetOutFixedNonce() []byte {
 706  	if x != nil {
 707  		return x.OutFixedNonce
 708  	}
 709  	return nil
 710  }
 711  
 712  func (x *SessionState) GetConnectionId() uint64 {
 713  	if x != nil {
 714  		return x.ConnectionId
 715  	}
 716  	return 0
 717  }
 718  
 719  func (x *SessionState) GetIsHandshakeResumed() bool {
 720  	if x != nil {
 721  		return x.IsHandshakeResumed
 722  	}
 723  	return false
 724  }
 725  
 726  type 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  
 751  func (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  
 760  func (x *SessionResult) String() string {
 761  	return protoimpl.X.MessageStringOf(x)
 762  }
 763  
 764  func (*SessionResult) ProtoMessage() {}
 765  
 766  func (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.
 779  func (*SessionResult) Descriptor() ([]byte, []int) {
 780  	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{7}
 781  }
 782  
 783  func (x *SessionResult) GetApplicationProtocol() string {
 784  	if x != nil {
 785  		return x.ApplicationProtocol
 786  	}
 787  	return ""
 788  }
 789  
 790  func (x *SessionResult) GetState() *SessionState {
 791  	if x != nil {
 792  		return x.State
 793  	}
 794  	return nil
 795  }
 796  
 797  func (x *SessionResult) GetPeerIdentity() *common_go_proto.Identity {
 798  	if x != nil {
 799  		return x.PeerIdentity
 800  	}
 801  	return nil
 802  }
 803  
 804  func (x *SessionResult) GetLocalIdentity() *common_go_proto.Identity {
 805  	if x != nil {
 806  		return x.LocalIdentity
 807  	}
 808  	return nil
 809  }
 810  
 811  func (x *SessionResult) GetLocalCertFingerprint() []byte {
 812  	if x != nil {
 813  		return x.LocalCertFingerprint
 814  	}
 815  	return nil
 816  }
 817  
 818  func (x *SessionResult) GetPeerCertFingerprint() []byte {
 819  	if x != nil {
 820  		return x.PeerCertFingerprint
 821  	}
 822  	return nil
 823  }
 824  
 825  type 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  
 837  func (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  
 846  func (x *SessionStatus) String() string {
 847  	return protoimpl.X.MessageStringOf(x)
 848  }
 849  
 850  func (*SessionStatus) ProtoMessage() {}
 851  
 852  func (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.
 865  func (*SessionStatus) Descriptor() ([]byte, []int) {
 866  	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{8}
 867  }
 868  
 869  func (x *SessionStatus) GetCode() uint32 {
 870  	if x != nil {
 871  		return x.Code
 872  	}
 873  	return 0
 874  }
 875  
 876  func (x *SessionStatus) GetDetails() string {
 877  	if x != nil {
 878  		return x.Details
 879  	}
 880  	return ""
 881  }
 882  
 883  type 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  
 915  func (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  
 924  func (x *SessionResp) String() string {
 925  	return protoimpl.X.MessageStringOf(x)
 926  }
 927  
 928  func (*SessionResp) ProtoMessage() {}
 929  
 930  func (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.
 943  func (*SessionResp) Descriptor() ([]byte, []int) {
 944  	return file_internal_proto_s2a_s2a_proto_rawDescGZIP(), []int{9}
 945  }
 946  
 947  func (x *SessionResp) GetLocalIdentity() *common_go_proto.Identity {
 948  	if x != nil {
 949  		return x.LocalIdentity
 950  	}
 951  	return nil
 952  }
 953  
 954  func (x *SessionResp) GetOutFrames() []byte {
 955  	if x != nil {
 956  		return x.OutFrames
 957  	}
 958  	return nil
 959  }
 960  
 961  func (x *SessionResp) GetBytesConsumed() uint32 {
 962  	if x != nil {
 963  		return x.BytesConsumed
 964  	}
 965  	return 0
 966  }
 967  
 968  func (x *SessionResp) GetResult() *SessionResult {
 969  	if x != nil {
 970  		return x.Result
 971  	}
 972  	return nil
 973  }
 974  
 975  func (x *SessionResp) GetStatus() *SessionStatus {
 976  	if x != nil {
 977  		return x.Status
 978  	}
 979  	return nil
 980  }
 981  
 982  var File_internal_proto_s2a_s2a_proto protoreflect.FileDescriptor
 983  
 984  var 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  
1161  var (
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  
1166  func 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  
1173  var file_internal_proto_s2a_s2a_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
1174  var 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  }
1189  var 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  
1223  func init() { file_internal_proto_s2a_s2a_proto_init() }
1224  func 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  }
1378