xref: /aosp_15_r20/external/grpc-grpc/src/objective-c/GRPCClient/private/GRPCCore/GRPCSecureChannelFactory.h (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
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 #import "GRPCChannelFactory.h"
19 
20 @class GRPCChannel;
21 
22 NS_ASSUME_NONNULL_BEGIN
23 
24 @interface GRPCSecureChannelFactory : NSObject <GRPCChannelFactory>
25 
26 /**
27  * Creates a secure channel factory which uses provided root certificates and client authentication
28  * credentials. If rootCerts is nil, gRPC will use its default root certificates. If rootCerts is
29  * provided, it must only contain the server's CA to avoid memory issue.
30  */
31 + (nullable instancetype)factoryWithPEMRootCertificates:(nullable NSString *)rootCerts
32                                              privateKey:(nullable NSString *)privateKey
33                                               certChain:(nullable NSString *)certChain
34                                                   error:(NSError **)errorPtr;
35 
36 - (nullable grpc_channel *)createChannelWithHost:(NSString *)host
37                                      channelArgs:(nullable NSDictionary *)args;
38 
39 - (nullable instancetype)init NS_UNAVAILABLE;
40 
41 @end
42 
43 NS_ASSUME_NONNULL_END
44