h2_ssl_cert_test.cc
Go to the documentation of this file.
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 #include <stdio.h>
20 #include <string.h>
21 
22 #include <gtest/gtest.h>
23 #include <openssl/crypto.h>
24 
25 #include <grpc/support/alloc.h>
26 #include <grpc/support/log.h>
28 
38 #include "test/core/util/port.h"
40 
42 
43 namespace grpc {
44 namespace testing {
45 
48 };
49 
51  grpc_channel_args* /*client_args*/, grpc_channel_args* /*server_args*/) {
55  memset(&f, 0, sizeof(f));
56 
57  ffd->localaddr = grpc_core::JoinHostPort("localhost", port);
58 
59  f.fixture_data = ffd;
61  return f;
62 }
63 
64 static void process_auth_failure(void* state, grpc_auth_context* /*ctx*/,
65  const grpc_metadata* /*md*/,
66  size_t /*md_count*/,
68  void* user_data) {
69  GPR_ASSERT(state == nullptr);
70  cb(user_data, nullptr, 0, nullptr, 0, GRPC_STATUS_UNAUTHENTICATED, nullptr);
71 }
72 
75  grpc_channel_credentials* creds) {
77  static_cast<fullstack_secure_fixture_data*>(f->fixture_data);
78  f->client = grpc_channel_create(ffd->localaddr.c_str(), creds, client_args);
79  GPR_ASSERT(f->client != nullptr);
81 }
82 
85  grpc_server_credentials* server_creds) {
87  static_cast<fullstack_secure_fixture_data*>(f->fixture_data);
88  if (f->server) {
89  grpc_server_destroy(f->server);
90  }
91  f->server = grpc_server_create(server_args, nullptr);
92  grpc_server_register_completion_queue(f->server, f->cq, nullptr);
93  GPR_ASSERT(grpc_server_add_http2_port(f->server, ffd->localaddr.c_str(),
94  server_creds));
95  grpc_server_credentials_release(server_creds);
96  grpc_server_start(f->server);
97 }
98 
101  static_cast<fullstack_secure_fixture_data*>(f->fixture_data);
102  delete ffd;
103 }
104 
105 static int fail_server_auth_check(grpc_channel_args* server_args) {
106  size_t i;
107  if (server_args == nullptr) return 0;
108  for (i = 0; i < server_args->num_args; i++) {
109  if (strcmp(server_args->args[i].key, FAIL_AUTH_CHECK_SERVER_ARG_NAME) ==
110  0) {
111  return 1;
112  }
113  }
114  return 0;
115 }
116 
117 #define SERVER_INIT_NAME(REQUEST_TYPE) \
118  chttp2_init_server_simple_ssl_secure_fullstack_##REQUEST_TYPE
119 
120 #define SERVER_INIT(REQUEST_TYPE) \
121  static void SERVER_INIT_NAME(REQUEST_TYPE)( \
122  grpc_end2end_test_fixture * f, grpc_channel_args * server_args) { \
123  grpc_ssl_pem_key_cert_pair pem_cert_key_pair; \
124  if (!test_server1_key_id.empty()) { \
125  pem_cert_key_pair.private_key = test_server1_key_id.c_str(); \
126  pem_cert_key_pair.cert_chain = test_server1_cert; \
127  } else { \
128  pem_cert_key_pair.private_key = test_server1_key; \
129  pem_cert_key_pair.cert_chain = test_server1_cert; \
130  } \
131  grpc_server_credentials* ssl_creds = \
132  grpc_ssl_server_credentials_create_ex( \
133  test_root_cert, &pem_cert_key_pair, 1, REQUEST_TYPE, NULL); \
134  if (fail_server_auth_check(server_args)) { \
135  grpc_auth_metadata_processor processor = {process_auth_failure, NULL, \
136  NULL}; \
137  grpc_server_credentials_set_auth_metadata_processor(ssl_creds, \
138  processor); \
139  } \
140  chttp2_init_server_secure_fullstack(f, server_args, ssl_creds); \
141  }
142 
148 
149 #define CLIENT_INIT_NAME(cert_type) \
150  chttp2_init_client_simple_ssl_secure_fullstack_##cert_type
151 
153 
154 #define CLIENT_INIT(cert_type) \
155  static void CLIENT_INIT_NAME(cert_type)(grpc_end2end_test_fixture * f, \
156  grpc_channel_args * client_args) { \
157  grpc_channel_credentials* ssl_creds = NULL; \
158  grpc_ssl_pem_key_cert_pair self_signed_client_key_cert_pair = { \
159  test_self_signed_client_key, test_self_signed_client_cert}; \
160  grpc_ssl_pem_key_cert_pair signed_client_key_cert_pair = { \
161  test_signed_client_key, test_signed_client_cert}; \
162  grpc_ssl_pem_key_cert_pair bad_client_key_cert_pair = { \
163  test_self_signed_client_key, test_signed_client_cert}; \
164  grpc_ssl_pem_key_cert_pair* key_cert_pair = NULL; \
165  switch (cert_type) { \
166  case SELF_SIGNED: \
167  key_cert_pair = &self_signed_client_key_cert_pair; \
168  break; \
169  case SIGNED: \
170  key_cert_pair = &signed_client_key_cert_pair; \
171  break; \
172  case BAD_CERT_PAIR: \
173  key_cert_pair = &bad_client_key_cert_pair; \
174  break; \
175  default: \
176  break; \
177  } \
178  ssl_creds = grpc_ssl_credentials_create(test_root_cert, key_cert_pair, \
179  NULL, NULL); \
180  grpc_arg ssl_name_override = { \
181  GRPC_ARG_STRING, \
182  const_cast<char*>(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG), \
183  {const_cast<char*>("foo.test.google.fr")}}; \
184  grpc_channel_args* new_client_args = \
185  grpc_channel_args_copy_and_add(client_args, &ssl_name_override, 1); \
186  chttp2_init_client_secure_fullstack(f, new_client_args, ssl_creds); \
187  { \
188  grpc_core::ExecCtx exec_ctx; \
189  grpc_channel_args_destroy(new_client_args); \
190  } \
191  }
192 
197 
198 #define TEST_NAME(enum_name, cert_type, result) \
199  "chttp2/ssl_" #enum_name "_" #cert_type "_" #result "_"
200 
201 typedef enum { SUCCESS, FAIL } test_result;
202 
203 #define SSL_TEST(request_type, cert_type, result) \
204  { \
205  {TEST_NAME(request_type, cert_type, result), \
206  FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION | \
207  FEATURE_MASK_SUPPORTS_PER_CALL_CREDENTIALS | \
208  FEATURE_MASK_SUPPORTS_CLIENT_CHANNEL, \
209  "foo.test.google.fr", \
210  chttp2_create_fixture_secure_fullstack, \
211  CLIENT_INIT_NAME(cert_type), \
212  SERVER_INIT_NAME(request_type), \
213  chttp2_tear_down_secure_fullstack}, \
214  result \
215  }
216 
217 /* All test configurations */
222 
228 
230  SUCCESS),
232  SUCCESS),
234  SUCCESS),
236  FAIL),
237 
242  FAIL),
243 
245  NONE, FAIL),
249  SIGNED, SUCCESS),
252 
254  FAIL),
256  SELF_SIGNED, FAIL),
258  SUCCESS),
261 };
262 
263 static void* tag(intptr_t t) { return (void*)t; }
264 
267 }
268 
269 static gpr_timespec five_seconds_time(void) { return n_seconds_time(5); }
270 
272  grpc_event ev;
273  do {
275  } while (ev.type != GRPC_QUEUE_SHUTDOWN);
276 }
277 
278 // Shuts down the server.
279 // Side effect - Also shuts down and drains the completion queue.
281  if (!f->server) return;
282  grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
284  drain_cq(f->cq);
285  grpc_server_destroy(f->server);
286  f->server = nullptr;
287 }
288 
290  if (!f->client) return;
291  grpc_channel_destroy(f->client);
292  f->client = nullptr;
293 }
294 
296  shutdown_client(f);
297  shutdown_server(f);
299 }
300 
302  test_result expected_result) {
303  grpc_call* c;
304  gpr_timespec deadline = five_seconds_time();
305  cq_verifier* cqv = cq_verifier_create(f.cq);
306  grpc_op ops[6];
307  grpc_op* op;
309 
310  grpc_slice host = grpc_slice_from_static_string("foo.test.google.fr:1234");
311  c = grpc_channel_create_call(f.client, nullptr, GRPC_PROPAGATE_DEFAULTS, f.cq,
312  grpc_slice_from_static_string("/foo"), &host,
313  deadline, nullptr);
314  GPR_ASSERT(c);
315 
316  memset(ops, 0, sizeof(ops));
317  op = ops;
321  op->reserved = nullptr;
322  op++;
323  error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1),
324  nullptr);
326 
327  CQ_EXPECT_COMPLETION(cqv, tag(1), expected_result == SUCCESS);
328  cq_verify(cqv);
329 
330  grpc_call_unref(c);
331  cq_verifier_destroy(cqv);
332 }
333 
335  : public ::testing::TestWithParam<grpc_end2end_test_config_wrapper> {
336  protected:
338  gpr_log(GPR_INFO, "SSL_CERT_tests/%s", GetParam().config.name);
339  }
340  void SetUp() override {
341  fixture_ = GetParam().config.create_fixture(nullptr, nullptr);
342  GetParam().config.init_server(&fixture_, nullptr);
343  GetParam().config.init_client(&fixture_, nullptr);
344  }
345  void TearDown() override {
346  end_test(&fixture_);
347  GetParam().config.tear_down_data(&fixture_);
348  }
349 
351 };
352 
353 TEST_P(H2SslCertTest, SimpleRequestBody) {
354  simple_request_body(fixture_, GetParam().result);
355 }
356 
357 #ifndef OPENSSL_IS_BORINGSSL
358 #if GPR_LINUX
359 TEST_P(H2SslCertTest, SimpleRequestBodyUseEngine) {
360  test_server1_key_id.clear();
361  test_server1_key_id.append("engine:libengine_passthrough:");
363  simple_request_body(fixture_, GetParam().result);
364 }
365 #endif
366 #endif
367 
368 INSTANTIATE_TEST_SUITE_P(H2SslCert, H2SslCertTest,
370 
371 } // namespace testing
372 } // namespace grpc
373 
374 int main(int argc, char** argv) {
375  FILE* roots_file;
376  size_t roots_size = strlen(test_root_cert);
377  char* roots_filename;
378 
379  grpc::testing::TestEnvironment env(&argc, argv);
380  /* Set the SSL roots env var. */
381  roots_file =
382  gpr_tmpfile("chttp2_simple_ssl_cert_fullstack_test", &roots_filename);
383  GPR_ASSERT(roots_filename != nullptr);
384  GPR_ASSERT(roots_file != nullptr);
385  GPR_ASSERT(fwrite(test_root_cert, 1, roots_size, roots_file) == roots_size);
386  fclose(roots_file);
387  GPR_GLOBAL_CONFIG_SET(grpc_default_ssl_roots_file_path, roots_filename);
388 
389  grpc_init();
390  ::testing::InitGoogleTest(&argc, argv);
391  int ret = RUN_ALL_TESTS();
392  grpc_shutdown();
393 
394  /* Cleanup. */
395  remove(roots_filename);
396  gpr_free(roots_filename);
397 
398  return ret;
399 }
grpc::testing::process_auth_failure
static void process_auth_failure(void *state, grpc_auth_context *, const grpc_metadata *, size_t, grpc_process_auth_metadata_done_cb cb, void *user_data)
Definition: h2_ssl_cert_test.cc:64
_gevent_test_main.result
result
Definition: _gevent_test_main.py:96
GPR_INFO
#define GPR_INFO
Definition: include/grpc/impl/codegen/log.h:56
testing
Definition: aws_request_signer_test.cc:25
grpc_op::flags
uint32_t flags
Definition: grpc_types.h:644
grpc_call_error
grpc_call_error
Definition: grpc_types.h:464
grpc_auth_context
Definition: security_context.h:63
grpc_timeout_seconds_to_deadline
gpr_timespec grpc_timeout_seconds_to_deadline(int64_t time_s)
Definition: test/core/util/test_config.cc:81
log.h
port.h
generate.env
env
Definition: generate.py:37
GRPC_STATUS_UNAUTHENTICATED
@ GRPC_STATUS_UNAUTHENTICATED
Definition: include/grpc/impl/codegen/status.h:72
memset
return memset(p, 0, total)
grpc
Definition: grpcpp/alarm.h:33
grpc::testing::fullstack_secure_fixture_data
Definition: h2_ssl_cert_test.cc:46
grpc_op::grpc_op_data::send_initial_metadata
struct grpc_op::grpc_op_data::grpc_op_send_initial_metadata send_initial_metadata
grpc::testing::H2SslCertTest::H2SslCertTest
H2SslCertTest()
Definition: h2_ssl_cert_test.cc:337
grpc::testing::end_test
static void end_test(grpc_end2end_test_fixture *f)
Definition: h2_ssl_cert_test.cc:295
grpc_op::reserved
void * reserved
Definition: grpc_types.h:646
string.h
main
int main(int argc, char **argv)
Definition: h2_ssl_cert_test.cc:374
gpr_free
GPRAPI void gpr_free(void *ptr)
Definition: alloc.cc:51
grpc::testing::BAD_CERT_PAIR
@ BAD_CERT_PAIR
Definition: h2_ssl_cert_test.cc:152
testing::internal::string
::std::string string
Definition: bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
grpc_process_auth_metadata_done_cb
void(* grpc_process_auth_metadata_done_cb)(void *user_data, const grpc_metadata *consumed_md, size_t num_consumed_md, const grpc_metadata *response_md, size_t num_response_md, grpc_status_code status, const char *error_details)
Definition: grpc_security.h:585
error
grpc_error_handle error
Definition: retry_filter.cc:499
GRPC_QUEUE_SHUTDOWN
@ GRPC_QUEUE_SHUTDOWN
Definition: grpc_types.h:554
grpc_server_create
GRPCAPI grpc_server * grpc_server_create(const grpc_channel_args *args, void *reserved)
Definition: src/core/lib/surface/server.cc:1456
GRPC_SSL_REQUEST_CLIENT_CERTIFICATE_AND_VERIFY
@ GRPC_SSL_REQUEST_CLIENT_CERTIFICATE_AND_VERIFY
Definition: grpc_security_constants.h:105
gpr_tmpfile
FILE * gpr_tmpfile(const char *prefix, char **tmp_filename)
GRPC_CALL_OK
@ GRPC_CALL_OK
Definition: grpc_types.h:466
grpc::testing::H2SslCertTest
Definition: h2_ssl_cert_test.cc:334
grpc_server_register_completion_queue
GRPCAPI void grpc_server_register_completion_queue(grpc_server *server, grpc_completion_queue *cq, void *reserved)
Definition: src/core/lib/surface/server.cc:1466
grpc::testing::H2SslCertTest::TearDown
void TearDown() override
Definition: h2_ssl_cert_test.cc:345
grpc::testing::grpc_end2end_test_config_wrapper::config
grpc_end2end_test_config config
Definition: h2_ssl_cert_test.cc:219
grpc_end2end_test_config
Definition: end2end_tests.h:53
CLIENT_INIT
#define CLIENT_INIT(cert_type)
Definition: h2_ssl_cert_test.cc:154
grpc::testing::test_result
test_result
Definition: h2_ssl_cert_test.cc:201
grpc::testing::H2SslCertTest::fixture_
grpc_end2end_test_fixture fixture_
Definition: h2_ssl_cert_test.cc:350
credentials.h
SSL_TEST
#define SSL_TEST(request_type, cert_type, result)
Definition: h2_ssl_cert_test.cc:203
grpc_channel_args
Definition: grpc_types.h:132
grpc::testing::n_seconds_time
static gpr_timespec n_seconds_time(int n)
Definition: h2_ssl_cert_test.cc:265
FAIL_AUTH_CHECK_SERVER_ARG_NAME
#define FAIL_AUTH_CHECK_SERVER_ARG_NAME
Definition: end2end_tests.h:44
testing::TestWithParam
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:1883
grpc_op::data
union grpc_op::grpc_op_data data
GRPC_SSL_REQUEST_CLIENT_CERTIFICATE_BUT_DONT_VERIFY
@ GRPC_SSL_REQUEST_CLIENT_CERTIFICATE_BUT_DONT_VERIFY
Definition: grpc_security_constants.h:94
grpc::testing::simple_request_body
static void simple_request_body(grpc_end2end_test_fixture f, test_result expected_result)
Definition: h2_ssl_cert_test.cc:301
grpc_end2end_test_fixture
Definition: end2end_tests.h:46
grpc::testing::grpc_end2end_test_config_wrapper
struct grpc::testing::grpc_end2end_test_config_wrapper grpc_end2end_test_config_wrapper
grpc_metadata
Definition: grpc_types.h:537
grpc::testing::chttp2_init_client_secure_fullstack
static void chttp2_init_client_secure_fullstack(grpc_end2end_test_fixture *f, grpc_channel_args *client_args, grpc_channel_credentials *creds)
Definition: h2_ssl_cert_test.cc:73
grpc::testing::five_seconds_time
static gpr_timespec five_seconds_time(void)
Definition: h2_ssl_cert_test.cc:269
GRPC_INITIAL_METADATA_WAIT_FOR_READY
#define GRPC_INITIAL_METADATA_WAIT_FOR_READY
Definition: grpc_types.h:523
GPR_ASSERT
#define GPR_ASSERT(x)
Definition: include/grpc/impl/codegen/log.h:94
grpc::testing::grpc_end2end_test_config_wrapper
Definition: h2_ssl_cert_test.cc:218
grpc::testing::shutdown_server
static void shutdown_server(grpc_end2end_test_fixture *f)
Definition: h2_ssl_cert_test.cc:280
grpc_server_credentials_release
GRPCAPI void grpc_server_credentials_release(grpc_server_credentials *creds)
Definition: credentials.cc:95
grpc_server_add_http2_port
GRPCAPI int grpc_server_add_http2_port(grpc_server *server, const char *addr, grpc_server_credentials *creds)
Definition: chttp2_server.cc:1029
grpc_call_unref
GRPCAPI void grpc_call_unref(grpc_call *call)
Definition: call.cc:1770
grpc::testing::grpc_end2end_test_config_wrapper::result
test_result result
Definition: h2_ssl_cert_test.cc:220
gpr_log
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
grpc_event
Definition: grpc_types.h:564
grpc_completion_queue
Definition: completion_queue.cc:347
cq_verifier_destroy
void cq_verifier_destroy(cq_verifier *v)
Definition: cq_verifier.cc:92
fullstack_secure_fixture_data
struct fullstack_secure_fixture_data fullstack_secure_fixture_data
grpc_call
struct grpc_call grpc_call
Definition: grpc_types.h:70
grpc_core::JoinHostPort
std::string JoinHostPort(absl::string_view host, int port)
Definition: host_port.cc:32
tmpfile.h
grpc_op
Definition: grpc_types.h:640
grpc::testing::certtype
certtype
Definition: h2_ssl_cert_test.cc:152
crypto.h
grpc_channel_args::num_args
size_t num_args
Definition: grpc_types.h:133
grpc_slice_from_static_string
GPRAPI grpc_slice grpc_slice_from_static_string(const char *source)
Definition: slice/slice.cc:89
cq_verifier_create
cq_verifier * cq_verifier_create(grpc_completion_queue *cq)
Definition: cq_verifier.cc:86
test_server1_key_id
static std::string test_server1_key_id
Definition: h2_ssl_cert_test.cc:41
grpc_slice
Definition: include/grpc/impl/codegen/slice.h:65
grpc::testing::fail_server_auth_check
static int fail_server_auth_check(grpc_channel_args *server_args)
Definition: h2_ssl_cert_test.cc:105
grpc::testing::INSTANTIATE_TEST_SUITE_P
INSTANTIATE_TEST_SUITE_P(HistogramTestCases, HistogramTest, ::testing::Range< int >(0, GRPC_STATS_HISTOGRAM_COUNT))
intptr_t
_W64 signed int intptr_t
Definition: stdint-msvc2008.h:118
cq_verifier
Definition: cq_verifier.cc:76
grpc_server_destroy
GRPCAPI void grpc_server_destroy(grpc_server *server)
Definition: src/core/lib/surface/server.cc:1519
host_port.h
grpc::testing::FAIL
@ FAIL
Definition: h2_ssl_cert_test.cc:201
CQ_EXPECT_COMPLETION
#define CQ_EXPECT_COMPLETION(v, tag, success)
Definition: cq_verifier.h:58
RUN_ALL_TESTS
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:2471
grpc_pick_unused_port_or_die
int grpc_pick_unused_port_or_die(void)
end2end_tests.h
ssl_utils_config.h
grpc::testing::SELF_SIGNED
@ SELF_SIGNED
Definition: h2_ssl_cert_test.cc:152
GPR_GLOBAL_CONFIG_SET
#define GPR_GLOBAL_CONFIG_SET(name, value)
Definition: global_config_generic.h:26
n
int n
Definition: abseil-cpp/absl/container/btree_test.cc:1080
grpc_op::op
grpc_op_type op
Definition: grpc_types.h:642
grpc::testing::configs
static grpc_end2end_test_config_wrapper configs[]
Definition: h2_ssl_cert_test.cc:223
grpc::testing::tag
static void * tag(intptr_t t)
Definition: h2_ssl_cert_test.cc:263
grpc_op::grpc_op_data::grpc_op_send_initial_metadata::count
size_t count
Definition: grpc_types.h:653
grpc::testing::SIGNED
@ SIGNED
Definition: h2_ssl_cert_test.cc:152
grpc::testing::SUCCESS
@ SUCCESS
Definition: h2_ssl_cert_test.cc:201
tests.unit._exit_scenarios.port
port
Definition: _exit_scenarios.py:179
test_config.h
grpc_channel_credentials_release
GRPCAPI void grpc_channel_credentials_release(grpc_channel_credentials *creds)
Definition: credentials.cc:36
grpc_channel_create_call
GRPCAPI grpc_call * grpc_channel_create_call(grpc_channel *channel, grpc_call *parent_call, uint32_t propagation_mask, grpc_completion_queue *completion_queue, grpc_slice method, const grpc_slice *host, gpr_timespec deadline, void *reserved)
Definition: channel.cc:311
grpc_server_credentials
Definition: src/core/lib/security/credentials/credentials.h:259
grpc_channel_create
GRPCAPI grpc_channel * grpc_channel_create(const char *target, grpc_channel_credentials *creds, const grpc_channel_args *args)
Definition: chttp2_connector.cc:366
testing::InitGoogleTest
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
Definition: bloaty/third_party/googletest/googletest/src/gtest.cc:6106
grpc::testing::chttp2_init_server_secure_fullstack
static void chttp2_init_server_secure_fullstack(grpc_end2end_test_fixture *f, grpc_channel_args *server_args, grpc_server_credentials *server_creds)
Definition: h2_ssl_cert_test.cc:83
GRPC_PROPAGATE_DEFAULTS
#define GRPC_PROPAGATE_DEFAULTS
Definition: propagation_bits.h:45
benchmark.FILE
FILE
Definition: benchmark.py:21
cq_verifier.h
GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_BUT_DONT_VERIFY
@ GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_BUT_DONT_VERIFY
Definition: grpc_security_constants.h:115
grpc_completion_queue_destroy
GRPCAPI void grpc_completion_queue_destroy(grpc_completion_queue *cq)
Definition: completion_queue.cc:1424
GRPC_OP_SEND_INITIAL_METADATA
@ GRPC_OP_SEND_INITIAL_METADATA
Definition: grpc_types.h:598
grpc::testing::NONE
@ NONE
Definition: h2_ssl_cert_test.cc:152
grpc::fclose
fclose(creds_file)
GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE
@ GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE
Definition: grpc_security_constants.h:84
ret
UniquePtr< SSL_SESSION > ret
Definition: ssl_x509.cc:1029
alloc.h
grpc::testing::TestEnvironment
Definition: test/core/util/test_config.h:54
grpc_arg::key
char * key
Definition: grpc_types.h:105
grpc_server_shutdown_and_notify
GRPCAPI void grpc_server_shutdown_and_notify(grpc_server *server, grpc_completion_queue *cq, void *tag)
Definition: src/core/lib/surface/server.cc:1503
grpc_completion_queue_next
GRPCAPI grpc_event grpc_completion_queue_next(grpc_completion_queue *cq, gpr_timespec deadline, void *reserved)
Definition: completion_queue.cc:1133
cq_verify
void cq_verify(cq_verifier *v, int timeout_sec)
Definition: cq_verifier.cc:268
testing::WithParamInterface< grpc_end2end_test_config_wrapper >::GetParam
static const ParamType & GetParam()
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:1855
grpc_completion_queue_shutdown
GRPCAPI void grpc_completion_queue_shutdown(grpc_completion_queue *cq)
Definition: completion_queue.cc:1416
grpc_channel_destroy
GRPCAPI void grpc_channel_destroy(grpc_channel *channel)
Definition: channel.cc:437
state
Definition: bloaty/third_party/zlib/contrib/blast/blast.c:41
grpc::testing::H2SslCertTest::SetUp
void SetUp() override
Definition: h2_ssl_cert_test.cc:340
config_s
Definition: bloaty/third_party/zlib/deflate.c:120
channel_args.h
SERVER_INIT
#define SERVER_INIT(REQUEST_TYPE)
Definition: h2_ssl_cert_test.cc:120
test_root_cert
const char test_root_cert[]
grpc::testing::TEST_P
TEST_P(HistogramTest, IncHistogram)
Definition: stats_test.cc:87
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_completion_queue_create_for_next
GRPCAPI grpc_completion_queue * grpc_completion_queue_create_for_next(void *reserved)
Definition: completion_queue_factory.cc:62
ssl_test_data.h
testing::ValuesIn
internal::ParamGenerator< typename std::iterator_traits< ForwardIterator >::value_type > ValuesIn(ForwardIterator begin, ForwardIterator end)
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest-param-test.h:297
gpr_timespec
Definition: gpr_types.h:50
grpc_event::type
grpc_completion_type type
Definition: grpc_types.h:566
grpc_init
GRPCAPI void grpc_init(void)
Definition: init.cc:146
grpc_server_start
GRPCAPI void grpc_server_start(grpc_server *server)
Definition: src/core/lib/surface/server.cc:1497
test_server1_key
const char test_server1_key[]
grpc::testing::chttp2_tear_down_secure_fullstack
void chttp2_tear_down_secure_fullstack(grpc_end2end_test_fixture *f)
Definition: h2_ssl_cert_test.cc:99
grpc_channel_args::args
grpc_arg * args
Definition: grpc_types.h:134
op
static grpc_op * op
Definition: test/core/fling/client.cc:47
ops
static grpc_op ops[6]
Definition: test/core/fling/client.cc:39
grpc_call_start_batch
GRPCAPI grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops, size_t nops, void *tag, void *reserved)
Definition: call.cc:1831
grpc_shutdown
GRPCAPI void grpc_shutdown(void)
Definition: init.cc:209
grpc_channel_credentials
Definition: src/core/lib/security/credentials/credentials.h:96
grpc::testing::drain_cq
static void drain_cq(grpc_completion_queue *cq)
Definition: h2_ssl_cert_test.cc:271
cq
static grpc_completion_queue * cq
Definition: test/core/fling/client.cc:37
cb
OPENSSL_EXPORT pem_password_cb * cb
Definition: pem.h:351
grpc::testing::shutdown_client
static void shutdown_client(grpc_end2end_test_fixture *f)
Definition: h2_ssl_cert_test.cc:289
string_ref.h
i
uint64_t i
Definition: abseil-cpp/absl/container/btree_benchmark.cc:230
grpc::testing::chttp2_create_fixture_secure_fullstack
static grpc_end2end_test_fixture chttp2_create_fixture_secure_fullstack(grpc_channel_args *, grpc_channel_args *)
Definition: h2_ssl_cert_test.cc:50
grpc::testing::fullstack_secure_fixture_data::localaddr
std::string localaddr
Definition: h2_ssl_cert_test.cc:47


grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:00:10