1 /* 2 * 3 * Copyright 2016 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_TEST_CPP_UTIL_CLI_CREDENTIALS_H 20 #define GRPC_TEST_CPP_UTIL_CLI_CREDENTIALS_H 21 22 #include <grpcpp/security/credentials.h> 23 #include <grpcpp/support/config.h> 24 25 namespace grpc { 26 namespace testing { 27 28 class CliCredentials { 29 public: ~CliCredentials()30 virtual ~CliCredentials() {} 31 std::shared_ptr<grpc::ChannelCredentials> GetCredentials() const; 32 virtual const std::string GetCredentialUsage() const; 33 virtual const std::string GetSslTargetNameOverride() const; 34 35 protected: 36 // Returns the appropriate channel_creds_type value for the set of legacy 37 // flag arguments. 38 virtual std::string GetDefaultChannelCredsType() const; 39 // Returns the appropriate call_creds value for the set of legacy flag 40 // arguments. 41 virtual std::string GetDefaultCallCreds() const; 42 // Returns the base transport channel credentials. Child classes can override 43 // to support additional channel_creds_types unknown to this base class. 44 virtual std::shared_ptr<grpc::ChannelCredentials> GetChannelCredentials() 45 const; 46 // Returns call credentials to composite onto the base transport channel 47 // credentials. Child classes can override to support additional 48 // authentication flags unknown to this base class. 49 virtual std::shared_ptr<grpc::CallCredentials> GetCallCredentials() const; 50 }; 51 52 } // namespace testing 53 } // namespace grpc 54 55 #endif // GRPC_TEST_CPP_UTIL_CLI_CREDENTIALS_H 56