Dep ensure -update (#1912)

* dep ensure -update

Signed-off-by: Miek Gieben <miek@miek.nl>

* Add new files

Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
Miek Gieben 2018-06-30 17:07:33 +01:00 committed by Yong Tang
parent 6fe27d99be
commit 9d555ab8d2
1505 changed files with 179032 additions and 208137 deletions

View file

@ -131,7 +131,6 @@ func DefaultServerOptions() *ServerOptions {
// It implements credentials.TransportCredentials interface.
type altsTC struct {
info *credentials.ProtocolInfo
hsAddr string
side core.Side
accounts []string
hsAddress string
@ -269,8 +268,16 @@ func (g *altsTC) Info() credentials.ProtocolInfo {
func (g *altsTC) Clone() credentials.TransportCredentials {
info := *g.info
var accounts []string
if g.accounts != nil {
accounts = make([]string, len(g.accounts))
copy(accounts, g.accounts)
}
return &altsTC{
info: &info,
info: &info,
side: g.side,
hsAddress: g.hsAddress,
accounts: accounts,
}
}

View file

@ -19,6 +19,7 @@
package alts
import (
"reflect"
"testing"
"github.com/golang/protobuf/proto"
@ -45,10 +46,40 @@ func TestOverrideServerName(t *testing.T) {
}
}
func TestClone(t *testing.T) {
func TestCloneClient(t *testing.T) {
wantServerName := "server.name"
opt := DefaultClientOptions()
opt.TargetServiceAccounts = []string{"not", "empty"}
c := NewClientCreds(opt)
c.OverrideServerName(wantServerName)
cc := c.Clone()
if got, want := cc.Info().ServerName, wantServerName; got != want {
t.Fatalf("cc.Info().ServerName = %v, want %v", got, want)
}
cc.OverrideServerName("")
if got, want := c.Info().ServerName, wantServerName; got != want {
t.Fatalf("Change in clone should not affect the original, c.Info().ServerName = %v, want %v", got, want)
}
if got, want := cc.Info().ServerName, ""; got != want {
t.Fatalf("cc.Info().ServerName = %v, want %v", got, want)
}
ct := c.(*altsTC)
cct := cc.(*altsTC)
if ct.side != cct.side {
t.Errorf("cc.side = %q, want %q", cct.side, ct.side)
}
if ct.hsAddress != cct.hsAddress {
t.Errorf("cc.hsAddress = %q, want %q", cct.hsAddress, ct.hsAddress)
}
if !reflect.DeepEqual(ct.accounts, cct.accounts) {
t.Errorf("cc.accounts = %q, want %q", cct.accounts, ct.accounts)
}
}
func TestCloneServer(t *testing.T) {
wantServerName := "server.name"
// This is not testing any handshaker functionality, so it's fine to only
// use NewServerCreds and not NewClientCreds.
c := NewServerCreds(DefaultServerOptions())
c.OverrideServerName(wantServerName)
cc := c.Clone()
@ -62,6 +93,19 @@ func TestClone(t *testing.T) {
if got, want := cc.Info().ServerName, ""; got != want {
t.Fatalf("cc.Info().ServerName = %v, want %v", got, want)
}
ct := c.(*altsTC)
cct := cc.(*altsTC)
if ct.side != cct.side {
t.Errorf("cc.side = %q, want %q", cct.side, ct.side)
}
if ct.hsAddress != cct.hsAddress {
t.Errorf("cc.hsAddress = %q, want %q", cct.hsAddress, ct.hsAddress)
}
if !reflect.DeepEqual(ct.accounts, cct.accounts) {
t.Errorf("cc.accounts = %q, want %q", cct.accounts, ct.accounts)
}
}
func TestInfo(t *testing.T) {

View file

@ -16,6 +16,8 @@
*
*/
//go:generate ./regenerate.sh
// Package core contains common core functionality for ALTS.
// Disclaimer: users should NEVER reference this package directly.
package core

View file

@ -1,29 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: altscontext.proto
// source: grpc/gcp/altscontext.proto
/*
Package grpc_gcp is a generated protocol buffer package.
It is generated from these files:
altscontext.proto
handshaker.proto
transport_security_common.proto
It has these top-level messages:
AltsContext
Endpoint
Identity
StartClientHandshakeReq
ServerHandshakeParameters
StartServerHandshakeReq
NextHandshakeMessageReq
HandshakerReq
HandshakerResult
HandshakerStatus
HandshakerResp
RpcProtocolVersions
*/
package grpc_gcp
package grpc_gcp // import "google.golang.org/grpc/credentials/alts/core/proto/grpc_gcp"
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
@ -42,23 +20,45 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
type AltsContext struct {
// The application protocol negotiated for this connection.
ApplicationProtocol string `protobuf:"bytes,1,opt,name=application_protocol,json=applicationProtocol" json:"application_protocol,omitempty"`
ApplicationProtocol string `protobuf:"bytes,1,opt,name=application_protocol,json=applicationProtocol,proto3" json:"application_protocol,omitempty"`
// The record protocol negotiated for this connection.
RecordProtocol string `protobuf:"bytes,2,opt,name=record_protocol,json=recordProtocol" json:"record_protocol,omitempty"`
RecordProtocol string `protobuf:"bytes,2,opt,name=record_protocol,json=recordProtocol,proto3" json:"record_protocol,omitempty"`
// The security level of the created secure channel.
SecurityLevel SecurityLevel `protobuf:"varint,3,opt,name=security_level,json=securityLevel,enum=grpc.gcp.SecurityLevel" json:"security_level,omitempty"`
SecurityLevel SecurityLevel `protobuf:"varint,3,opt,name=security_level,json=securityLevel,proto3,enum=grpc.gcp.SecurityLevel" json:"security_level,omitempty"`
// The peer service account.
PeerServiceAccount string `protobuf:"bytes,4,opt,name=peer_service_account,json=peerServiceAccount" json:"peer_service_account,omitempty"`
PeerServiceAccount string `protobuf:"bytes,4,opt,name=peer_service_account,json=peerServiceAccount,proto3" json:"peer_service_account,omitempty"`
// The local service account.
LocalServiceAccount string `protobuf:"bytes,5,opt,name=local_service_account,json=localServiceAccount" json:"local_service_account,omitempty"`
LocalServiceAccount string `protobuf:"bytes,5,opt,name=local_service_account,json=localServiceAccount,proto3" json:"local_service_account,omitempty"`
// The RPC protocol versions supported by the peer.
PeerRpcVersions *RpcProtocolVersions `protobuf:"bytes,6,opt,name=peer_rpc_versions,json=peerRpcVersions" json:"peer_rpc_versions,omitempty"`
PeerRpcVersions *RpcProtocolVersions `protobuf:"bytes,6,opt,name=peer_rpc_versions,json=peerRpcVersions,proto3" json:"peer_rpc_versions,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *AltsContext) Reset() { *m = AltsContext{} }
func (m *AltsContext) String() string { return proto.CompactTextString(m) }
func (*AltsContext) ProtoMessage() {}
func (*AltsContext) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
func (m *AltsContext) Reset() { *m = AltsContext{} }
func (m *AltsContext) String() string { return proto.CompactTextString(m) }
func (*AltsContext) ProtoMessage() {}
func (*AltsContext) Descriptor() ([]byte, []int) {
return fileDescriptor_altscontext_2f63c0ac7e856743, []int{0}
}
func (m *AltsContext) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AltsContext.Unmarshal(m, b)
}
func (m *AltsContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AltsContext.Marshal(b, m, deterministic)
}
func (dst *AltsContext) XXX_Merge(src proto.Message) {
xxx_messageInfo_AltsContext.Merge(dst, src)
}
func (m *AltsContext) XXX_Size() int {
return xxx_messageInfo_AltsContext.Size(m)
}
func (m *AltsContext) XXX_DiscardUnknown() {
xxx_messageInfo_AltsContext.DiscardUnknown(m)
}
var xxx_messageInfo_AltsContext proto.InternalMessageInfo
func (m *AltsContext) GetApplicationProtocol() string {
if m != nil {
@ -106,26 +106,32 @@ func init() {
proto.RegisterType((*AltsContext)(nil), "grpc.gcp.AltsContext")
}
func init() { proto.RegisterFile("altscontext.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 284 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x91, 0xc1, 0x4a, 0x03, 0x31,
0x10, 0x86, 0xd9, 0xaa, 0x45, 0x53, 0x6c, 0x69, 0x6c, 0xe9, 0x22, 0x88, 0xc5, 0x8b, 0x3d, 0x2d,
0xba, 0xde, 0x85, 0xea, 0x49, 0xf0, 0x20, 0x5b, 0xf0, 0x1a, 0xe2, 0x18, 0x4a, 0x20, 0xcd, 0x84,
0x49, 0xba, 0xe8, 0xab, 0xfa, 0x34, 0xb2, 0xc9, 0x6e, 0x5b, 0xf4, 0x98, 0xf9, 0xbe, 0x3f, 0x33,
0x93, 0xb0, 0xb1, 0x34, 0xc1, 0x03, 0xda, 0xa0, 0xbe, 0x42, 0xe1, 0x08, 0x03, 0xf2, 0xd3, 0x35,
0x39, 0x28, 0xd6, 0xe0, 0x2e, 0xaf, 0x03, 0x49, 0xeb, 0x1d, 0x52, 0x10, 0x5e, 0xc1, 0x96, 0x74,
0xf8, 0x16, 0x80, 0x9b, 0x0d, 0xda, 0xa4, 0xde, 0xfc, 0xf4, 0xd8, 0x60, 0x69, 0x82, 0x7f, 0x4e,
0x17, 0xf0, 0x7b, 0x36, 0x91, 0xce, 0x19, 0x0d, 0x32, 0x68, 0xb4, 0x22, 0x4a, 0x80, 0x26, 0xcf,
0xe6, 0xd9, 0xe2, 0xac, 0xba, 0x38, 0x60, 0x6f, 0x2d, 0xe2, 0xb7, 0x6c, 0x44, 0x0a, 0x90, 0x3e,
0xf7, 0x76, 0x2f, 0xda, 0xc3, 0x54, 0xde, 0x89, 0x8f, 0x6c, 0xb8, 0x1b, 0xc2, 0xa8, 0x5a, 0x99,
0xfc, 0x68, 0x9e, 0x2d, 0x86, 0xe5, 0xac, 0xe8, 0xe6, 0x2d, 0x56, 0x2d, 0x7f, 0x6d, 0x70, 0x75,
0xee, 0x0f, 0x8f, 0xfc, 0x8e, 0x4d, 0x9c, 0x52, 0x24, 0xbc, 0xa2, 0x5a, 0x83, 0x12, 0x12, 0x00,
0xb7, 0x36, 0xe4, 0xc7, 0xb1, 0x1b, 0x6f, 0xd8, 0x2a, 0xa1, 0x65, 0x22, 0xbc, 0x64, 0x53, 0x83,
0x20, 0xcd, 0xbf, 0xc8, 0x49, 0x5a, 0x27, 0xc2, 0x3f, 0x99, 0x17, 0x36, 0x8e, 0x5d, 0xc8, 0x81,
0xa8, 0x15, 0x79, 0x8d, 0xd6, 0xe7, 0xfd, 0x79, 0xb6, 0x18, 0x94, 0x57, 0xfb, 0x41, 0x2b, 0x07,
0xdd, 0x5e, 0xef, 0xad, 0x54, 0x8d, 0x9a, 0x5c, 0xe5, 0xa0, 0x2b, 0x3c, 0xcd, 0xd8, 0x54, 0x63,
0xca, 0x34, 0x9f, 0x54, 0x68, 0x1b, 0x14, 0x59, 0x69, 0x3e, 0xfa, 0xf1, 0xa5, 0x1e, 0x7e, 0x03,
0x00, 0x00, 0xff, 0xff, 0x36, 0xd0, 0xe1, 0x63, 0xbc, 0x01, 0x00, 0x00,
func init() {
proto.RegisterFile("grpc/gcp/altscontext.proto", fileDescriptor_altscontext_2f63c0ac7e856743)
}
var fileDescriptor_altscontext_2f63c0ac7e856743 = []byte{
// 338 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x91, 0x4d, 0x4b, 0x23, 0x41,
0x10, 0x86, 0x99, 0xec, 0x6e, 0xd8, 0xed, 0xb0, 0xc9, 0xee, 0x6c, 0xc2, 0x0e, 0x01, 0x21, 0x78,
0x71, 0x4e, 0x33, 0x1a, 0x8f, 0x82, 0x90, 0x78, 0x12, 0x3c, 0x84, 0x09, 0x78, 0xf0, 0x32, 0xb4,
0x95, 0xa2, 0x6d, 0xe8, 0x74, 0x35, 0xd5, 0x9d, 0xa0, 0x7f, 0xd5, 0x5f, 0x23, 0xd3, 0x93, 0x2f,
0xf4, 0x58, 0xf5, 0xbc, 0x6f, 0x7d, 0x8a, 0xb1, 0x62, 0x07, 0xa5, 0x02, 0x57, 0x4a, 0x13, 0x3c,
0x90, 0x0d, 0xf8, 0x1a, 0x0a, 0xc7, 0x14, 0x28, 0xfd, 0xd9, 0xb0, 0x42, 0x81, 0x1b, 0xe7, 0x07,
0x55, 0x60, 0x69, 0xbd, 0x23, 0x0e, 0xb5, 0x47, 0xd8, 0xb0, 0x0e, 0x6f, 0x35, 0xd0, 0x7a, 0x4d,
0xb6, 0xf5, 0x9c, 0xbf, 0x77, 0x44, 0x6f, 0x66, 0x82, 0xbf, 0x6b, 0x2b, 0xa5, 0x57, 0x62, 0x28,
0x9d, 0x33, 0x1a, 0x64, 0xd0, 0x64, 0xeb, 0x28, 0x02, 0x32, 0x59, 0x32, 0x49, 0xf2, 0x5f, 0xd5,
0xbf, 0x13, 0xb6, 0xd8, 0xa1, 0xf4, 0x42, 0x0c, 0x18, 0x81, 0x78, 0x75, 0x54, 0x77, 0xa2, 0xba,
0xdf, 0xa6, 0x0f, 0xc2, 0x5b, 0xd1, 0x3f, 0x0c, 0x61, 0x70, 0x8b, 0x26, 0xfb, 0x36, 0x49, 0xf2,
0xfe, 0xf4, 0x7f, 0xb1, 0x1f, 0xbc, 0x58, 0xee, 0xf8, 0x43, 0x83, 0xab, 0xdf, 0xfe, 0x34, 0x4c,
0x2f, 0xc5, 0xd0, 0x21, 0x72, 0xed, 0x91, 0xb7, 0x1a, 0xb0, 0x96, 0x00, 0xb4, 0xb1, 0x21, 0xfb,
0x1e, 0xbb, 0xa5, 0x0d, 0x5b, 0xb6, 0x68, 0xd6, 0x92, 0x74, 0x2a, 0x46, 0x86, 0x40, 0x9a, 0x2f,
0x96, 0x1f, 0xed, 0x3a, 0x11, 0x7e, 0xf2, 0xdc, 0x8b, 0xbf, 0xb1, 0x0b, 0x3b, 0xa8, 0xb7, 0xc8,
0x5e, 0x93, 0xf5, 0x59, 0x77, 0x92, 0xe4, 0xbd, 0xe9, 0xd9, 0x71, 0xd0, 0xca, 0xc1, 0x7e, 0xaf,
0xc7, 0x9d, 0xa8, 0x1a, 0x34, 0xbe, 0xca, 0xc1, 0x3e, 0x31, 0x7f, 0x11, 0x23, 0x4d, 0xad, 0xa7,
0xf9, 0x56, 0xa1, 0x6d, 0x40, 0xb6, 0xd2, 0xcc, 0xff, 0x9c, 0x9c, 0x3c, 0x96, 0x59, 0x24, 0x4f,
0x37, 0x8a, 0x48, 0x19, 0x2c, 0x14, 0x19, 0x69, 0x55, 0x41, 0xac, 0xca, 0xf8, 0x45, 0x60, 0x5c,
0xa1, 0x0d, 0x5a, 0x1a, 0x1f, 0x7f, 0x5e, 0x02, 0x31, 0x96, 0xf1, 0xd4, 0x51, 0x50, 0x2b, 0x70,
0xcf, 0xdd, 0x18, 0x5f, 0x7f, 0x04, 0x00, 0x00, 0xff, 0xff, 0xe8, 0x41, 0xe3, 0x52, 0x1f, 0x02,
0x00, 0x00,
}

View file

@ -1,41 +0,0 @@
// Copyright 2018 gRPC authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
import "transport_security_common.proto";
package grpc.gcp;
option java_package = "io.grpc.alts.internal";
message AltsContext {
// The application protocol negotiated for this connection.
string application_protocol = 1;
// The record protocol negotiated for this connection.
string record_protocol = 2;
// The security level of the created secure channel.
SecurityLevel security_level = 3;
// The peer service account.
string peer_service_account = 4;
// The local service account.
string local_service_account = 5;
// The RPC protocol versions supported by the peer.
RpcProtocolVersions peer_rpc_versions = 6;
}

View file

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: handshaker.proto
// source: grpc/gcp/handshaker.proto
package grpc_gcp
package grpc_gcp // import "google.golang.org/grpc/credentials/alts/core/proto/grpc_gcp"
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
@ -17,6 +17,12 @@ var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
type HandshakeProtocol int32
const (
@ -42,7 +48,9 @@ var HandshakeProtocol_value = map[string]int32{
func (x HandshakeProtocol) String() string {
return proto.EnumName(HandshakeProtocol_name, int32(x))
}
func (HandshakeProtocol) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
func (HandshakeProtocol) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_handshaker_b28e45bdd1661054, []int{0}
}
type NetworkProtocol int32
@ -66,22 +74,46 @@ var NetworkProtocol_value = map[string]int32{
func (x NetworkProtocol) String() string {
return proto.EnumName(NetworkProtocol_name, int32(x))
}
func (NetworkProtocol) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }
func (NetworkProtocol) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_handshaker_b28e45bdd1661054, []int{1}
}
type Endpoint struct {
// IP address. It should contain an IPv4 or IPv6 string literal, e.g.
// "192.168.0.1" or "2001:db8::1".
IpAddress string `protobuf:"bytes,1,opt,name=ip_address,json=ipAddress" json:"ip_address,omitempty"`
IpAddress string `protobuf:"bytes,1,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
// Port number.
Port int32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"`
Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
// Network protocol (e.g., TCP, UDP) associated with this endpoint.
Protocol NetworkProtocol `protobuf:"varint,3,opt,name=protocol,enum=grpc.gcp.NetworkProtocol" json:"protocol,omitempty"`
Protocol NetworkProtocol `protobuf:"varint,3,opt,name=protocol,proto3,enum=grpc.gcp.NetworkProtocol" json:"protocol,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Endpoint) Reset() { *m = Endpoint{} }
func (m *Endpoint) String() string { return proto.CompactTextString(m) }
func (*Endpoint) ProtoMessage() {}
func (*Endpoint) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
func (m *Endpoint) Reset() { *m = Endpoint{} }
func (m *Endpoint) String() string { return proto.CompactTextString(m) }
func (*Endpoint) ProtoMessage() {}
func (*Endpoint) Descriptor() ([]byte, []int) {
return fileDescriptor_handshaker_b28e45bdd1661054, []int{0}
}
func (m *Endpoint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Endpoint.Unmarshal(m, b)
}
func (m *Endpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Endpoint.Marshal(b, m, deterministic)
}
func (dst *Endpoint) XXX_Merge(src proto.Message) {
xxx_messageInfo_Endpoint.Merge(dst, src)
}
func (m *Endpoint) XXX_Size() int {
return xxx_messageInfo_Endpoint.Size(m)
}
func (m *Endpoint) XXX_DiscardUnknown() {
xxx_messageInfo_Endpoint.DiscardUnknown(m)
}
var xxx_messageInfo_Endpoint proto.InternalMessageInfo
func (m *Endpoint) GetIpAddress() string {
if m != nil {
@ -108,23 +140,45 @@ type Identity struct {
// Types that are valid to be assigned to IdentityOneof:
// *Identity_ServiceAccount
// *Identity_Hostname
IdentityOneof isIdentity_IdentityOneof `protobuf_oneof:"identity_oneof"`
IdentityOneof isIdentity_IdentityOneof `protobuf_oneof:"identity_oneof"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Identity) Reset() { *m = Identity{} }
func (m *Identity) String() string { return proto.CompactTextString(m) }
func (*Identity) ProtoMessage() {}
func (*Identity) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }
func (m *Identity) Reset() { *m = Identity{} }
func (m *Identity) String() string { return proto.CompactTextString(m) }
func (*Identity) ProtoMessage() {}
func (*Identity) Descriptor() ([]byte, []int) {
return fileDescriptor_handshaker_b28e45bdd1661054, []int{1}
}
func (m *Identity) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Identity.Unmarshal(m, b)
}
func (m *Identity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Identity.Marshal(b, m, deterministic)
}
func (dst *Identity) XXX_Merge(src proto.Message) {
xxx_messageInfo_Identity.Merge(dst, src)
}
func (m *Identity) XXX_Size() int {
return xxx_messageInfo_Identity.Size(m)
}
func (m *Identity) XXX_DiscardUnknown() {
xxx_messageInfo_Identity.DiscardUnknown(m)
}
var xxx_messageInfo_Identity proto.InternalMessageInfo
type isIdentity_IdentityOneof interface {
isIdentity_IdentityOneof()
}
type Identity_ServiceAccount struct {
ServiceAccount string `protobuf:"bytes,1,opt,name=service_account,json=serviceAccount,oneof"`
ServiceAccount string `protobuf:"bytes,1,opt,name=service_account,json=serviceAccount,proto3,oneof"`
}
type Identity_Hostname struct {
Hostname string `protobuf:"bytes,2,opt,name=hostname,oneof"`
Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3,oneof"`
}
func (*Identity_ServiceAccount) isIdentity_IdentityOneof() {}
@ -203,11 +257,11 @@ func _Identity_OneofSizer(msg proto.Message) (n int) {
// identity_oneof
switch x := m.IdentityOneof.(type) {
case *Identity_ServiceAccount:
n += proto.SizeVarint(1<<3 | proto.WireBytes)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(len(x.ServiceAccount)))
n += len(x.ServiceAccount)
case *Identity_Hostname:
n += proto.SizeVarint(2<<3 | proto.WireBytes)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(len(x.Hostname)))
n += len(x.Hostname)
case nil:
@ -219,38 +273,60 @@ func _Identity_OneofSizer(msg proto.Message) (n int) {
type StartClientHandshakeReq struct {
// Handshake security protocol requested by the client.
HandshakeSecurityProtocol HandshakeProtocol `protobuf:"varint,1,opt,name=handshake_security_protocol,json=handshakeSecurityProtocol,enum=grpc.gcp.HandshakeProtocol" json:"handshake_security_protocol,omitempty"`
HandshakeSecurityProtocol HandshakeProtocol `protobuf:"varint,1,opt,name=handshake_security_protocol,json=handshakeSecurityProtocol,proto3,enum=grpc.gcp.HandshakeProtocol" json:"handshake_security_protocol,omitempty"`
// The application protocols supported by the client, e.g., "h2" (for http2),
// "grpc".
ApplicationProtocols []string `protobuf:"bytes,2,rep,name=application_protocols,json=applicationProtocols" json:"application_protocols,omitempty"`
ApplicationProtocols []string `protobuf:"bytes,2,rep,name=application_protocols,json=applicationProtocols,proto3" json:"application_protocols,omitempty"`
// The record protocols supported by the client, e.g.,
// "ALTSRP_GCM_AES128".
RecordProtocols []string `protobuf:"bytes,3,rep,name=record_protocols,json=recordProtocols" json:"record_protocols,omitempty"`
RecordProtocols []string `protobuf:"bytes,3,rep,name=record_protocols,json=recordProtocols,proto3" json:"record_protocols,omitempty"`
// (Optional) Describes which server identities are acceptable by the client.
// If target identities are provided and none of them matches the peer
// identity of the server, handshake will fail.
TargetIdentities []*Identity `protobuf:"bytes,4,rep,name=target_identities,json=targetIdentities" json:"target_identities,omitempty"`
TargetIdentities []*Identity `protobuf:"bytes,4,rep,name=target_identities,json=targetIdentities,proto3" json:"target_identities,omitempty"`
// (Optional) Application may specify a local identity. Otherwise, the
// handshaker chooses a default local identity.
LocalIdentity *Identity `protobuf:"bytes,5,opt,name=local_identity,json=localIdentity" json:"local_identity,omitempty"`
LocalIdentity *Identity `protobuf:"bytes,5,opt,name=local_identity,json=localIdentity,proto3" json:"local_identity,omitempty"`
// (Optional) Local endpoint information of the connection to the server,
// such as local IP address, port number, and network protocol.
LocalEndpoint *Endpoint `protobuf:"bytes,6,opt,name=local_endpoint,json=localEndpoint" json:"local_endpoint,omitempty"`
LocalEndpoint *Endpoint `protobuf:"bytes,6,opt,name=local_endpoint,json=localEndpoint,proto3" json:"local_endpoint,omitempty"`
// (Optional) Endpoint information of the remote server, such as IP address,
// port number, and network protocol.
RemoteEndpoint *Endpoint `protobuf:"bytes,7,opt,name=remote_endpoint,json=remoteEndpoint" json:"remote_endpoint,omitempty"`
RemoteEndpoint *Endpoint `protobuf:"bytes,7,opt,name=remote_endpoint,json=remoteEndpoint,proto3" json:"remote_endpoint,omitempty"`
// (Optional) If target name is provided, a secure naming check is performed
// to verify that the peer authenticated identity is indeed authorized to run
// the target name.
TargetName string `protobuf:"bytes,8,opt,name=target_name,json=targetName" json:"target_name,omitempty"`
TargetName string `protobuf:"bytes,8,opt,name=target_name,json=targetName,proto3" json:"target_name,omitempty"`
// (Optional) RPC protocol versions supported by the client.
RpcVersions *RpcProtocolVersions `protobuf:"bytes,9,opt,name=rpc_versions,json=rpcVersions" json:"rpc_versions,omitempty"`
RpcVersions *RpcProtocolVersions `protobuf:"bytes,9,opt,name=rpc_versions,json=rpcVersions,proto3" json:"rpc_versions,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *StartClientHandshakeReq) Reset() { *m = StartClientHandshakeReq{} }
func (m *StartClientHandshakeReq) String() string { return proto.CompactTextString(m) }
func (*StartClientHandshakeReq) ProtoMessage() {}
func (*StartClientHandshakeReq) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} }
func (m *StartClientHandshakeReq) Reset() { *m = StartClientHandshakeReq{} }
func (m *StartClientHandshakeReq) String() string { return proto.CompactTextString(m) }
func (*StartClientHandshakeReq) ProtoMessage() {}
func (*StartClientHandshakeReq) Descriptor() ([]byte, []int) {
return fileDescriptor_handshaker_b28e45bdd1661054, []int{2}
}
func (m *StartClientHandshakeReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StartClientHandshakeReq.Unmarshal(m, b)
}
func (m *StartClientHandshakeReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_StartClientHandshakeReq.Marshal(b, m, deterministic)
}
func (dst *StartClientHandshakeReq) XXX_Merge(src proto.Message) {
xxx_messageInfo_StartClientHandshakeReq.Merge(dst, src)
}
func (m *StartClientHandshakeReq) XXX_Size() int {
return xxx_messageInfo_StartClientHandshakeReq.Size(m)
}
func (m *StartClientHandshakeReq) XXX_DiscardUnknown() {
xxx_messageInfo_StartClientHandshakeReq.DiscardUnknown(m)
}
var xxx_messageInfo_StartClientHandshakeReq proto.InternalMessageInfo
func (m *StartClientHandshakeReq) GetHandshakeSecurityProtocol() HandshakeProtocol {
if m != nil {
@ -318,16 +394,38 @@ func (m *StartClientHandshakeReq) GetRpcVersions() *RpcProtocolVersions {
type ServerHandshakeParameters struct {
// The record protocols supported by the server, e.g.,
// "ALTSRP_GCM_AES128".
RecordProtocols []string `protobuf:"bytes,1,rep,name=record_protocols,json=recordProtocols" json:"record_protocols,omitempty"`
RecordProtocols []string `protobuf:"bytes,1,rep,name=record_protocols,json=recordProtocols,proto3" json:"record_protocols,omitempty"`
// (Optional) A list of local identities supported by the server, if
// specified. Otherwise, the handshaker chooses a default local identity.
LocalIdentities []*Identity `protobuf:"bytes,2,rep,name=local_identities,json=localIdentities" json:"local_identities,omitempty"`
LocalIdentities []*Identity `protobuf:"bytes,2,rep,name=local_identities,json=localIdentities,proto3" json:"local_identities,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ServerHandshakeParameters) Reset() { *m = ServerHandshakeParameters{} }
func (m *ServerHandshakeParameters) String() string { return proto.CompactTextString(m) }
func (*ServerHandshakeParameters) ProtoMessage() {}
func (*ServerHandshakeParameters) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} }
func (m *ServerHandshakeParameters) Reset() { *m = ServerHandshakeParameters{} }
func (m *ServerHandshakeParameters) String() string { return proto.CompactTextString(m) }
func (*ServerHandshakeParameters) ProtoMessage() {}
func (*ServerHandshakeParameters) Descriptor() ([]byte, []int) {
return fileDescriptor_handshaker_b28e45bdd1661054, []int{3}
}
func (m *ServerHandshakeParameters) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ServerHandshakeParameters.Unmarshal(m, b)
}
func (m *ServerHandshakeParameters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ServerHandshakeParameters.Marshal(b, m, deterministic)
}
func (dst *ServerHandshakeParameters) XXX_Merge(src proto.Message) {
xxx_messageInfo_ServerHandshakeParameters.Merge(dst, src)
}
func (m *ServerHandshakeParameters) XXX_Size() int {
return xxx_messageInfo_ServerHandshakeParameters.Size(m)
}
func (m *ServerHandshakeParameters) XXX_DiscardUnknown() {
xxx_messageInfo_ServerHandshakeParameters.DiscardUnknown(m)
}
var xxx_messageInfo_ServerHandshakeParameters proto.InternalMessageInfo
func (m *ServerHandshakeParameters) GetRecordProtocols() []string {
if m != nil {
@ -346,30 +444,52 @@ func (m *ServerHandshakeParameters) GetLocalIdentities() []*Identity {
type StartServerHandshakeReq struct {
// The application protocols supported by the server, e.g., "h2" (for http2),
// "grpc".
ApplicationProtocols []string `protobuf:"bytes,1,rep,name=application_protocols,json=applicationProtocols" json:"application_protocols,omitempty"`
ApplicationProtocols []string `protobuf:"bytes,1,rep,name=application_protocols,json=applicationProtocols,proto3" json:"application_protocols,omitempty"`
// Handshake parameters (record protocols and local identities supported by
// the server) mapped by the handshake protocol. Each handshake security
// protocol (e.g., TLS or ALTS) has its own set of record protocols and local
// identities. Since protobuf does not support enum as key to the map, the key
// to handshake_parameters is the integer value of HandshakeProtocol enum.
HandshakeParameters map[int32]*ServerHandshakeParameters `protobuf:"bytes,2,rep,name=handshake_parameters,json=handshakeParameters" json:"handshake_parameters,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
HandshakeParameters map[int32]*ServerHandshakeParameters `protobuf:"bytes,2,rep,name=handshake_parameters,json=handshakeParameters,proto3" json:"handshake_parameters,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// Bytes in out_frames returned from the peer's HandshakerResp. It is possible
// that the peer's out_frames are split into multiple HandshakReq messages.
InBytes []byte `protobuf:"bytes,3,opt,name=in_bytes,json=inBytes,proto3" json:"in_bytes,omitempty"`
// (Optional) Local endpoint information of the connection to the client,
// such as local IP address, port number, and network protocol.
LocalEndpoint *Endpoint `protobuf:"bytes,4,opt,name=local_endpoint,json=localEndpoint" json:"local_endpoint,omitempty"`
LocalEndpoint *Endpoint `protobuf:"bytes,4,opt,name=local_endpoint,json=localEndpoint,proto3" json:"local_endpoint,omitempty"`
// (Optional) Endpoint information of the remote client, such as IP address,
// port number, and network protocol.
RemoteEndpoint *Endpoint `protobuf:"bytes,5,opt,name=remote_endpoint,json=remoteEndpoint" json:"remote_endpoint,omitempty"`
RemoteEndpoint *Endpoint `protobuf:"bytes,5,opt,name=remote_endpoint,json=remoteEndpoint,proto3" json:"remote_endpoint,omitempty"`
// (Optional) RPC protocol versions supported by the server.
RpcVersions *RpcProtocolVersions `protobuf:"bytes,6,opt,name=rpc_versions,json=rpcVersions" json:"rpc_versions,omitempty"`
RpcVersions *RpcProtocolVersions `protobuf:"bytes,6,opt,name=rpc_versions,json=rpcVersions,proto3" json:"rpc_versions,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *StartServerHandshakeReq) Reset() { *m = StartServerHandshakeReq{} }
func (m *StartServerHandshakeReq) String() string { return proto.CompactTextString(m) }
func (*StartServerHandshakeReq) ProtoMessage() {}
func (*StartServerHandshakeReq) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} }
func (m *StartServerHandshakeReq) Reset() { *m = StartServerHandshakeReq{} }
func (m *StartServerHandshakeReq) String() string { return proto.CompactTextString(m) }
func (*StartServerHandshakeReq) ProtoMessage() {}
func (*StartServerHandshakeReq) Descriptor() ([]byte, []int) {
return fileDescriptor_handshaker_b28e45bdd1661054, []int{4}
}
func (m *StartServerHandshakeReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StartServerHandshakeReq.Unmarshal(m, b)
}
func (m *StartServerHandshakeReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_StartServerHandshakeReq.Marshal(b, m, deterministic)
}
func (dst *StartServerHandshakeReq) XXX_Merge(src proto.Message) {
xxx_messageInfo_StartServerHandshakeReq.Merge(dst, src)
}
func (m *StartServerHandshakeReq) XXX_Size() int {
return xxx_messageInfo_StartServerHandshakeReq.Size(m)
}
func (m *StartServerHandshakeReq) XXX_DiscardUnknown() {
xxx_messageInfo_StartServerHandshakeReq.DiscardUnknown(m)
}
var xxx_messageInfo_StartServerHandshakeReq proto.InternalMessageInfo
func (m *StartServerHandshakeReq) GetApplicationProtocols() []string {
if m != nil {
@ -417,13 +537,35 @@ type NextHandshakeMessageReq struct {
// Bytes in out_frames returned from the peer's HandshakerResp. It is possible
// that the peer's out_frames are split into multiple NextHandshakerMessageReq
// messages.
InBytes []byte `protobuf:"bytes,1,opt,name=in_bytes,json=inBytes,proto3" json:"in_bytes,omitempty"`
InBytes []byte `protobuf:"bytes,1,opt,name=in_bytes,json=inBytes,proto3" json:"in_bytes,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *NextHandshakeMessageReq) Reset() { *m = NextHandshakeMessageReq{} }
func (m *NextHandshakeMessageReq) String() string { return proto.CompactTextString(m) }
func (*NextHandshakeMessageReq) ProtoMessage() {}
func (*NextHandshakeMessageReq) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} }
func (m *NextHandshakeMessageReq) Reset() { *m = NextHandshakeMessageReq{} }
func (m *NextHandshakeMessageReq) String() string { return proto.CompactTextString(m) }
func (*NextHandshakeMessageReq) ProtoMessage() {}
func (*NextHandshakeMessageReq) Descriptor() ([]byte, []int) {
return fileDescriptor_handshaker_b28e45bdd1661054, []int{5}
}
func (m *NextHandshakeMessageReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NextHandshakeMessageReq.Unmarshal(m, b)
}
func (m *NextHandshakeMessageReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NextHandshakeMessageReq.Marshal(b, m, deterministic)
}
func (dst *NextHandshakeMessageReq) XXX_Merge(src proto.Message) {
xxx_messageInfo_NextHandshakeMessageReq.Merge(dst, src)
}
func (m *NextHandshakeMessageReq) XXX_Size() int {
return xxx_messageInfo_NextHandshakeMessageReq.Size(m)
}
func (m *NextHandshakeMessageReq) XXX_DiscardUnknown() {
xxx_messageInfo_NextHandshakeMessageReq.DiscardUnknown(m)
}
var xxx_messageInfo_NextHandshakeMessageReq proto.InternalMessageInfo
func (m *NextHandshakeMessageReq) GetInBytes() []byte {
if m != nil {
@ -437,26 +579,48 @@ type HandshakerReq struct {
// *HandshakerReq_ClientStart
// *HandshakerReq_ServerStart
// *HandshakerReq_Next
ReqOneof isHandshakerReq_ReqOneof `protobuf_oneof:"req_oneof"`
ReqOneof isHandshakerReq_ReqOneof `protobuf_oneof:"req_oneof"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *HandshakerReq) Reset() { *m = HandshakerReq{} }
func (m *HandshakerReq) String() string { return proto.CompactTextString(m) }
func (*HandshakerReq) ProtoMessage() {}
func (*HandshakerReq) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} }
func (m *HandshakerReq) Reset() { *m = HandshakerReq{} }
func (m *HandshakerReq) String() string { return proto.CompactTextString(m) }
func (*HandshakerReq) ProtoMessage() {}
func (*HandshakerReq) Descriptor() ([]byte, []int) {
return fileDescriptor_handshaker_b28e45bdd1661054, []int{6}
}
func (m *HandshakerReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_HandshakerReq.Unmarshal(m, b)
}
func (m *HandshakerReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_HandshakerReq.Marshal(b, m, deterministic)
}
func (dst *HandshakerReq) XXX_Merge(src proto.Message) {
xxx_messageInfo_HandshakerReq.Merge(dst, src)
}
func (m *HandshakerReq) XXX_Size() int {
return xxx_messageInfo_HandshakerReq.Size(m)
}
func (m *HandshakerReq) XXX_DiscardUnknown() {
xxx_messageInfo_HandshakerReq.DiscardUnknown(m)
}
var xxx_messageInfo_HandshakerReq proto.InternalMessageInfo
type isHandshakerReq_ReqOneof interface {
isHandshakerReq_ReqOneof()
}
type HandshakerReq_ClientStart struct {
ClientStart *StartClientHandshakeReq `protobuf:"bytes,1,opt,name=client_start,json=clientStart,oneof"`
ClientStart *StartClientHandshakeReq `protobuf:"bytes,1,opt,name=client_start,json=clientStart,proto3,oneof"`
}
type HandshakerReq_ServerStart struct {
ServerStart *StartServerHandshakeReq `protobuf:"bytes,2,opt,name=server_start,json=serverStart,oneof"`
ServerStart *StartServerHandshakeReq `protobuf:"bytes,2,opt,name=server_start,json=serverStart,proto3,oneof"`
}
type HandshakerReq_Next struct {
Next *NextHandshakeMessageReq `protobuf:"bytes,3,opt,name=next,oneof"`
Next *NextHandshakeMessageReq `protobuf:"bytes,3,opt,name=next,proto3,oneof"`
}
func (*HandshakerReq_ClientStart) isHandshakerReq_ReqOneof() {}
@ -564,17 +728,17 @@ func _HandshakerReq_OneofSizer(msg proto.Message) (n int) {
switch x := m.ReqOneof.(type) {
case *HandshakerReq_ClientStart:
s := proto.Size(x.ClientStart)
n += proto.SizeVarint(1<<3 | proto.WireBytes)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *HandshakerReq_ServerStart:
s := proto.Size(x.ServerStart)
n += proto.SizeVarint(2<<3 | proto.WireBytes)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *HandshakerReq_Next:
s := proto.Size(x.Next)
n += proto.SizeVarint(3<<3 | proto.WireBytes)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case nil:
@ -586,29 +750,51 @@ func _HandshakerReq_OneofSizer(msg proto.Message) (n int) {
type HandshakerResult struct {
// The application protocol negotiated for this connection.
ApplicationProtocol string `protobuf:"bytes,1,opt,name=application_protocol,json=applicationProtocol" json:"application_protocol,omitempty"`
ApplicationProtocol string `protobuf:"bytes,1,opt,name=application_protocol,json=applicationProtocol,proto3" json:"application_protocol,omitempty"`
// The record protocol negotiated for this connection.
RecordProtocol string `protobuf:"bytes,2,opt,name=record_protocol,json=recordProtocol" json:"record_protocol,omitempty"`
RecordProtocol string `protobuf:"bytes,2,opt,name=record_protocol,json=recordProtocol,proto3" json:"record_protocol,omitempty"`
// Cryptographic key data. The key data may be more than the key length
// required for the record protocol, thus the client of the handshaker
// service needs to truncate the key data into the right key length.
KeyData []byte `protobuf:"bytes,3,opt,name=key_data,json=keyData,proto3" json:"key_data,omitempty"`
// The authenticated identity of the peer.
PeerIdentity *Identity `protobuf:"bytes,4,opt,name=peer_identity,json=peerIdentity" json:"peer_identity,omitempty"`
PeerIdentity *Identity `protobuf:"bytes,4,opt,name=peer_identity,json=peerIdentity,proto3" json:"peer_identity,omitempty"`
// The local identity used in the handshake.
LocalIdentity *Identity `protobuf:"bytes,5,opt,name=local_identity,json=localIdentity" json:"local_identity,omitempty"`
LocalIdentity *Identity `protobuf:"bytes,5,opt,name=local_identity,json=localIdentity,proto3" json:"local_identity,omitempty"`
// Indicate whether the handshaker service client should keep the channel
// between the handshaker service open, e.g., in order to handle
// post-handshake messages in the future.
KeepChannelOpen bool `protobuf:"varint,6,opt,name=keep_channel_open,json=keepChannelOpen" json:"keep_channel_open,omitempty"`
KeepChannelOpen bool `protobuf:"varint,6,opt,name=keep_channel_open,json=keepChannelOpen,proto3" json:"keep_channel_open,omitempty"`
// The RPC protocol versions supported by the peer.
PeerRpcVersions *RpcProtocolVersions `protobuf:"bytes,7,opt,name=peer_rpc_versions,json=peerRpcVersions" json:"peer_rpc_versions,omitempty"`
PeerRpcVersions *RpcProtocolVersions `protobuf:"bytes,7,opt,name=peer_rpc_versions,json=peerRpcVersions,proto3" json:"peer_rpc_versions,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *HandshakerResult) Reset() { *m = HandshakerResult{} }
func (m *HandshakerResult) String() string { return proto.CompactTextString(m) }
func (*HandshakerResult) ProtoMessage() {}
func (*HandshakerResult) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} }
func (m *HandshakerResult) Reset() { *m = HandshakerResult{} }
func (m *HandshakerResult) String() string { return proto.CompactTextString(m) }
func (*HandshakerResult) ProtoMessage() {}
func (*HandshakerResult) Descriptor() ([]byte, []int) {
return fileDescriptor_handshaker_b28e45bdd1661054, []int{7}
}
func (m *HandshakerResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_HandshakerResult.Unmarshal(m, b)
}
func (m *HandshakerResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_HandshakerResult.Marshal(b, m, deterministic)
}
func (dst *HandshakerResult) XXX_Merge(src proto.Message) {
xxx_messageInfo_HandshakerResult.Merge(dst, src)
}
func (m *HandshakerResult) XXX_Size() int {
return xxx_messageInfo_HandshakerResult.Size(m)
}
func (m *HandshakerResult) XXX_DiscardUnknown() {
xxx_messageInfo_HandshakerResult.DiscardUnknown(m)
}
var xxx_messageInfo_HandshakerResult proto.InternalMessageInfo
func (m *HandshakerResult) GetApplicationProtocol() string {
if m != nil {
@ -661,15 +847,37 @@ func (m *HandshakerResult) GetPeerRpcVersions() *RpcProtocolVersions {
type HandshakerStatus struct {
// The status code. This could be the gRPC status code.
Code uint32 `protobuf:"varint,1,opt,name=code" json:"code,omitempty"`
Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
// The status details.
Details string `protobuf:"bytes,2,opt,name=details" json:"details,omitempty"`
Details string `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *HandshakerStatus) Reset() { *m = HandshakerStatus{} }
func (m *HandshakerStatus) String() string { return proto.CompactTextString(m) }
func (*HandshakerStatus) ProtoMessage() {}
func (*HandshakerStatus) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{8} }
func (m *HandshakerStatus) Reset() { *m = HandshakerStatus{} }
func (m *HandshakerStatus) String() string { return proto.CompactTextString(m) }
func (*HandshakerStatus) ProtoMessage() {}
func (*HandshakerStatus) Descriptor() ([]byte, []int) {
return fileDescriptor_handshaker_b28e45bdd1661054, []int{8}
}
func (m *HandshakerStatus) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_HandshakerStatus.Unmarshal(m, b)
}
func (m *HandshakerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_HandshakerStatus.Marshal(b, m, deterministic)
}
func (dst *HandshakerStatus) XXX_Merge(src proto.Message) {
xxx_messageInfo_HandshakerStatus.Merge(dst, src)
}
func (m *HandshakerStatus) XXX_Size() int {
return xxx_messageInfo_HandshakerStatus.Size(m)
}
func (m *HandshakerStatus) XXX_DiscardUnknown() {
xxx_messageInfo_HandshakerStatus.DiscardUnknown(m)
}
var xxx_messageInfo_HandshakerStatus proto.InternalMessageInfo
func (m *HandshakerStatus) GetCode() uint32 {
if m != nil {
@ -695,18 +903,40 @@ type HandshakerResp struct {
// Number of bytes in the in_bytes consumed by the handshaker. It is possible
// that part of in_bytes in HandshakerReq was unrelated to the handshake
// process.
BytesConsumed uint32 `protobuf:"varint,2,opt,name=bytes_consumed,json=bytesConsumed" json:"bytes_consumed,omitempty"`
BytesConsumed uint32 `protobuf:"varint,2,opt,name=bytes_consumed,json=bytesConsumed,proto3" json:"bytes_consumed,omitempty"`
// This is set iff the handshake was successful. out_frames may still be set
// to frames that needs to be forwarded to the peer.
Result *HandshakerResult `protobuf:"bytes,3,opt,name=result" json:"result,omitempty"`
Result *HandshakerResult `protobuf:"bytes,3,opt,name=result,proto3" json:"result,omitempty"`
// Status of the handshaker.
Status *HandshakerStatus `protobuf:"bytes,4,opt,name=status" json:"status,omitempty"`
Status *HandshakerStatus `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *HandshakerResp) Reset() { *m = HandshakerResp{} }
func (m *HandshakerResp) String() string { return proto.CompactTextString(m) }
func (*HandshakerResp) ProtoMessage() {}
func (*HandshakerResp) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{9} }
func (m *HandshakerResp) Reset() { *m = HandshakerResp{} }
func (m *HandshakerResp) String() string { return proto.CompactTextString(m) }
func (*HandshakerResp) ProtoMessage() {}
func (*HandshakerResp) Descriptor() ([]byte, []int) {
return fileDescriptor_handshaker_b28e45bdd1661054, []int{9}
}
func (m *HandshakerResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_HandshakerResp.Unmarshal(m, b)
}
func (m *HandshakerResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_HandshakerResp.Marshal(b, m, deterministic)
}
func (dst *HandshakerResp) XXX_Merge(src proto.Message) {
xxx_messageInfo_HandshakerResp.Merge(dst, src)
}
func (m *HandshakerResp) XXX_Size() int {
return xxx_messageInfo_HandshakerResp.Size(m)
}
func (m *HandshakerResp) XXX_DiscardUnknown() {
xxx_messageInfo_HandshakerResp.DiscardUnknown(m)
}
var xxx_messageInfo_HandshakerResp proto.InternalMessageInfo
func (m *HandshakerResp) GetOutFrames() []byte {
if m != nil {
@ -742,6 +972,7 @@ func init() {
proto.RegisterType((*StartClientHandshakeReq)(nil), "grpc.gcp.StartClientHandshakeReq")
proto.RegisterType((*ServerHandshakeParameters)(nil), "grpc.gcp.ServerHandshakeParameters")
proto.RegisterType((*StartServerHandshakeReq)(nil), "grpc.gcp.StartServerHandshakeReq")
proto.RegisterMapType((map[int32]*ServerHandshakeParameters)(nil), "grpc.gcp.StartServerHandshakeReq.HandshakeParametersEntry")
proto.RegisterType((*NextHandshakeMessageReq)(nil), "grpc.gcp.NextHandshakeMessageReq")
proto.RegisterType((*HandshakerReq)(nil), "grpc.gcp.HandshakerReq")
proto.RegisterType((*HandshakerResult)(nil), "grpc.gcp.HandshakerResult")
@ -759,8 +990,9 @@ var _ grpc.ClientConn
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4
// Client API for HandshakerService service
// HandshakerServiceClient is the client API for HandshakerService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type HandshakerServiceClient interface {
// Handshaker service accepts a stream of handshaker request, returning a
// stream of handshaker response. Client is expected to send exactly one
@ -780,7 +1012,7 @@ func NewHandshakerServiceClient(cc *grpc.ClientConn) HandshakerServiceClient {
}
func (c *handshakerServiceClient) DoHandshake(ctx context.Context, opts ...grpc.CallOption) (HandshakerService_DoHandshakeClient, error) {
stream, err := grpc.NewClientStream(ctx, &_HandshakerService_serviceDesc.Streams[0], c.cc, "/grpc.gcp.HandshakerService/DoHandshake", opts...)
stream, err := c.cc.NewStream(ctx, &_HandshakerService_serviceDesc.Streams[0], "/grpc.gcp.HandshakerService/DoHandshake", opts...)
if err != nil {
return nil, err
}
@ -810,8 +1042,7 @@ func (x *handshakerServiceDoHandshakeClient) Recv() (*HandshakerResp, error) {
return m, nil
}
// Server API for HandshakerService service
// HandshakerServiceServer is the server API for HandshakerService service.
type HandshakerServiceServer interface {
// Handshaker service accepts a stream of handshaker request, returning a
// stream of handshaker response. Client is expected to send exactly one
@ -864,79 +1095,84 @@ var _HandshakerService_serviceDesc = grpc.ServiceDesc{
ClientStreams: true,
},
},
Metadata: "handshaker.proto",
Metadata: "grpc/gcp/handshaker.proto",
}
func init() { proto.RegisterFile("handshaker.proto", fileDescriptor1) }
var fileDescriptor1 = []byte{
// 1073 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xdd, 0x6e, 0x1a, 0x47,
0x14, 0xf6, 0x02, 0xb6, 0xe1, 0x60, 0x60, 0x3d, 0x49, 0x64, 0xec, 0x24, 0x0d, 0xa5, 0xaa, 0x4a,
0x72, 0x81, 0x5a, 0xd2, 0x2a, 0x4d, 0xaa, 0xaa, 0xb1, 0x31, 0x16, 0x6e, 0x5c, 0x6c, 0x0d, 0x4e,
0x7b, 0x91, 0x8b, 0xd5, 0x64, 0x39, 0xb1, 0x57, 0xc0, 0xcc, 0x7a, 0x66, 0x70, 0xc3, 0x03, 0xf4,
0x71, 0xfa, 0x0a, 0x7d, 0x9b, 0xbe, 0x41, 0xef, 0x5b, 0xed, 0xec, 0x1f, 0xc6, 0x4b, 0x94, 0xa8,
0x77, 0xbb, 0x67, 0xbf, 0xef, 0xec, 0x9c, 0xef, 0x7c, 0x73, 0x66, 0xc0, 0xbe, 0x64, 0x7c, 0xa4,
0x2e, 0xd9, 0x18, 0x65, 0xdb, 0x97, 0x42, 0x0b, 0x52, 0xbc, 0x90, 0xbe, 0xdb, 0xbe, 0x70, 0xfd,
0xbd, 0x47, 0x5a, 0x32, 0xae, 0x7c, 0x21, 0xb5, 0xa3, 0xd0, 0x9d, 0x49, 0x4f, 0xcf, 0x1d, 0x57,
0x4c, 0xa7, 0x82, 0x87, 0xd0, 0xa6, 0x86, 0x62, 0x8f, 0x8f, 0x7c, 0xe1, 0x71, 0x4d, 0x1e, 0x02,
0x78, 0xbe, 0xc3, 0x46, 0x23, 0x89, 0x4a, 0xd5, 0xad, 0x86, 0xd5, 0x2a, 0xd1, 0x92, 0xe7, 0xef,
0x87, 0x01, 0x42, 0xa0, 0x10, 0x24, 0xaa, 0xe7, 0x1a, 0x56, 0x6b, 0x9d, 0x9a, 0x67, 0xf2, 0x1d,
0x14, 0x4d, 0x1e, 0x57, 0x4c, 0xea, 0xf9, 0x86, 0xd5, 0xaa, 0x76, 0x76, 0xdb, 0xf1, 0xcf, 0xdb,
0x03, 0xd4, 0xbf, 0x0b, 0x39, 0x3e, 0x8b, 0x00, 0x34, 0x81, 0x36, 0x11, 0x8a, 0xc7, 0x23, 0xe4,
0xda, 0xd3, 0x73, 0xf2, 0x18, 0x6a, 0x0a, 0xe5, 0xb5, 0xe7, 0xa2, 0xc3, 0x5c, 0x57, 0xcc, 0xb8,
0x0e, 0x7f, 0xdd, 0x5f, 0xa3, 0xd5, 0xe8, 0xc3, 0x7e, 0x18, 0x27, 0x0f, 0xa0, 0x78, 0x29, 0x94,
0xe6, 0x6c, 0x8a, 0x66, 0x15, 0x01, 0x26, 0x89, 0x1c, 0xd8, 0x50, 0xf5, 0xa2, 0xa4, 0x8e, 0xe0,
0x28, 0xde, 0x35, 0xff, 0x2c, 0xc0, 0xce, 0x50, 0x33, 0xa9, 0xbb, 0x13, 0x0f, 0xb9, 0xee, 0xc7,
0x3a, 0x51, 0xbc, 0x22, 0x6f, 0xe0, 0x7e, 0xa2, 0x5b, 0xaa, 0x4d, 0x52, 0x8c, 0x65, 0x8a, 0xb9,
0x9f, 0x16, 0x93, 0x90, 0x93, 0x72, 0x76, 0x13, 0xfe, 0x30, 0xa2, 0xc7, 0x9f, 0xc8, 0x53, 0xb8,
0xc7, 0x7c, 0x7f, 0xe2, 0xb9, 0x4c, 0x7b, 0x82, 0x27, 0x59, 0x55, 0x3d, 0xd7, 0xc8, 0xb7, 0x4a,
0xf4, 0xee, 0xc2, 0xc7, 0x98, 0xa3, 0xc8, 0x63, 0xb0, 0x25, 0xba, 0x42, 0x8e, 0x16, 0xf0, 0x79,
0x83, 0xaf, 0x85, 0xf1, 0x14, 0xfa, 0x13, 0x6c, 0x6b, 0x26, 0x2f, 0x50, 0x3b, 0x51, 0xc5, 0x1e,
0xaa, 0x7a, 0xa1, 0x91, 0x6f, 0x95, 0x3b, 0x24, 0x5d, 0x72, 0x2c, 0x31, 0xb5, 0x43, 0xf0, 0x71,
0x82, 0x25, 0xcf, 0xa1, 0x3a, 0x11, 0x2e, 0x9b, 0xc4, 0xfc, 0x79, 0x7d, 0xbd, 0x61, 0xad, 0x60,
0x57, 0x0c, 0x32, 0xe9, 0x57, 0x42, 0xc5, 0xc8, 0x37, 0xf5, 0x8d, 0x65, 0x6a, 0xec, 0xa8, 0x88,
0x9a, 0x18, 0xec, 0x07, 0xa8, 0x49, 0x9c, 0x0a, 0x8d, 0x29, 0x77, 0x73, 0x25, 0xb7, 0x1a, 0x42,
0x13, 0xf2, 0x23, 0x28, 0x47, 0x35, 0x9b, 0xfe, 0x17, 0x8d, 0x3d, 0x21, 0x0c, 0x0d, 0xd8, 0x14,
0xc9, 0x4b, 0xd8, 0x92, 0xbe, 0xeb, 0x5c, 0xa3, 0x54, 0x9e, 0xe0, 0xaa, 0x5e, 0x32, 0xa9, 0x1f,
0xa6, 0xa9, 0xa9, 0xef, 0xc6, 0x12, 0xfe, 0x1a, 0x81, 0x68, 0x59, 0xfa, 0x6e, 0xfc, 0xd2, 0xfc,
0xc3, 0x82, 0xdd, 0x21, 0xca, 0x6b, 0x94, 0x69, 0xb7, 0x99, 0x64, 0x53, 0xd4, 0x28, 0xb3, 0xfb,
0x63, 0x65, 0xf7, 0xe7, 0x47, 0xb0, 0x6f, 0xc8, 0x1b, 0xb4, 0x27, 0xb7, 0xb2, 0x3d, 0xb5, 0x45,
0x81, 0x3d, 0x54, 0xcd, 0x7f, 0xf3, 0x91, 0x6f, 0x97, 0x16, 0x13, 0xf8, 0x76, 0xa5, 0xb5, 0xac,
0x0f, 0x58, 0x6b, 0x0a, 0x77, 0x53, 0xb3, 0xfb, 0x49, 0x49, 0xd1, 0x9a, 0x5e, 0xa4, 0x6b, 0x5a,
0xf1, 0xd7, 0x76, 0x86, 0x1e, 0x3d, 0xae, 0xe5, 0x9c, 0xde, 0xb9, 0xcc, 0x50, 0x6a, 0x17, 0x8a,
0x1e, 0x77, 0xde, 0xce, 0x35, 0x2a, 0x33, 0x15, 0xb6, 0xe8, 0xa6, 0xc7, 0x0f, 0x82, 0xd7, 0x0c,
0xf7, 0x14, 0xfe, 0x87, 0x7b, 0xd6, 0x3f, 0xda, 0x3d, 0xcb, 0xe6, 0xd8, 0xf8, 0x54, 0x73, 0xec,
0x8d, 0xa1, 0xbe, 0x4a, 0x05, 0x62, 0x43, 0x7e, 0x8c, 0x73, 0x33, 0x34, 0xd6, 0x69, 0xf0, 0x48,
0x9e, 0xc3, 0xfa, 0x35, 0x9b, 0xcc, 0xc2, 0x39, 0x55, 0xee, 0x7c, 0xb1, 0x20, 0xf1, 0x2a, 0x83,
0xd1, 0x90, 0xf1, 0x22, 0xf7, 0xbd, 0xd5, 0xfc, 0x16, 0x76, 0x06, 0xf8, 0x3e, 0x9d, 0x58, 0xbf,
0xa0, 0x52, 0xec, 0xc2, 0x18, 0x60, 0x51, 0x5c, 0xeb, 0x86, 0xb8, 0xcd, 0xbf, 0x2d, 0xa8, 0x24,
0x14, 0x19, 0x80, 0x8f, 0x60, 0xcb, 0x35, 0xb3, 0xcf, 0x51, 0x41, 0x67, 0x0d, 0xa1, 0xdc, 0xf9,
0x7c, 0xa9, 0xe1, 0xb7, 0xc7, 0x63, 0x7f, 0x8d, 0x96, 0x43, 0xa2, 0x01, 0x04, 0x79, 0x94, 0x59,
0x77, 0x94, 0x27, 0x97, 0x99, 0xe7, 0xb6, 0x71, 0x82, 0x3c, 0x21, 0x31, 0xcc, 0xf3, 0x0c, 0x0a,
0x1c, 0xdf, 0x6b, 0xe3, 0x8a, 0x1b, 0xfc, 0x15, 0xd5, 0xf6, 0xd7, 0xa8, 0x21, 0x1c, 0x94, 0xa1,
0x24, 0xf1, 0x2a, 0x9a, 0xeb, 0xff, 0xe4, 0xc0, 0x5e, 0xac, 0x53, 0xcd, 0x26, 0x9a, 0x7c, 0x03,
0x77, 0xb3, 0x36, 0x46, 0x74, 0x8e, 0xdd, 0xc9, 0xd8, 0x17, 0xe4, 0x2b, 0xa8, 0x2d, 0xed, 0xe8,
0xf0, 0x58, 0x09, 0xdc, 0xb3, 0xb8, 0xa1, 0x03, 0xcd, 0xc7, 0x38, 0x77, 0x46, 0x4c, 0xb3, 0xd8,
0xd0, 0x63, 0x9c, 0x1f, 0x32, 0xcd, 0xc8, 0x33, 0xa8, 0xf8, 0x88, 0x32, 0x1d, 0xa4, 0x85, 0x95,
0x83, 0x74, 0x2b, 0x00, 0xde, 0x9e, 0xa3, 0x9f, 0x3e, 0x82, 0x9f, 0xc0, 0xf6, 0x18, 0xd1, 0x77,
0xdc, 0x4b, 0xc6, 0x39, 0x4e, 0x1c, 0xe1, 0x23, 0x37, 0x8e, 0x2e, 0xd2, 0x5a, 0xf0, 0xa1, 0x1b,
0xc6, 0x4f, 0x7d, 0xe4, 0xe4, 0x18, 0xb6, 0xcd, 0xfa, 0x6e, 0xb8, 0x7f, 0xf3, 0x63, 0xdc, 0x5f,
0x0b, 0x78, 0x74, 0x61, 0x3c, 0xbe, 0x5c, 0x54, 0x7d, 0xa8, 0x99, 0x9e, 0x99, 0x4b, 0x81, 0x2b,
0x46, 0x68, 0x54, 0xae, 0x50, 0xf3, 0x4c, 0xea, 0xb0, 0x39, 0x42, 0xcd, 0x3c, 0x73, 0xde, 0x05,
0x72, 0xc6, 0xaf, 0xcd, 0xbf, 0x2c, 0xa8, 0xde, 0x68, 0x9c, 0x1f, 0x5c, 0x3a, 0xc4, 0x4c, 0x3b,
0xef, 0x82, 0x5d, 0x10, 0x1b, 0xba, 0x24, 0x66, 0xfa, 0xc8, 0x04, 0xc8, 0x97, 0x50, 0x35, 0x56,
0x77, 0x5c, 0xc1, 0xd5, 0x6c, 0x8a, 0x23, 0x93, 0xb2, 0x42, 0x2b, 0x26, 0xda, 0x8d, 0x82, 0xa4,
0x03, 0x1b, 0xd2, 0xd8, 0x20, 0x72, 0xd6, 0x5e, 0xc6, 0xc1, 0x1d, 0x19, 0x85, 0x46, 0xc8, 0x80,
0xa3, 0x4c, 0x11, 0x51, 0xcb, 0x32, 0x39, 0x61, 0x99, 0x34, 0x42, 0x3e, 0xf9, 0x19, 0xb6, 0x6f,
0x5d, 0x04, 0x48, 0x13, 0x3e, 0xeb, 0xef, 0x0f, 0x0e, 0x87, 0xfd, 0xfd, 0x57, 0x3d, 0xe7, 0x8c,
0x9e, 0x9e, 0x9f, 0x76, 0x4f, 0x4f, 0x9c, 0xd7, 0x83, 0xe1, 0x59, 0xaf, 0x7b, 0x7c, 0x74, 0xdc,
0x3b, 0xb4, 0xd7, 0xc8, 0x26, 0xe4, 0xcf, 0x4f, 0x86, 0xb6, 0x45, 0x8a, 0x50, 0xd8, 0x3f, 0x39,
0x1f, 0xda, 0xb9, 0x27, 0x3d, 0xa8, 0x2d, 0xdd, 0x90, 0x48, 0x03, 0x1e, 0x0c, 0x7a, 0xe7, 0xbf,
0x9d, 0xd2, 0x57, 0x1f, 0xca, 0xd3, 0x3d, 0xb3, 0xad, 0xe0, 0xe1, 0xf5, 0xe1, 0x99, 0x9d, 0xeb,
0xbc, 0x59, 0x58, 0x92, 0x1c, 0x86, 0x17, 0x26, 0x72, 0x04, 0xe5, 0x43, 0x91, 0x84, 0xc9, 0x4e,
0xb6, 0x1c, 0x57, 0x7b, 0xf5, 0x15, 0x3a, 0xf9, 0xcd, 0xb5, 0x96, 0xf5, 0xb5, 0x75, 0xb0, 0x03,
0xf7, 0x3c, 0x11, 0x62, 0xd8, 0x44, 0xab, 0xb6, 0xc7, 0x35, 0x4a, 0xce, 0x26, 0x6f, 0x37, 0xcc,
0x8e, 0x79, 0xfa, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x76, 0x65, 0x6f, 0x3a, 0x7d, 0x0a, 0x00,
0x00,
func init() {
proto.RegisterFile("grpc/gcp/handshaker.proto", fileDescriptor_handshaker_b28e45bdd1661054)
}
var fileDescriptor_handshaker_b28e45bdd1661054 = []byte{
// 1128 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xdf, 0x6e, 0x1a, 0xc7,
0x17, 0xf6, 0x02, 0xb6, 0xe1, 0x60, 0xfe, 0x78, 0x92, 0x28, 0xd8, 0x49, 0x7e, 0x3f, 0x4a, 0x55,
0x95, 0xf8, 0x02, 0x5a, 0xd2, 0x2a, 0x4d, 0xa2, 0xaa, 0xb1, 0x31, 0x16, 0x6e, 0x5c, 0x8c, 0x16,
0xa7, 0x95, 0x9a, 0x8b, 0xd5, 0x64, 0x39, 0x59, 0xaf, 0x58, 0x66, 0xd6, 0x33, 0x83, 0x1b, 0x1e,
0xa0, 0x8f, 0xd3, 0x57, 0xe8, 0xdb, 0xf4, 0x0d, 0x7a, 0xdf, 0x6a, 0x67, 0xff, 0x61, 0x0c, 0x51,
0xa2, 0xde, 0xed, 0xce, 0x7c, 0xdf, 0xd9, 0x73, 0xbe, 0xf3, 0xcd, 0xd9, 0x81, 0x3d, 0x47, 0xf8,
0x76, 0xdb, 0xb1, 0xfd, 0xf6, 0x25, 0x65, 0x63, 0x79, 0x49, 0x27, 0x28, 0x5a, 0xbe, 0xe0, 0x8a,
0x93, 0x7c, 0xb0, 0xd5, 0x72, 0x6c, 0x7f, 0xbf, 0x99, 0x80, 0x94, 0xa0, 0x4c, 0xfa, 0x5c, 0x28,
0x4b, 0xa2, 0x3d, 0x13, 0xae, 0x9a, 0x5b, 0x36, 0x9f, 0x4e, 0x39, 0x0b, 0x39, 0x0d, 0x05, 0xf9,
0x1e, 0x1b, 0xfb, 0xdc, 0x65, 0x8a, 0x3c, 0x02, 0x70, 0x7d, 0x8b, 0x8e, 0xc7, 0x02, 0xa5, 0xac,
0x19, 0x75, 0xa3, 0x59, 0x30, 0x0b, 0xae, 0x7f, 0x18, 0x2e, 0x10, 0x02, 0xb9, 0x20, 0x50, 0x2d,
0x53, 0x37, 0x9a, 0x9b, 0xa6, 0x7e, 0x26, 0xdf, 0x42, 0x5e, 0xc7, 0xb1, 0xb9, 0x57, 0xcb, 0xd6,
0x8d, 0x66, 0xb9, 0xb3, 0xd7, 0x8a, 0xb3, 0x68, 0x0d, 0x50, 0xfd, 0xc6, 0xc5, 0x64, 0x18, 0x01,
0xcc, 0x04, 0xda, 0x40, 0xc8, 0x9f, 0x8e, 0x91, 0x29, 0x57, 0xcd, 0xc9, 0x63, 0xa8, 0x48, 0x14,
0xd7, 0xae, 0x8d, 0x16, 0xb5, 0x6d, 0x3e, 0x63, 0x2a, 0xfc, 0x74, 0x7f, 0xc3, 0x2c, 0x47, 0x1b,
0x87, 0xe1, 0x3a, 0x79, 0x08, 0xf9, 0x4b, 0x2e, 0x15, 0xa3, 0x53, 0xd4, 0x59, 0x04, 0x98, 0x64,
0xe5, 0xa8, 0x0a, 0x65, 0x37, 0x0a, 0x6a, 0x71, 0x86, 0xfc, 0x5d, 0xe3, 0x8f, 0x1c, 0xdc, 0x1f,
0x29, 0x2a, 0x54, 0xd7, 0x73, 0x91, 0xa9, 0x7e, 0x2c, 0x98, 0x89, 0x57, 0xe4, 0x0d, 0x3c, 0x48,
0x04, 0x4c, 0xb5, 0x49, 0x8a, 0x31, 0x74, 0x31, 0x0f, 0xd2, 0x62, 0x12, 0x72, 0x52, 0xce, 0x5e,
0xc2, 0x1f, 0x45, 0xf4, 0x78, 0x8b, 0x3c, 0x81, 0x7b, 0xd4, 0xf7, 0x3d, 0xd7, 0xa6, 0xca, 0xe5,
0x2c, 0x89, 0x2a, 0x6b, 0x99, 0x7a, 0xb6, 0x59, 0x30, 0xef, 0x2e, 0x6c, 0xc6, 0x1c, 0x49, 0x1e,
0x43, 0x55, 0xa0, 0xcd, 0xc5, 0x78, 0x01, 0x9f, 0xd5, 0xf8, 0x4a, 0xb8, 0x9e, 0x42, 0x7f, 0x80,
0x5d, 0x45, 0x85, 0x83, 0xca, 0x8a, 0x2a, 0x76, 0x51, 0xd6, 0x72, 0xf5, 0x6c, 0xb3, 0xd8, 0x21,
0x69, 0xca, 0xb1, 0xc4, 0x66, 0x35, 0x04, 0x9f, 0x26, 0x58, 0xf2, 0x0c, 0xca, 0x1e, 0xb7, 0xa9,
0x17, 0xf3, 0xe7, 0xb5, 0xcd, 0xba, 0xb1, 0x86, 0x5d, 0xd2, 0xc8, 0xa4, 0x5f, 0x09, 0x15, 0x23,
0xdf, 0xd4, 0xb6, 0x96, 0xa9, 0xb1, 0xa3, 0x22, 0x6a, 0x62, 0xb0, 0x17, 0x50, 0x11, 0x38, 0xe5,
0x0a, 0x53, 0xee, 0xf6, 0x5a, 0x6e, 0x39, 0x84, 0x26, 0xe4, 0xff, 0x43, 0x31, 0xaa, 0x59, 0xf7,
0x3f, 0xaf, 0xed, 0x09, 0xe1, 0xd2, 0x80, 0x4e, 0x91, 0xbc, 0x84, 0x1d, 0xe1, 0xdb, 0xd6, 0x35,
0x0a, 0xe9, 0x72, 0x26, 0x6b, 0x05, 0x1d, 0xfa, 0x51, 0x1a, 0xda, 0xf4, 0xed, 0x58, 0xc2, 0x9f,
0x23, 0x90, 0x59, 0x14, 0xbe, 0x1d, 0xbf, 0x34, 0x7e, 0x37, 0x60, 0x6f, 0x84, 0xe2, 0x1a, 0x45,
0xda, 0x6d, 0x2a, 0xe8, 0x14, 0x15, 0x8a, 0xd5, 0xfd, 0x31, 0x56, 0xf7, 0xe7, 0x7b, 0xa8, 0xde,
0x90, 0x37, 0x68, 0x4f, 0x66, 0x6d, 0x7b, 0x2a, 0x8b, 0x02, 0xbb, 0x28, 0x1b, 0xff, 0x64, 0x23,
0xdf, 0x2e, 0x25, 0x13, 0xf8, 0x76, 0xad, 0xb5, 0x8c, 0x0f, 0x58, 0x6b, 0x0a, 0x77, 0x53, 0xb3,
0xfb, 0x49, 0x49, 0x51, 0x4e, 0xcf, 0xd3, 0x9c, 0xd6, 0x7c, 0xb5, 0xb5, 0x42, 0x8f, 0x1e, 0x53,
0x62, 0x6e, 0xde, 0xb9, 0x5c, 0xa1, 0xd4, 0x1e, 0xe4, 0x5d, 0x66, 0xbd, 0x9d, 0x2b, 0x94, 0x7a,
0x2a, 0xec, 0x98, 0xdb, 0x2e, 0x3b, 0x0a, 0x5e, 0x57, 0xb8, 0x27, 0xf7, 0x1f, 0xdc, 0xb3, 0xf9,
0xd1, 0xee, 0x59, 0x36, 0xc7, 0xd6, 0xa7, 0x9a, 0x63, 0x7f, 0x02, 0xb5, 0x75, 0x2a, 0x90, 0x2a,
0x64, 0x27, 0x38, 0xd7, 0x43, 0x63, 0xd3, 0x0c, 0x1e, 0xc9, 0x33, 0xd8, 0xbc, 0xa6, 0xde, 0x2c,
0x9c, 0x53, 0xc5, 0xce, 0xe7, 0x0b, 0x12, 0xaf, 0x33, 0x98, 0x19, 0x32, 0x9e, 0x67, 0xbe, 0x33,
0x1a, 0xdf, 0xc0, 0xfd, 0x01, 0xbe, 0x4f, 0x27, 0xd6, 0x4f, 0x28, 0x25, 0x75, 0xb4, 0x01, 0x16,
0xc5, 0x35, 0x6e, 0x88, 0xdb, 0xf8, 0xcb, 0x80, 0x52, 0x42, 0x11, 0x01, 0xf8, 0x04, 0x76, 0x6c,
0x3d, 0xfb, 0x2c, 0x19, 0x74, 0x56, 0x13, 0x8a, 0x9d, 0xcf, 0x96, 0x1a, 0x7e, 0x7b, 0x3c, 0xf6,
0x37, 0xcc, 0x62, 0x48, 0xd4, 0x80, 0x20, 0x8e, 0xd4, 0x79, 0x47, 0x71, 0x32, 0x2b, 0xe3, 0xdc,
0x36, 0x4e, 0x10, 0x27, 0x24, 0x86, 0x71, 0x9e, 0x42, 0x8e, 0xe1, 0x7b, 0xa5, 0x5d, 0x71, 0x83,
0xbf, 0xa6, 0xda, 0xfe, 0x86, 0xa9, 0x09, 0x47, 0x45, 0x28, 0x08, 0xbc, 0x8a, 0xe6, 0xfa, 0xdf,
0x19, 0xa8, 0x2e, 0xd6, 0x29, 0x67, 0x9e, 0x22, 0x5f, 0xc3, 0xdd, 0x55, 0x07, 0x23, 0xfa, 0x8f,
0xdd, 0x59, 0x71, 0x2e, 0xc8, 0x97, 0x50, 0x59, 0x3a, 0xd1, 0xe1, 0x6f, 0x25, 0x70, 0xcf, 0xe2,
0x81, 0x0e, 0x34, 0x9f, 0xe0, 0xdc, 0x1a, 0x53, 0x45, 0x63, 0x43, 0x4f, 0x70, 0x7e, 0x4c, 0x15,
0x25, 0x4f, 0xa1, 0xe4, 0x23, 0x8a, 0x74, 0x90, 0xe6, 0xd6, 0x0e, 0xd2, 0x9d, 0x00, 0x78, 0x7b,
0x8e, 0x7e, 0xfa, 0x08, 0x3e, 0x80, 0xdd, 0x09, 0xa2, 0x6f, 0xd9, 0x97, 0x94, 0x31, 0xf4, 0x2c,
0xee, 0x23, 0xd3, 0x8e, 0xce, 0x9b, 0x95, 0x60, 0xa3, 0x1b, 0xae, 0x9f, 0xfb, 0xc8, 0xc8, 0x29,
0xec, 0xea, 0xfc, 0x6e, 0xb8, 0x7f, 0xfb, 0x63, 0xdc, 0x5f, 0x09, 0x78, 0xe6, 0xc2, 0x78, 0x7c,
0xb9, 0xa8, 0xfa, 0x48, 0x51, 0x35, 0xd3, 0x97, 0x02, 0x9b, 0x8f, 0x51, 0xab, 0x5c, 0x32, 0xf5,
0x33, 0xa9, 0xc1, 0xf6, 0x18, 0x15, 0x75, 0xf5, 0xff, 0x2e, 0x90, 0x33, 0x7e, 0x6d, 0xfc, 0x69,
0x40, 0xf9, 0x46, 0xe3, 0xfc, 0xe0, 0xd2, 0xc1, 0x67, 0xca, 0x7a, 0x17, 0x9c, 0x82, 0xd8, 0xd0,
0x05, 0x3e, 0x53, 0x27, 0x7a, 0x81, 0x7c, 0x01, 0x65, 0x6d, 0x75, 0xcb, 0xe6, 0x4c, 0xce, 0xa6,
0x38, 0xd6, 0x21, 0x4b, 0x66, 0x49, 0xaf, 0x76, 0xa3, 0x45, 0xd2, 0x81, 0x2d, 0xa1, 0x6d, 0x10,
0x39, 0x6b, 0x7f, 0xc5, 0x8f, 0x3b, 0x32, 0x8a, 0x19, 0x21, 0x03, 0x8e, 0xd4, 0x45, 0x44, 0x2d,
0x5b, 0xc9, 0x09, 0xcb, 0x34, 0x23, 0xe4, 0xc1, 0x8f, 0xb0, 0x7b, 0xeb, 0x22, 0x40, 0x1a, 0xf0,
0xbf, 0xfe, 0xe1, 0xe0, 0x78, 0xd4, 0x3f, 0x7c, 0xd5, 0xb3, 0x86, 0xe6, 0xf9, 0xc5, 0x79, 0xf7,
0xfc, 0xcc, 0x7a, 0x3d, 0x18, 0x0d, 0x7b, 0xdd, 0xd3, 0x93, 0xd3, 0xde, 0x71, 0x75, 0x83, 0x6c,
0x43, 0xf6, 0xe2, 0x6c, 0x54, 0x35, 0x48, 0x1e, 0x72, 0x87, 0x67, 0x17, 0xa3, 0x6a, 0xe6, 0xa0,
0x07, 0x95, 0xa5, 0x1b, 0x12, 0xa9, 0xc3, 0xc3, 0x41, 0xef, 0xe2, 0x97, 0x73, 0xf3, 0xd5, 0x87,
0xe2, 0x74, 0x87, 0x55, 0x23, 0x78, 0x78, 0x7d, 0x3c, 0xac, 0x66, 0x3a, 0x6f, 0x16, 0x52, 0x12,
0xa3, 0xf0, 0xc2, 0x44, 0x4e, 0xa0, 0x78, 0xcc, 0x93, 0x65, 0x72, 0x7f, 0xb5, 0x1c, 0x57, 0xfb,
0xb5, 0x35, 0x3a, 0xf9, 0x8d, 0x8d, 0xa6, 0xf1, 0x95, 0x71, 0xe4, 0xc0, 0x3d, 0x97, 0x87, 0x18,
0xea, 0x29, 0xd9, 0x72, 0x99, 0x42, 0xc1, 0xa8, 0x77, 0x54, 0x49, 0xe1, 0x3a, 0xfb, 0xa1, 0xf1,
0xeb, 0x0b, 0x87, 0x73, 0xc7, 0xc3, 0x96, 0xc3, 0x3d, 0xca, 0x9c, 0x16, 0x17, 0x4e, 0x5b, 0x5f,
0x43, 0x6d, 0x81, 0xda, 0xb8, 0xd4, 0x93, 0xed, 0x20, 0x48, 0xdb, 0xe6, 0x02, 0xdb, 0xfa, 0xc4,
0x69, 0x80, 0xe5, 0xd8, 0xfe, 0xdb, 0x2d, 0xfd, 0xfe, 0xe4, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff,
0xfa, 0xd2, 0x42, 0x7f, 0xdf, 0x0a, 0x00, 0x00,
}

View file

@ -1,224 +0,0 @@
// Copyright 2018 gRPC authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
import "transport_security_common.proto";
package grpc.gcp;
option java_package = "io.grpc.alts.internal";
enum HandshakeProtocol {
// Default value.
HANDSHAKE_PROTOCOL_UNSPECIFIED = 0;
// TLS handshake protocol.
TLS = 1;
// Application Layer Transport Security handshake protocol.
ALTS = 2;
}
enum NetworkProtocol {
NETWORK_PROTOCOL_UNSPECIFIED = 0;
TCP = 1;
UDP = 2;
}
message Endpoint {
// IP address. It should contain an IPv4 or IPv6 string literal, e.g.
// "192.168.0.1" or "2001:db8::1".
string ip_address = 1;
// Port number.
int32 port = 2;
// Network protocol (e.g., TCP, UDP) associated with this endpoint.
NetworkProtocol protocol = 3;
}
message Identity {
oneof identity_oneof {
// Service account of a connection endpoint.
string service_account = 1;
// Hostname of a connection endpoint.
string hostname = 2;
}
}
message StartClientHandshakeReq {
// Handshake security protocol requested by the client.
HandshakeProtocol handshake_security_protocol = 1;
// The application protocols supported by the client, e.g., "h2" (for http2),
// "grpc".
repeated string application_protocols = 2;
// The record protocols supported by the client, e.g.,
// "ALTSRP_GCM_AES128".
repeated string record_protocols = 3;
// (Optional) Describes which server identities are acceptable by the client.
// If target identities are provided and none of them matches the peer
// identity of the server, handshake will fail.
repeated Identity target_identities = 4;
// (Optional) Application may specify a local identity. Otherwise, the
// handshaker chooses a default local identity.
Identity local_identity = 5;
// (Optional) Local endpoint information of the connection to the server,
// such as local IP address, port number, and network protocol.
Endpoint local_endpoint = 6;
// (Optional) Endpoint information of the remote server, such as IP address,
// port number, and network protocol.
Endpoint remote_endpoint = 7;
// (Optional) If target name is provided, a secure naming check is performed
// to verify that the peer authenticated identity is indeed authorized to run
// the target name.
string target_name = 8;
// (Optional) RPC protocol versions supported by the client.
RpcProtocolVersions rpc_versions = 9;
}
message ServerHandshakeParameters {
// The record protocols supported by the server, e.g.,
// "ALTSRP_GCM_AES128".
repeated string record_protocols = 1;
// (Optional) A list of local identities supported by the server, if
// specified. Otherwise, the handshaker chooses a default local identity.
repeated Identity local_identities = 2;
}
message StartServerHandshakeReq {
// The application protocols supported by the server, e.g., "h2" (for http2),
// "grpc".
repeated string application_protocols = 1;
// Handshake parameters (record protocols and local identities supported by
// the server) mapped by the handshake protocol. Each handshake security
// protocol (e.g., TLS or ALTS) has its own set of record protocols and local
// identities. Since protobuf does not support enum as key to the map, the key
// to handshake_parameters is the integer value of HandshakeProtocol enum.
map<int32, ServerHandshakeParameters> handshake_parameters = 2;
// Bytes in out_frames returned from the peer's HandshakerResp. It is possible
// that the peer's out_frames are split into multiple HandshakReq messages.
bytes in_bytes = 3;
// (Optional) Local endpoint information of the connection to the client,
// such as local IP address, port number, and network protocol.
Endpoint local_endpoint = 4;
// (Optional) Endpoint information of the remote client, such as IP address,
// port number, and network protocol.
Endpoint remote_endpoint = 5;
// (Optional) RPC protocol versions supported by the server.
RpcProtocolVersions rpc_versions = 6;
}
message NextHandshakeMessageReq {
// Bytes in out_frames returned from the peer's HandshakerResp. It is possible
// that the peer's out_frames are split into multiple NextHandshakerMessageReq
// messages.
bytes in_bytes = 1;
}
message HandshakerReq {
oneof req_oneof {
// The start client handshake request message.
StartClientHandshakeReq client_start = 1;
// The start server handshake request message.
StartServerHandshakeReq server_start = 2;
// The next handshake request message.
NextHandshakeMessageReq next = 3;
}
}
message HandshakerResult {
// The application protocol negotiated for this connection.
string application_protocol = 1;
// The record protocol negotiated for this connection.
string record_protocol = 2;
// Cryptographic key data. The key data may be more than the key length
// required for the record protocol, thus the client of the handshaker
// service needs to truncate the key data into the right key length.
bytes key_data = 3;
// The authenticated identity of the peer.
Identity peer_identity = 4;
// The local identity used in the handshake.
Identity local_identity = 5;
// Indicate whether the handshaker service client should keep the channel
// between the handshaker service open, e.g., in order to handle
// post-handshake messages in the future.
bool keep_channel_open = 6;
// The RPC protocol versions supported by the peer.
RpcProtocolVersions peer_rpc_versions = 7;
}
message HandshakerStatus {
// The status code. This could be the gRPC status code.
uint32 code = 1;
// The status details.
string details = 2;
}
message HandshakerResp {
// Frames to be given to the peer for the NextHandshakeMessageReq. May be
// empty if no out_frames have to be sent to the peer or if in_bytes in the
// HandshakerReq are incomplete. All the non-empty out frames must be sent to
// the peer even if the handshaker status is not OK as these frames may
// contain the alert frames.
bytes out_frames = 1;
// Number of bytes in the in_bytes consumed by the handshaker. It is possible
// that part of in_bytes in HandshakerReq was unrelated to the handshake
// process.
uint32 bytes_consumed = 2;
// This is set iff the handshake was successful. out_frames may still be set
// to frames that needs to be forwarded to the peer.
HandshakerResult result = 3;
// Status of the handshaker.
HandshakerStatus status = 4;
}
service HandshakerService {
// Handshaker service accepts a stream of handshaker request, returning a
// stream of handshaker response. Client is expected to send exactly one
// message with either client_start or server_start followed by one or more
// messages with next. Each time client sends a request, the handshaker
// service expects to respond. Client does not have to wait for service's
// response before sending next request.
rpc DoHandshake(stream HandshakerReq)
returns (stream HandshakerResp) {
}
}

View file

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: transport_security_common.proto
// source: grpc/gcp/transport_security_common.proto
package grpc_gcp
package grpc_gcp // import "google.golang.org/grpc/credentials/alts/core/proto/grpc_gcp"
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
@ -12,6 +12,12 @@ var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
// The security level of the created channel. The list is sorted in increasing
// level of security. This order must always be maintained.
type SecurityLevel int32
@ -36,20 +42,44 @@ var SecurityLevel_value = map[string]int32{
func (x SecurityLevel) String() string {
return proto.EnumName(SecurityLevel_name, int32(x))
}
func (SecurityLevel) EnumDescriptor() ([]byte, []int) { return fileDescriptor2, []int{0} }
func (SecurityLevel) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_transport_security_common_6489ab913bf26255, []int{0}
}
// Max and min supported RPC protocol versions.
type RpcProtocolVersions struct {
// Maximum supported RPC version.
MaxRpcVersion *RpcProtocolVersions_Version `protobuf:"bytes,1,opt,name=max_rpc_version,json=maxRpcVersion" json:"max_rpc_version,omitempty"`
MaxRpcVersion *RpcProtocolVersions_Version `protobuf:"bytes,1,opt,name=max_rpc_version,json=maxRpcVersion,proto3" json:"max_rpc_version,omitempty"`
// Minimum supported RPC version.
MinRpcVersion *RpcProtocolVersions_Version `protobuf:"bytes,2,opt,name=min_rpc_version,json=minRpcVersion" json:"min_rpc_version,omitempty"`
MinRpcVersion *RpcProtocolVersions_Version `protobuf:"bytes,2,opt,name=min_rpc_version,json=minRpcVersion,proto3" json:"min_rpc_version,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RpcProtocolVersions) Reset() { *m = RpcProtocolVersions{} }
func (m *RpcProtocolVersions) String() string { return proto.CompactTextString(m) }
func (*RpcProtocolVersions) ProtoMessage() {}
func (*RpcProtocolVersions) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{0} }
func (m *RpcProtocolVersions) Reset() { *m = RpcProtocolVersions{} }
func (m *RpcProtocolVersions) String() string { return proto.CompactTextString(m) }
func (*RpcProtocolVersions) ProtoMessage() {}
func (*RpcProtocolVersions) Descriptor() ([]byte, []int) {
return fileDescriptor_transport_security_common_6489ab913bf26255, []int{0}
}
func (m *RpcProtocolVersions) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RpcProtocolVersions.Unmarshal(m, b)
}
func (m *RpcProtocolVersions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RpcProtocolVersions.Marshal(b, m, deterministic)
}
func (dst *RpcProtocolVersions) XXX_Merge(src proto.Message) {
xxx_messageInfo_RpcProtocolVersions.Merge(dst, src)
}
func (m *RpcProtocolVersions) XXX_Size() int {
return xxx_messageInfo_RpcProtocolVersions.Size(m)
}
func (m *RpcProtocolVersions) XXX_DiscardUnknown() {
xxx_messageInfo_RpcProtocolVersions.DiscardUnknown(m)
}
var xxx_messageInfo_RpcProtocolVersions proto.InternalMessageInfo
func (m *RpcProtocolVersions) GetMaxRpcVersion() *RpcProtocolVersions_Version {
if m != nil {
@ -67,14 +97,36 @@ func (m *RpcProtocolVersions) GetMinRpcVersion() *RpcProtocolVersions_Version {
// RPC version contains a major version and a minor version.
type RpcProtocolVersions_Version struct {
Major uint32 `protobuf:"varint,1,opt,name=major" json:"major,omitempty"`
Minor uint32 `protobuf:"varint,2,opt,name=minor" json:"minor,omitempty"`
Major uint32 `protobuf:"varint,1,opt,name=major,proto3" json:"major,omitempty"`
Minor uint32 `protobuf:"varint,2,opt,name=minor,proto3" json:"minor,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RpcProtocolVersions_Version) Reset() { *m = RpcProtocolVersions_Version{} }
func (m *RpcProtocolVersions_Version) String() string { return proto.CompactTextString(m) }
func (*RpcProtocolVersions_Version) ProtoMessage() {}
func (*RpcProtocolVersions_Version) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{0, 0} }
func (m *RpcProtocolVersions_Version) Reset() { *m = RpcProtocolVersions_Version{} }
func (m *RpcProtocolVersions_Version) String() string { return proto.CompactTextString(m) }
func (*RpcProtocolVersions_Version) ProtoMessage() {}
func (*RpcProtocolVersions_Version) Descriptor() ([]byte, []int) {
return fileDescriptor_transport_security_common_6489ab913bf26255, []int{0, 0}
}
func (m *RpcProtocolVersions_Version) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RpcProtocolVersions_Version.Unmarshal(m, b)
}
func (m *RpcProtocolVersions_Version) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RpcProtocolVersions_Version.Marshal(b, m, deterministic)
}
func (dst *RpcProtocolVersions_Version) XXX_Merge(src proto.Message) {
xxx_messageInfo_RpcProtocolVersions_Version.Merge(dst, src)
}
func (m *RpcProtocolVersions_Version) XXX_Size() int {
return xxx_messageInfo_RpcProtocolVersions_Version.Size(m)
}
func (m *RpcProtocolVersions_Version) XXX_DiscardUnknown() {
xxx_messageInfo_RpcProtocolVersions_Version.DiscardUnknown(m)
}
var xxx_messageInfo_RpcProtocolVersions_Version proto.InternalMessageInfo
func (m *RpcProtocolVersions_Version) GetMajor() uint32 {
if m != nil {
@ -96,25 +148,31 @@ func init() {
proto.RegisterEnum("grpc.gcp.SecurityLevel", SecurityLevel_name, SecurityLevel_value)
}
func init() { proto.RegisterFile("transport_security_common.proto", fileDescriptor2) }
var fileDescriptor2 = []byte{
// 269 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x90, 0xdf, 0x4a, 0xf3, 0x30,
0x18, 0xc6, 0xbf, 0x0e, 0x3e, 0x95, 0x48, 0xb5, 0x46, 0x87, 0x7f, 0x4e, 0x14, 0x41, 0x10, 0x0f,
0x72, 0xa0, 0x78, 0x01, 0x73, 0x16, 0x29, 0xcc, 0x6e, 0x66, 0x73, 0xd0, 0xa3, 0x10, 0x43, 0x19,
0x91, 0x36, 0x6f, 0x78, 0x13, 0xc7, 0xbc, 0x65, 0xaf, 0x42, 0x9a, 0x76, 0x0c, 0xc1, 0x13, 0xcf,
0xf2, 0xfc, 0xe0, 0xf9, 0x25, 0x79, 0xc8, 0xb9, 0x47, 0x69, 0x9c, 0x05, 0xf4, 0xc2, 0x95, 0xea,
0x03, 0xb5, 0xff, 0x14, 0x0a, 0xea, 0x1a, 0x0c, 0xb3, 0x08, 0x1e, 0xe8, 0xce, 0x02, 0xad, 0x62,
0x0b, 0x65, 0x2f, 0xbf, 0x22, 0x72, 0xc8, 0xad, 0x9a, 0x34, 0x58, 0x41, 0x35, 0x2f, 0xd1, 0x69,
0x30, 0x8e, 0x3e, 0x93, 0xfd, 0x5a, 0xae, 0x04, 0x5a, 0x25, 0x96, 0x2d, 0x3b, 0x89, 0x2e, 0xa2,
0xeb, 0xdd, 0xdb, 0x2b, 0xb6, 0xee, 0xb2, 0x5f, 0x7a, 0xac, 0x3b, 0xf0, 0xb8, 0x96, 0x2b, 0x6e,
0x55, 0x17, 0x83, 0x4e, 0x9b, 0x1f, 0xba, 0xde, 0xdf, 0x74, 0xda, 0x6c, 0x74, 0x67, 0xf7, 0x64,
0x7b, 0x6d, 0x3e, 0x22, 0xff, 0x6b, 0xf9, 0x0e, 0x18, 0x9e, 0x17, 0xf3, 0x36, 0x04, 0xaa, 0x0d,
0x60, 0xb8, 0xa5, 0xa1, 0x4d, 0xb8, 0x79, 0x21, 0xf1, 0xb4, 0xdb, 0x63, 0x54, 0x2e, 0xcb, 0x8a,
0x1e, 0x90, 0x78, 0x9a, 0x0e, 0x5f, 0x79, 0x36, 0x2b, 0x44, 0x3e, 0xce, 0xd3, 0xe4, 0x1f, 0xa5,
0x64, 0x2f, 0xcb, 0x67, 0xe9, 0x53, 0x60, 0xe3, 0x7c, 0x54, 0x24, 0x11, 0x3d, 0x25, 0xfd, 0x0d,
0x1b, 0xe4, 0x8f, 0x62, 0xc2, 0xb3, 0xf9, 0x60, 0x58, 0x24, 0xbd, 0x87, 0x63, 0xd2, 0xd7, 0xd0,
0xfe, 0x41, 0x56, 0xde, 0x31, 0x6d, 0x7c, 0x89, 0x46, 0x56, 0x6f, 0x5b, 0x61, 0xe9, 0xbb, 0xef,
0x00, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x4d, 0xc2, 0xf0, 0x8c, 0x01, 0x00, 0x00,
func init() {
proto.RegisterFile("grpc/gcp/transport_security_common.proto", fileDescriptor_transport_security_common_6489ab913bf26255)
}
var fileDescriptor_transport_security_common_6489ab913bf26255 = []byte{
// 324 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x91, 0x41, 0x4b, 0x3b, 0x31,
0x10, 0xc5, 0xff, 0x5b, 0xf8, 0xab, 0x44, 0x56, 0xeb, 0x6a, 0x41, 0xc5, 0x83, 0x08, 0x42, 0xf1,
0x90, 0x05, 0xc5, 0x93, 0xa7, 0xb6, 0x16, 0x29, 0xd4, 0x6d, 0xdd, 0xd6, 0x42, 0xbd, 0x84, 0x18,
0x43, 0x88, 0x64, 0x33, 0x61, 0x36, 0x96, 0xfa, 0x95, 0xfd, 0x14, 0xb2, 0x69, 0x97, 0x22, 0x78,
0xf1, 0x96, 0xf7, 0x98, 0xf9, 0x4d, 0x66, 0x1e, 0x69, 0x2b, 0x74, 0x22, 0x55, 0xc2, 0xa5, 0x1e,
0xb9, 0x2d, 0x1d, 0xa0, 0x67, 0xa5, 0x14, 0x1f, 0xa8, 0xfd, 0x27, 0x13, 0x50, 0x14, 0x60, 0xa9,
0x43, 0xf0, 0x90, 0xec, 0x54, 0x95, 0x54, 0x09, 0x77, 0xf1, 0x15, 0x91, 0xc3, 0xdc, 0x89, 0x71,
0x65, 0x0b, 0x30, 0x33, 0x89, 0xa5, 0x06, 0x5b, 0x26, 0x8f, 0x64, 0xbf, 0xe0, 0x4b, 0x86, 0x4e,
0xb0, 0xc5, 0xca, 0x3b, 0x8e, 0xce, 0xa3, 0xf6, 0xee, 0xf5, 0x25, 0xad, 0x7b, 0xe9, 0x2f, 0x7d,
0x74, 0xfd, 0xc8, 0xe3, 0x82, 0x2f, 0x73, 0x27, 0xd6, 0x32, 0xe0, 0xb4, 0xfd, 0x81, 0x6b, 0xfc,
0x0d, 0xa7, 0xed, 0x06, 0x77, 0x7a, 0x4b, 0xb6, 0x6b, 0xf2, 0x11, 0xf9, 0x5f, 0xf0, 0x77, 0xc0,
0xf0, 0xbd, 0x38, 0x5f, 0x89, 0xe0, 0x6a, 0x0b, 0x18, 0xa6, 0x54, 0x6e, 0x25, 0xae, 0x9e, 0x48,
0x3c, 0x59, 0xdf, 0x63, 0x28, 0x17, 0xd2, 0x24, 0x07, 0x24, 0x9e, 0xf4, 0x7b, 0xcf, 0xf9, 0x60,
0x3a, 0x67, 0xd9, 0x28, 0xeb, 0x37, 0xff, 0x25, 0x09, 0xd9, 0x1b, 0x64, 0xd3, 0xfe, 0x43, 0xf0,
0x46, 0xd9, 0x70, 0xde, 0x8c, 0x92, 0x13, 0xd2, 0xda, 0x78, 0x9d, 0xec, 0x9e, 0x8d, 0xf3, 0xc1,
0xac, 0xd3, 0x9b, 0x37, 0x1b, 0x5d, 0x4f, 0x5a, 0x1a, 0x56, 0x3b, 0x70, 0xe3, 0x4b, 0xaa, 0xad,
0x97, 0x68, 0xb9, 0xe9, 0x9e, 0x4d, 0xeb, 0x0c, 0xea, 0x91, 0xbd, 0x90, 0x40, 0x58, 0x71, 0x1c,
0xbd, 0xdc, 0x29, 0x00, 0x65, 0x24, 0x55, 0x60, 0xb8, 0x55, 0x14, 0x50, 0xa5, 0x21, 0x3e, 0x81,
0xf2, 0x4d, 0x5a, 0xaf, 0xb9, 0x29, 0xd3, 0x8a, 0x98, 0x0a, 0x40, 0x99, 0x86, 0xd8, 0x42, 0x01,
0x53, 0xc2, 0xbd, 0x6e, 0x05, 0x7d, 0xf3, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xa8, 0xc8, 0x38, 0x9d,
0xf2, 0x01, 0x00, 0x00,
}

View file

@ -1,40 +0,0 @@
// Copyright 2018 gRPC authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package grpc.gcp;
option java_package = "io.grpc.alts.internal";
// The security level of the created channel. The list is sorted in increasing
// level of security. This order must always be maintained.
enum SecurityLevel {
SECURITY_NONE = 0;
INTEGRITY_ONLY = 1;
INTEGRITY_AND_PRIVACY = 2;
}
// Max and min supported RPC protocol versions.
message RpcProtocolVersions {
// RPC version contains a major version and a minor version.
message Version {
uint32 major = 1;
uint32 minor = 2;
}
// Maximum supported RPC version.
Version max_rpc_version = 1;
// Minimum supported RPC version.
Version min_rpc_version = 2;
}

View file

@ -0,0 +1,35 @@
#!/bin/bash
# Copyright 2018 gRPC authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -eux -o pipefail
TMP=$(mktemp -d)
function finish {
rm -rf "$TMP"
}
trap finish EXIT
pushd "$TMP"
mkdir -p grpc/gcp
curl https://raw.githubusercontent.com/grpc/grpc-proto/master/grpc/gcp/altscontext.proto > grpc/gcp/altscontext.proto
curl https://raw.githubusercontent.com/grpc/grpc-proto/master/grpc/gcp/handshaker.proto > grpc/gcp/handshaker.proto
curl https://raw.githubusercontent.com/grpc/grpc-proto/master/grpc/gcp/transport_security_common.proto > grpc/gcp/transport_security_common.proto
protoc --go_out=plugins=grpc,paths=source_relative:. -I. grpc/gcp/*.proto
popd
rm -f proto/grpc_gcp/*.pb.go
cp "$TMP"/grpc/gcp/*.pb.go proto/grpc_gcp/

View file

@ -30,6 +30,9 @@ import (
"runtime"
"strings"
"time"
"golang.org/x/net/context"
"google.golang.org/grpc/peer"
)
const (
@ -115,3 +118,19 @@ func readManufacturer() ([]byte, error) {
}
return manufacturer, nil
}
// AuthInfoFromContext extracts the alts.AuthInfo object from the given context,
// if it exists. This API should be used by gRPC server RPC handlers to get
// information about the communicating peer. For client-side, use grpc.Peer()
// CallOption.
func AuthInfoFromContext(ctx context.Context) (AuthInfo, error) {
peer, ok := peer.FromContext(ctx)
if !ok {
return nil, errors.New("no Peer found in Context")
}
altsAuthInfo, ok := peer.AuthInfo.(AuthInfo)
if !ok {
return nil, errors.New("no alts.AuthInfo found in Context")
}
return altsAuthInfo, nil
}

View file

@ -22,6 +22,10 @@ import (
"io"
"strings"
"testing"
"golang.org/x/net/context"
altspb "google.golang.org/grpc/credentials/alts/core/proto/grpc_gcp"
"google.golang.org/grpc/peer"
)
func TestIsRunningOnGCP(t *testing.T) {
@ -64,3 +68,44 @@ func setup(testOS string, testReader io.Reader) func() {
manufacturerReader = tmpReader
}
}
func TestAuthInfoFromContext(t *testing.T) {
ctx := context.Background()
altsAuthInfo := &fakeALTSAuthInfo{}
p := &peer.Peer{
AuthInfo: altsAuthInfo,
}
for _, tc := range []struct {
desc string
ctx context.Context
success bool
out AuthInfo
}{
{
"working case",
peer.NewContext(ctx, p),
true,
altsAuthInfo,
},
} {
authInfo, err := AuthInfoFromContext(tc.ctx)
if got, want := (err == nil), tc.success; got != want {
t.Errorf("%v: AuthInfoFromContext(_)=(err=nil)=%v, want %v", tc.desc, got, want)
}
if got, want := authInfo, tc.out; got != want {
t.Errorf("%v:, AuthInfoFromContext(_)=(%v, _), want (%v, _)", tc.desc, got, want)
}
}
}
type fakeALTSAuthInfo struct{}
func (*fakeALTSAuthInfo) AuthType() string { return "" }
func (*fakeALTSAuthInfo) ApplicationProtocol() string { return "" }
func (*fakeALTSAuthInfo) RecordProtocol() string { return "" }
func (*fakeALTSAuthInfo) SecurityLevel() altspb.SecurityLevel {
return altspb.SecurityLevel_SECURITY_NONE
}
func (*fakeALTSAuthInfo) PeerServiceAccount() string { return "" }
func (*fakeALTSAuthInfo) LocalServiceAccount() string { return "" }
func (*fakeALTSAuthInfo) PeerRPCVersions() *altspb.RpcProtocolVersions { return nil }