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 #import "GRPCCall.h" 20 21 /** Helpers for setting TLS Trusted Roots, Client Certificates, and Private Key */ 22 @interface GRPCCall (ChannelCredentials) 23 24 /** 25 * Use the provided @c pemRootCert as the set of trusted root Certificate Authorities for @c host. 26 */ 27 + (BOOL)setTLSPEMRootCerts:(nullable NSString *)pemRootCert 28 forHost:(nonnull NSString *)host 29 error:(NSError *_Nullable *_Nullable)errorPtr; 30 /** 31 * Configures @c host with TLS/SSL Client Credentials and optionally trusted root Certificate 32 * Authorities. If @c pemRootCerts is nil, the default CA Certificates bundled with gRPC will be 33 * used. 34 */ 35 + (BOOL)setTLSPEMRootCerts:(nullable NSString *)pemRootCerts 36 withPrivateKey:(nullable NSString *)pemPrivateKey 37 withCertChain:(nullable NSString *)pemCertChain 38 forHost:(nonnull NSString *)host 39 error:(NSError *_Nullable *_Nullable)errorPtr; 40 41 @end 42