1 /* 2 * 3 * Copyright 2018 gRPC authors. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 */ 18 19 #ifndef GRPC_CORE_LIB_SECURITY_SECURITY_CONNECTOR_ALTS_ALTS_SECURITY_CONNECTOR_H 20 #define GRPC_CORE_LIB_SECURITY_SECURITY_CONNECTOR_ALTS_ALTS_SECURITY_CONNECTOR_H 21 22 #include <grpc/support/port_platform.h> 23 24 #include "src/core/lib/security/context/security_context.h" 25 #include "src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h" 26 27 #define GRPC_ALTS_TRANSPORT_SECURITY_TYPE "alts" 28 #define GRPC_ALTS_URL_SCHEME "https" 29 30 /** 31 * This method creates an ALTS channel security connector. 32 * 33 * - channel_creds: channel credential instance. 34 * - request_metadata_creds: credential object which will be sent with each 35 * request. This parameter can be nullptr. 36 * - target_name: the name of the endpoint that the channel is connecting to. 37 * - sc: address of ALTS channel security connector instance to be returned from 38 * the method. 39 * 40 * It returns nullptr on failure. 41 */ 42 grpc_core::RefCountedPtr<grpc_channel_security_connector> 43 grpc_alts_channel_security_connector_create( 44 grpc_core::RefCountedPtr<grpc_channel_credentials> channel_creds, 45 grpc_core::RefCountedPtr<grpc_call_credentials> request_metadata_creds, 46 const char* target_name); 47 48 /** 49 * This method creates an ALTS server security connector. 50 * 51 * - server_creds: server credential instance. 52 * - sc: address of ALTS server security connector instance to be returned from 53 * the method. 54 * 55 * It returns nullptr on failure. 56 */ 57 grpc_core::RefCountedPtr<grpc_server_security_connector> 58 grpc_alts_server_security_connector_create( 59 grpc_core::RefCountedPtr<grpc_server_credentials> server_creds); 60 61 /* Initializes rpc_versions. */ 62 void grpc_alts_set_rpc_protocol_versions( 63 grpc_gcp_rpc_protocol_versions* rpc_versions); 64 65 namespace grpc_core { 66 namespace internal { 67 68 /* Exposed only for testing. */ 69 grpc_core::RefCountedPtr<grpc_auth_context> 70 grpc_alts_auth_context_from_tsi_peer(const tsi_peer* peer); 71 72 } // namespace internal 73 } // namespace grpc_core 74 75 #endif /* GRPC_CORE_LIB_SECURITY_SECURITY_CONNECTOR_ALTS_ALTS_SECURITY_CONNECTOR_H \ 76 */ 77