ssl_credentials.cc
Go to the documentation of this file.
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 
20 
22 
23 #include <string.h>
24 
25 #include <utility>
26 
27 #include "absl/strings/string_view.h"
28 
29 #include <grpc/support/alloc.h>
30 #include <grpc/support/log.h>
32 
38 
39 //
40 // SSL Channel Credentials.
41 //
42 
44  const char* pem_root_certs, grpc_ssl_pem_key_cert_pair* pem_key_cert_pair,
45  const grpc_ssl_verify_peer_options* verify_options) {
46  build_config(pem_root_certs, pem_key_cert_pair, verify_options);
47 }
48 
55  }
56 }
57 
61  const char* target, const grpc_channel_args* args,
62  grpc_channel_args** new_args) {
63  const char* overridden_target_name = nullptr;
64  tsi_ssl_session_cache* ssl_session_cache = nullptr;
65  for (size_t i = 0; args && i < args->num_args; i++) {
66  grpc_arg* arg = &args->args[i];
67  if (strcmp(arg->key, GRPC_SSL_TARGET_NAME_OVERRIDE_ARG) == 0 &&
68  arg->type == GRPC_ARG_STRING) {
69  overridden_target_name = arg->value.string;
70  }
71  if (strcmp(arg->key, GRPC_SSL_SESSION_CACHE_ARG) == 0 &&
73  ssl_session_cache =
74  static_cast<tsi_ssl_session_cache*>(arg->value.pointer.p);
75  }
76  }
79  this->Ref(), std::move(call_creds), &config_, target,
80  overridden_target_name, ssl_session_cache);
81  if (sc == nullptr) {
82  return sc;
83  }
85  const_cast<char*>(GRPC_ARG_HTTP2_SCHEME), const_cast<char*>("https"));
86  *new_args = grpc_channel_args_copy_and_add(args, &new_arg, 1);
87  return sc;
88 }
89 
91  static grpc_core::UniqueTypeName::Factory kFactory("Ssl");
92  return kFactory.Create();
93 }
94 
96  const char* pem_root_certs, grpc_ssl_pem_key_cert_pair* pem_key_cert_pair,
97  const grpc_ssl_verify_peer_options* verify_options) {
99  if (pem_key_cert_pair != nullptr) {
100  GPR_ASSERT(pem_key_cert_pair->private_key != nullptr);
101  GPR_ASSERT(pem_key_cert_pair->cert_chain != nullptr);
105  gpr_strdup(pem_key_cert_pair->cert_chain);
107  gpr_strdup(pem_key_cert_pair->private_key);
108  } else {
109  config_.pem_key_cert_pair = nullptr;
110  }
111  if (verify_options != nullptr) {
112  memcpy(&config_.verify_options, verify_options,
113  sizeof(verify_peer_options));
114  } else {
115  // Otherwise set all options to default values
117  }
118 }
119 
121  grpc_tls_version min_tls_version) {
122  config_.min_tls_version = min_tls_version;
123 }
124 
126  grpc_tls_version max_tls_version) {
127  config_.max_tls_version = max_tls_version;
128 }
129 
130 /* Deprecated in favor of grpc_ssl_credentials_create_ex. Will be removed
131  * once all of its call sites are migrated to grpc_ssl_credentials_create_ex. */
133  const char* pem_root_certs, grpc_ssl_pem_key_cert_pair* pem_key_cert_pair,
134  const verify_peer_options* verify_options, void* reserved) {
136  "grpc_ssl_credentials_create(pem_root_certs=%s, "
137  "pem_key_cert_pair=%p, "
138  "verify_options=%p, "
139  "reserved=%p)",
140  4, (pem_root_certs, pem_key_cert_pair, verify_options, reserved));
141  GPR_ASSERT(reserved == nullptr);
142 
143  return new grpc_ssl_credentials(
144  pem_root_certs, pem_key_cert_pair,
145  reinterpret_cast<const grpc_ssl_verify_peer_options*>(verify_options));
146 }
147 
149  const char* pem_root_certs, grpc_ssl_pem_key_cert_pair* pem_key_cert_pair,
150  const grpc_ssl_verify_peer_options* verify_options, void* reserved) {
152  "grpc_ssl_credentials_create(pem_root_certs=%s, "
153  "pem_key_cert_pair=%p, "
154  "verify_options=%p, "
155  "reserved=%p)",
156  4, (pem_root_certs, pem_key_cert_pair, verify_options, reserved));
157  GPR_ASSERT(reserved == nullptr);
158 
159  return new grpc_ssl_credentials(pem_root_certs, pem_key_cert_pair,
160  verify_options);
161 }
162 
163 //
164 // SSL Server Credentials.
165 //
166 
171 };
172 
175  if (options.certificate_config_fetcher != nullptr) {
176  config_.client_certificate_request = options.client_certificate_request;
177  certificate_config_fetcher_ = *options.certificate_config_fetcher;
178  } else {
179  build_config(options.certificate_config->pem_root_certs,
180  options.certificate_config->pem_key_cert_pairs,
181  options.certificate_config->num_key_cert_pairs,
182  options.client_certificate_request);
183  }
184 }
185 
190 }
193  const grpc_channel_args* /* args */) {
195 }
196 
198  static grpc_core::UniqueTypeName::Factory kFactory("Ssl");
199  return kFactory.Create();
200 }
201 
203  const grpc_ssl_pem_key_cert_pair* pem_key_cert_pairs,
204  size_t num_key_cert_pairs) {
205  tsi_ssl_pem_key_cert_pair* tsi_pairs = nullptr;
206  if (num_key_cert_pairs > 0) {
207  GPR_ASSERT(pem_key_cert_pairs != nullptr);
208  tsi_pairs = static_cast<tsi_ssl_pem_key_cert_pair*>(
209  gpr_zalloc(num_key_cert_pairs * sizeof(tsi_ssl_pem_key_cert_pair)));
210  }
211  for (size_t i = 0; i < num_key_cert_pairs; i++) {
212  GPR_ASSERT(pem_key_cert_pairs[i].private_key != nullptr);
213  GPR_ASSERT(pem_key_cert_pairs[i].cert_chain != nullptr);
214  tsi_pairs[i].cert_chain = gpr_strdup(pem_key_cert_pairs[i].cert_chain);
215  tsi_pairs[i].private_key = gpr_strdup(pem_key_cert_pairs[i].private_key);
216  }
217  return tsi_pairs;
218 }
219 
221  const char* pem_root_certs, grpc_ssl_pem_key_cert_pair* pem_key_cert_pairs,
222  size_t num_key_cert_pairs,
223  grpc_ssl_client_certificate_request_type client_certificate_request) {
224  config_.client_certificate_request = client_certificate_request;
227  pem_key_cert_pairs, num_key_cert_pairs);
228  config_.num_key_cert_pairs = num_key_cert_pairs;
229 }
230 
232  grpc_tls_version min_tls_version) {
233  config_.min_tls_version = min_tls_version;
234 }
235 
237  grpc_tls_version max_tls_version) {
238  config_.max_tls_version = max_tls_version;
239 }
240 
242  const char* pem_root_certs,
243  const grpc_ssl_pem_key_cert_pair* pem_key_cert_pairs,
244  size_t num_key_cert_pairs) {
248  config->pem_root_certs = gpr_strdup(pem_root_certs);
249  if (num_key_cert_pairs > 0) {
250  GPR_ASSERT(pem_key_cert_pairs != nullptr);
251  config->pem_key_cert_pairs = static_cast<grpc_ssl_pem_key_cert_pair*>(
252  gpr_zalloc(num_key_cert_pairs * sizeof(grpc_ssl_pem_key_cert_pair)));
253  }
254  config->num_key_cert_pairs = num_key_cert_pairs;
255  for (size_t i = 0; i < num_key_cert_pairs; i++) {
256  GPR_ASSERT(pem_key_cert_pairs[i].private_key != nullptr);
257  GPR_ASSERT(pem_key_cert_pairs[i].cert_chain != nullptr);
258  config->pem_key_cert_pairs[i].cert_chain =
259  gpr_strdup(pem_key_cert_pairs[i].cert_chain);
260  config->pem_key_cert_pairs[i].private_key =
261  gpr_strdup(pem_key_cert_pairs[i].private_key);
262  }
263  return config;
264 }
265 
268  if (config == nullptr) return;
269  for (size_t i = 0; i < config->num_key_cert_pairs; i++) {
270  gpr_free(const_cast<char*>(config->pem_key_cert_pairs[i].private_key));
271  gpr_free(const_cast<char*>(config->pem_key_cert_pairs[i].cert_chain));
272  }
273  gpr_free(config->pem_key_cert_pairs);
274  gpr_free(config->pem_root_certs);
275  gpr_free(config);
276 }
277 
280  grpc_ssl_client_certificate_request_type client_certificate_request,
283  if (config == nullptr) {
284  gpr_log(GPR_ERROR, "Certificate config must not be NULL.");
285  goto done;
286  }
289  options->client_certificate_request = client_certificate_request;
290  options->certificate_config = config;
291 done:
292  return options;
293 }
294 
297  grpc_ssl_client_certificate_request_type client_certificate_request,
299  if (cb == nullptr) {
300  gpr_log(GPR_ERROR, "Invalid certificate config callback parameter.");
301  return nullptr;
302  }
303 
307  fetcher->cb = cb;
308  fetcher->user_data = user_data;
309 
313  options->client_certificate_request = client_certificate_request;
314  options->certificate_config_fetcher = fetcher;
315 
316  return options;
317 }
318 
320  const char* pem_root_certs, grpc_ssl_pem_key_cert_pair* pem_key_cert_pairs,
321  size_t num_key_cert_pairs, int force_client_auth, void* reserved) {
323  pem_root_certs, pem_key_cert_pairs, num_key_cert_pairs,
324  force_client_auth
327  reserved);
328 }
329 
331  const char* pem_root_certs, grpc_ssl_pem_key_cert_pair* pem_key_cert_pairs,
332  size_t num_key_cert_pairs,
333  grpc_ssl_client_certificate_request_type client_certificate_request,
334  void* reserved) {
336  "grpc_ssl_server_credentials_create_ex("
337  "pem_root_certs=%s, pem_key_cert_pairs=%p, num_key_cert_pairs=%lu, "
338  "client_certificate_request=%d, reserved=%p)",
339  5,
340  (pem_root_certs, pem_key_cert_pairs, (unsigned long)num_key_cert_pairs,
341  client_certificate_request, reserved));
342  GPR_ASSERT(reserved == nullptr);
343 
346  pem_root_certs, pem_key_cert_pairs, num_key_cert_pairs);
349  client_certificate_request, cert_config);
350 
352 }
353 
356  grpc_server_credentials* retval = nullptr;
357 
358  if (options == nullptr) {
360  "Invalid options trying to create SSL server credentials.");
361  goto done;
362  }
363 
364  if (options->certificate_config == nullptr &&
365  options->certificate_config_fetcher == nullptr) {
367  "SSL server credentials options must specify either "
368  "certificate config or fetcher.");
369  goto done;
370  } else if (options->certificate_config_fetcher != nullptr &&
371  options->certificate_config_fetcher->cb == nullptr) {
372  gpr_log(GPR_ERROR, "Certificate config fetcher callback must not be NULL.");
373  goto done;
374  }
375 
376  retval = new grpc_ssl_server_credentials(*options);
377 
378 done:
380  return retval;
381 }
382 
385  if (o == nullptr) return;
386  gpr_free(o->certificate_config_fetcher);
387  grpc_ssl_server_certificate_config_destroy(o->certificate_config);
388  gpr_free(o);
389 }
grpc_arg
Definition: grpc_types.h:103
trace.h
grpc_core::UniqueTypeName::Factory::Create
UniqueTypeName Create()
Definition: unique_type_name.h:67
grpc_ssl_credentials::Type
static grpc_core::UniqueTypeName Type()
Definition: ssl_credentials.cc:90
grpc_ssl_server_certificate_config_create
grpc_ssl_server_certificate_config * grpc_ssl_server_certificate_config_create(const char *pem_root_certs, const grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs)
Definition: ssl_credentials.cc:241
verify_peer_options::verify_peer_callback_userdata
void * verify_peer_callback_userdata
Definition: grpc_security.h:198
grpc_ssl_credentials::config_
grpc_ssl_config config_
Definition: ssl_credentials.h:73
log.h
grpc_ssl_credentials::create_security_connector
grpc_core::RefCountedPtr< grpc_channel_security_connector > create_security_connector(grpc_core::RefCountedPtr< grpc_call_credentials > call_creds, const char *target, const grpc_channel_args *args, grpc_channel_args **new_args) override
Definition: ssl_credentials.cc:59
grpc_ssl_credentials
Definition: ssl_credentials.h:39
grpc_ssl_server_credentials::config_
grpc_ssl_server_config config_
Definition: ssl_credentials.h:124
grpc_ssl_server_certificate_config_fetcher
Definition: ssl_credentials.h:82
grpc_ssl_server_credentials::grpc_ssl_server_credentials
grpc_ssl_server_credentials(const grpc_ssl_server_credentials_options &options)
Definition: ssl_credentials.cc:173
grpc_ssl_server_config::pem_root_certs
char * pem_root_certs
Definition: ssl_security_connector.h:66
grpc_ssl_verify_peer_options
Definition: grpc_security.h:207
memset
return memset(p, 0, total)
grpc_ssl_config::pem_key_cert_pair
tsi_ssl_pem_key_cert_pair * pem_key_cert_pair
Definition: ssl_security_connector.h:34
grpc_ssl_pem_key_cert_pair::private_key
const char * private_key
Definition: grpc_security.h:176
GRPC_ARG_STRING
@ GRPC_ARG_STRING
Definition: grpc_types.h:80
pem_root_certs
static char * pem_root_certs
Definition: rb_channel_credentials.c:38
grpc_ssl_server_credentials::Type
static grpc_core::UniqueTypeName Type()
Definition: ssl_credentials.cc:197
tsi_ssl_pem_key_cert_pair
Definition: ssl_transport_security.h:101
grpc_ssl_credentials_create_ex
grpc_channel_credentials * grpc_ssl_credentials_create_ex(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pair, const grpc_ssl_verify_peer_options *verify_options, void *reserved)
Definition: ssl_credentials.cc:148
string.h
options
double_dict options[]
Definition: capstone_test.c:55
grpc_ssl_server_credentials_create_options_using_config_fetcher
grpc_ssl_server_credentials_options * grpc_ssl_server_credentials_create_options_using_config_fetcher(grpc_ssl_client_certificate_request_type client_certificate_request, grpc_ssl_server_certificate_config_callback cb, void *user_data)
Definition: ssl_credentials.cc:296
gpr_free
GPRAPI void gpr_free(void *ptr)
Definition: alloc.cc:51
grpc_ssl_server_credentials_options::certificate_config_fetcher
grpc_ssl_server_certificate_config_fetcher * certificate_config_fetcher
Definition: ssl_credentials.cc:170
grpc_ssl_server_credentials::set_min_tls_version
void set_min_tls_version(grpc_tls_version min_tls_version)
Definition: ssl_credentials.cc:231
grpc_ssl_server_credentials::certificate_config_fetcher_
grpc_ssl_server_certificate_config_fetcher certificate_config_fetcher_
Definition: ssl_credentials.h:125
arg::value
void * value
Definition: cmdline.cc:44
grpc_ssl_server_credentials_create
grpc_server_credentials * grpc_ssl_server_credentials_create(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs, int force_client_auth, void *reserved)
Definition: ssl_credentials.cc:319
tsi_ssl_pem_key_cert_pair::cert_chain
const char * cert_chain
Definition: ssl_transport_security.h:108
grpc_channel_arg_string_create
grpc_arg grpc_channel_arg_string_create(char *name, char *value)
Definition: channel_args.cc:476
ssl_transport_security.h
grpc_ssl_server_credentials_options
Definition: ssl_credentials.cc:167
grpc_ssl_pem_key_cert_pair::cert_chain
const char * cert_chain
Definition: grpc_security.h:180
grpc_channel_args
Definition: grpc_types.h:132
grpc_ssl_server_credentials::create_security_connector
grpc_core::RefCountedPtr< grpc_server_security_connector > create_security_connector(const grpc_channel_args *) override
Definition: ssl_credentials.cc:192
grpc_ssl_server_credentials_options_destroy
void grpc_ssl_server_credentials_options_destroy(grpc_ssl_server_credentials_options *o)
Definition: ssl_credentials.cc:383
grpc_ssl_server_config::min_tls_version
grpc_tls_version min_tls_version
Definition: ssl_security_connector.h:69
gpr_zalloc
GPRAPI void * gpr_zalloc(size_t size)
Definition: alloc.cc:40
grpc_ssl_server_config::num_key_cert_pairs
size_t num_key_cert_pairs
Definition: ssl_security_connector.h:65
o
UnboundConversion o
Definition: third_party/abseil-cpp/absl/strings/internal/str_format/parser_test.cc:97
grpc_ssl_credentials::build_config
void build_config(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pair, const grpc_ssl_verify_peer_options *verify_options)
Definition: ssl_credentials.cc:95
string_util.h
memcpy
memcpy(mem, inblock.get(), min(CONTAINING_RECORD(inblock.get(), MEMBLOCK, data) ->size, size))
arg::type
argtype type
Definition: cmdline.cc:43
asyncio_get_stats.args
args
Definition: asyncio_get_stats.py:40
grpc_ssl_server_config::pem_key_cert_pairs
tsi_ssl_pem_key_cert_pair * pem_key_cert_pairs
Definition: ssl_security_connector.h:64
grpc_core::RefCountedPtr< grpc_channel_security_connector >
absl::move
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
Definition: abseil-cpp/absl/utility/utility.h:221
GPR_ASSERT
#define GPR_ASSERT(x)
Definition: include/grpc/impl/codegen/log.h:94
GRPC_SSL_TARGET_NAME_OVERRIDE_ARG
#define GRPC_SSL_TARGET_NAME_OVERRIDE_ARG
Definition: grpc_types.h:278
grpc_ssl_server_credentials_options::certificate_config
grpc_ssl_server_certificate_config * certificate_config
Definition: ssl_credentials.cc:169
config
struct config_s config
grpc_ssl_server_security_connector_create
grpc_core::RefCountedPtr< grpc_server_security_connector > grpc_ssl_server_security_connector_create(grpc_core::RefCountedPtr< grpc_server_credentials > server_credentials)
Definition: ssl_security_connector.cc:451
grpc_ssl_credentials::set_min_tls_version
void set_min_tls_version(grpc_tls_version min_tls_version)
Definition: ssl_credentials.cc:120
grpc_tsi_ssl_pem_key_cert_pairs_destroy
void grpc_tsi_ssl_pem_key_cert_pairs_destroy(tsi_ssl_pem_key_cert_pair *kp, size_t num_key_cert_pairs)
Definition: ssl_utils.cc:168
gpr_log
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
call_creds
void call_creds(grpc_end2end_test_config config)
Definition: call_creds.cc:523
done
struct tab * done
Definition: bloaty/third_party/zlib/examples/enough.c:176
grpc_ssl_server_credentials::~grpc_ssl_server_credentials
~grpc_ssl_server_credentials() override
Definition: ssl_credentials.cc:186
arg
Definition: cmdline.cc:40
grpc_ssl_server_certificate_config_destroy
void grpc_ssl_server_certificate_config_destroy(grpc_ssl_server_certificate_config *config)
Definition: ssl_credentials.cc:266
grpc_ssl_client_certificate_request_type
grpc_ssl_client_certificate_request_type
Definition: grpc_security_constants.h:79
grpc_tls_version
grpc_tls_version
Definition: grpc_security_constants.h:146
grpc_ssl_credentials::set_max_tls_version
void set_max_tls_version(grpc_tls_version max_tls_version)
Definition: ssl_credentials.cc:125
grpc_ssl_server_certificate_config_fetcher::user_data
void * user_data
Definition: ssl_credentials.h:84
GPR_ERROR
#define GPR_ERROR
Definition: include/grpc/impl/codegen/log.h:57
grpc_ssl_server_credentials::build_config
void build_config(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs, grpc_ssl_client_certificate_request_type client_certificate_request)
Definition: ssl_credentials.cc:220
grpc_ssl_server_config::client_certificate_request
grpc_ssl_client_certificate_request_type client_certificate_request
Definition: ssl_security_connector.h:67
grpc_ssl_server_certificate_config
Definition: ssl_credentials.h:76
grpc_ssl_server_credentials
Definition: ssl_credentials.h:87
grpc_convert_grpc_to_tsi_cert_pairs
tsi_ssl_pem_key_cert_pair * grpc_convert_grpc_to_tsi_cert_pairs(const grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs)
Definition: ssl_credentials.cc:202
grpc_ssl_server_config::max_tls_version
grpc_tls_version max_tls_version
Definition: ssl_security_connector.h:70
GRPC_ARG_HTTP2_SCHEME
#define GRPC_ARG_HTTP2_SCHEME
Definition: grpc_types.h:222
verify_peer_options
Definition: grpc_security.h:187
tsi_ssl_pem_key_cert_pair::private_key
const char * private_key
Definition: ssl_transport_security.h:104
grpc_server_credentials
Definition: src/core/lib/security/credentials/credentials.h:259
grpc_ssl_server_credentials_create_ex
grpc_server_credentials * grpc_ssl_server_credentials_create_ex(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs, grpc_ssl_client_certificate_request_type client_certificate_request, void *reserved)
Definition: ssl_credentials.cc:330
grpc_core::UniqueTypeName
Definition: unique_type_name.h:56
grpc_ssl_channel_security_connector_create
grpc_core::RefCountedPtr< grpc_channel_security_connector > grpc_ssl_channel_security_connector_create(grpc_core::RefCountedPtr< grpc_channel_credentials > channel_creds, grpc_core::RefCountedPtr< grpc_call_credentials > request_metadata_creds, const grpc_ssl_config *config, const char *target_name, const char *overridden_target_name, tsi_ssl_session_cache *ssl_session_cache)
Definition: ssl_security_connector.cc:412
tsi_ssl_session_cache
struct tsi_ssl_session_cache tsi_ssl_session_cache
Definition: ssl_transport_security.h:68
grpc_ssl_config::pem_root_certs
char * pem_root_certs
Definition: ssl_security_connector.h:35
grpc_ssl_server_certificate_config_callback
grpc_ssl_certificate_config_reload_status(* grpc_ssl_server_certificate_config_callback)(void *user_data, grpc_ssl_server_certificate_config **config)
Definition: grpc_security.h:504
grpc_ssl_config::min_tls_version
grpc_tls_version min_tls_version
Definition: ssl_security_connector.h:37
GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE
@ GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE
Definition: grpc_security_constants.h:84
verify_peer_options::verify_peer_destruct
void(* verify_peer_destruct)(void *userdata)
Definition: grpc_security.h:202
alloc.h
private_key
Definition: hrss.c:1885
grpc_ssl_credentials_create
grpc_channel_credentials * grpc_ssl_credentials_create(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pair, const verify_peer_options *verify_options, void *reserved)
Definition: ssl_credentials.cc:132
grpc_ssl_config::verify_options
verify_peer_options verify_options
Definition: ssl_security_connector.h:36
config_s
Definition: bloaty/third_party/zlib/deflate.c:120
channel_args.h
api_trace.h
gpr_strdup
GPRAPI char * gpr_strdup(const char *src)
Definition: string.cc:39
GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
@ GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
Definition: grpc_security_constants.h:125
GRPC_ARG_POINTER
@ GRPC_ARG_POINTER
Definition: grpc_types.h:82
grpc_ssl_credentials::~grpc_ssl_credentials
~grpc_ssl_credentials() override
Definition: ssl_credentials.cc:49
grpc_ssl_server_credentials::set_max_tls_version
void set_max_tls_version(grpc_tls_version max_tls_version)
Definition: ssl_credentials.cc:236
ssl_credentials.h
grpc_ssl_server_credentials_create_with_options
grpc_server_credentials * grpc_ssl_server_credentials_create_with_options(grpc_ssl_server_credentials_options *options)
Definition: ssl_credentials.cc:354
grpc_core::UniqueTypeName::Factory
Definition: unique_type_name.h:60
GRPC_SSL_SESSION_CACHE_ARG
#define GRPC_SSL_SESSION_CACHE_ARG
Definition: grpc_types.h:282
grpc_ssl_config::max_tls_version
grpc_tls_version max_tls_version
Definition: ssl_security_connector.h:38
grpc_ssl_credentials::grpc_ssl_credentials
grpc_ssl_credentials(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pair, const grpc_ssl_verify_peer_options *verify_options)
Definition: ssl_credentials.cc:43
setup.target
target
Definition: third_party/bloaty/third_party/protobuf/python/setup.py:179
grpc_ssl_pem_key_cert_pair
Definition: grpc_security.h:173
grpc_channel_credentials
Definition: src/core/lib/security/credentials/credentials.h:96
grpc_ssl_server_credentials_options::client_certificate_request
grpc_ssl_client_certificate_request_type client_certificate_request
Definition: ssl_credentials.cc:168
grpc_ssl_server_credentials_create_options_using_config
grpc_ssl_server_credentials_options * grpc_ssl_server_credentials_create_options_using_config(grpc_ssl_client_certificate_request_type client_certificate_request, grpc_ssl_server_certificate_config *config)
Definition: ssl_credentials.cc:279
cb
OPENSSL_EXPORT pem_password_cb * cb
Definition: pem.h:351
ssl_utils.h
grpc_channel_args_copy_and_add
grpc_channel_args * grpc_channel_args_copy_and_add(const grpc_channel_args *src, const grpc_arg *to_add, size_t num_to_add)
Definition: channel_args.cc:224
grpc_core::RefCounted< grpc_channel_credentials >::Ref
RefCountedPtr< grpc_channel_credentials > Ref() GRPC_MUST_USE_RESULT
Definition: ref_counted.h:287
i
uint64_t i
Definition: abseil-cpp/absl/container/btree_benchmark.cc:230
GRPC_API_TRACE
#define GRPC_API_TRACE(fmt, nargs, args)
Definition: api_trace.h:48
grpc_ssl_server_certificate_config_fetcher::cb
grpc_ssl_server_certificate_config_callback cb
Definition: ssl_credentials.h:83
port_platform.h


grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:20