...
1// Copyright 2022 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
15syntax = "proto3";
16
17package s2a.proto.v2;
18
19option go_package = "github.com/google/s2a/internal/proto/v2/common_go_proto";
20
21// The TLS 1.0-1.2 ciphersuites that the application can negotiate when using
22// S2A.
23enum Ciphersuite {
24 CIPHERSUITE_UNSPECIFIED = 0;
25 CIPHERSUITE_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = 1;
26 CIPHERSUITE_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = 2;
27 CIPHERSUITE_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 = 3;
28 CIPHERSUITE_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = 4;
29 CIPHERSUITE_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = 5;
30 CIPHERSUITE_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = 6;
31}
32
33// The TLS versions supported by S2A's handshaker module.
34enum TLSVersion {
35 TLS_VERSION_UNSPECIFIED = 0;
36 TLS_VERSION_1_0 = 1;
37 TLS_VERSION_1_1 = 2;
38 TLS_VERSION_1_2 = 3;
39 TLS_VERSION_1_3 = 4;
40}
41
42// The side in the TLS connection.
43enum ConnectionSide {
44 CONNECTION_SIDE_UNSPECIFIED = 0;
45 CONNECTION_SIDE_CLIENT = 1;
46 CONNECTION_SIDE_SERVER = 2;
47}
48
49// The ALPN protocols that the application can negotiate during a TLS handshake.
50enum AlpnProtocol {
51 ALPN_PROTOCOL_UNSPECIFIED = 0;
52 ALPN_PROTOCOL_GRPC = 1;
53 ALPN_PROTOCOL_HTTP2 = 2;
54 ALPN_PROTOCOL_HTTP1_1 = 3;
55}
View as plain text