// Copyright 2021 Google LLC // // 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 // // https://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 s2a.proto; option go_package = "github.com/google/s2a/internal/proto/common_go_proto"; // The ciphersuites supported by S2A. The name determines the confidentiality, // and authentication ciphers as well as the hash algorithm used for PRF in // TLS 1.2 or HKDF in TLS 1.3. Thus, the components of the name are: // - AEAD -- for encryption and authentication, e.g., AES_128_GCM. // - Hash algorithm -- used in PRF or HKDF, e.g., SHA256. enum Ciphersuite { AES_128_GCM_SHA256 = 0; AES_256_GCM_SHA384 = 1; CHACHA20_POLY1305_SHA256 = 2; } // The TLS versions supported by S2A's handshaker module. enum TLSVersion { TLS1_2 = 0; TLS1_3 = 1; } message Identity { oneof identity_oneof { // The SPIFFE ID of a connection endpoint. string spiffe_id = 1; // The hostname of a connection endpoint. string hostname = 2; // The UID of a connection endpoint. string uid = 4; // The MDB username of a connection endpoint. string mdb_username = 5; // The Gaia ID of a connection endpoint. string gaia_id = 6; } // Additional identity-specific attributes. map attributes = 3; }