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_SECURITY_CONNECTOR_H 20 #define GRPC_CORE_LIB_SECURITY_SECURITY_CONNECTOR_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 29 /** 30 * This method creates an ALTS channel security connector. 31 * 32 * - channel_creds: channel credential instance. 33 * - request_metadata_creds: credential object which will be sent with each 34 * request. This parameter can be nullptr. 35 * - target_name: the name of the endpoint that the channel is connecting to. 36 * - sc: address of ALTS channel security connector instance to be returned from 37 * the method. 38 * 39 * It returns GRPC_SECURITY_OK on success, and an error stauts code on failure. 40 */ 41 grpc_security_status grpc_alts_channel_security_connector_create( 42 grpc_channel_credentials* channel_creds, 43 grpc_call_credentials* request_metadata_creds, const char* target_name, 44 grpc_channel_security_connector** sc); 45 46 /** 47 * This method creates an ALTS server security connector. 48 * 49 * - server_creds: server credential instance. 50 * - sc: address of ALTS server security connector instance to be returned from 51 * the method. 52 * 53 * It returns GRPC_SECURITY_OK on success, and an error status code on failure. 54 */ 55 grpc_security_status grpc_alts_server_security_connector_create( 56 grpc_server_credentials* server_creds, grpc_server_security_connector** sc); 57 58 namespace grpc_core { 59 namespace internal { 60 61 /* Exposed only for testing. */ 62 grpc_security_status grpc_alts_auth_context_from_tsi_peer( 63 const tsi_peer* peer, grpc_auth_context** ctx); 64 65 } // namespace internal 66 } // namespace grpc_core 67 68 #endif /* GRPC_CORE_LIB_SECURITY_SECURITY_CONNECTOR_ALTS_SECURITY_CONNECTOR_H \ 69 */ 70