• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *
3  * Copyright 2015 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_CREDENTIALS_COMPOSITE_COMPOSITE_CREDENTIALS_H
20 #define GRPC_CORE_LIB_SECURITY_CREDENTIALS_COMPOSITE_COMPOSITE_CREDENTIALS_H
21 
22 #include <grpc/support/port_platform.h>
23 
24 #include "src/core/lib/security/credentials/credentials.h"
25 
26 typedef struct {
27   grpc_call_credentials** creds_array;
28   size_t num_creds;
29 } grpc_call_credentials_array;
30 
31 const grpc_call_credentials_array*
32 grpc_composite_call_credentials_get_credentials(
33     grpc_call_credentials* composite_creds);
34 
35 /* Returns creds if creds is of the specified type or the inner creds of the
36    specified type (if found), if the creds is of type COMPOSITE.
37    If composite_creds is not NULL, *composite_creds will point to creds if of
38    type COMPOSITE in case of success. */
39 grpc_call_credentials* grpc_credentials_contains_type(
40     grpc_call_credentials* creds, const char* type,
41     grpc_call_credentials** composite_creds);
42 
43 /* -- Composite channel credentials. -- */
44 
45 typedef struct {
46   grpc_channel_credentials base;
47   grpc_channel_credentials* inner_creds;
48   grpc_call_credentials* call_creds;
49 } grpc_composite_channel_credentials;
50 
51 /* -- Composite call credentials. -- */
52 
53 typedef struct {
54   grpc_call_credentials base;
55   grpc_call_credentials_array inner;
56 } grpc_composite_call_credentials;
57 
58 #endif /* GRPC_CORE_LIB_SECURITY_CREDENTIALS_COMPOSITE_COMPOSITE_CREDENTIALS_H \
59         */
60