21 #include <gmock/gmock.h>
22 #include <gtest/gtest.h>
36 #define CA_CERT_PATH "src/core/tsi/test_creds/ca.pem"
37 #define SERVER_CERT_PATH "src/core/tsi/test_creds/server1.pem"
38 #define SERVER_KEY_PATH "src/core/tsi/test_creds/server1.key"
39 #define CA_CERT_PATH_2 "src/core/tsi/test_creds/multi-domain.pem"
40 #define SERVER_CERT_PATH_2 "src/core/tsi/test_creds/server0.pem"
41 #define SERVER_KEY_PATH_2 "src/core/tsi/test_creds/server0.key"
42 #define INVALID_PATH "invalid/path"
73 auto options = MakeRefCounted<grpc_tls_credentials_options>();
74 auto credentials = MakeRefCounted<TlsCredentials>(
options);
77 auto connector = credentials->create_security_connector(
78 nullptr,
"random targets",
nullptr, &new_args);
91 ClientOptionsWithStaticDataProviderOnBothCerts) {
92 auto options = MakeRefCounted<grpc_tls_credentials_options>();
93 auto provider = MakeRefCounted<StaticDataCertificateProvider>(
96 options->set_watch_root_cert(
true);
97 options->set_watch_identity_pair(
true);
98 auto credentials = MakeRefCounted<TlsCredentials>(
options);
101 auto connector = credentials->create_security_connector(
102 nullptr,
"random targets",
nullptr, &new_args);
113 ClientOptionsWithStaticDataProviderOnRootCerts) {
114 auto options = MakeRefCounted<grpc_tls_credentials_options>();
115 auto provider = MakeRefCounted<StaticDataCertificateProvider>(
118 options->set_watch_root_cert(
true);
119 auto credentials = MakeRefCounted<TlsCredentials>(
options);
122 auto connector = credentials->create_security_connector(
123 nullptr,
"random targets",
nullptr, &new_args);
134 ClientOptionsWithStaticDataProviderOnNotProvidedCerts) {
135 auto options = MakeRefCounted<grpc_tls_credentials_options>();
136 auto provider = MakeRefCounted<StaticDataCertificateProvider>(
139 options->set_watch_root_cert(
true);
140 auto credentials = MakeRefCounted<TlsCredentials>(
options);
143 auto connector = credentials->create_security_connector(
144 nullptr,
"random targets",
nullptr, &new_args);
153 ClientOptionsWithDefaultRootAndStaticDataProviderOnIdentityCerts) {
154 auto options = MakeRefCounted<grpc_tls_credentials_options>();
155 auto provider = MakeRefCounted<StaticDataCertificateProvider>(
158 options->set_watch_identity_pair(
true);
159 auto credentials = MakeRefCounted<TlsCredentials>(
options);
162 auto connector = credentials->create_security_connector(
163 nullptr,
"random targets",
nullptr, &new_args);
172 ServerOptionsWithStaticDataProviderOnBothCerts) {
173 auto options = MakeRefCounted<grpc_tls_credentials_options>();
174 auto provider = MakeRefCounted<StaticDataCertificateProvider>(
177 options->set_watch_root_cert(
true);
178 options->set_watch_identity_pair(
true);
179 options->set_cert_request_type(
181 auto credentials = MakeRefCounted<TlsServerCredentials>(
options);
183 auto connector = credentials->create_security_connector(
nullptr);
193 ServerOptionsWithStaticDataProviderOnIdentityCerts) {
194 auto options = MakeRefCounted<grpc_tls_credentials_options>();
195 auto provider = MakeRefCounted<StaticDataCertificateProvider>(
198 options->set_watch_identity_pair(
true);
200 auto credentials = MakeRefCounted<TlsServerCredentials>(
options);
202 auto connector = credentials->create_security_connector(
nullptr);
212 ServerOptionsWithStaticDataProviderOnNotProvidedCerts) {
213 auto options = MakeRefCounted<grpc_tls_credentials_options>();
214 auto provider = MakeRefCounted<StaticDataCertificateProvider>(
217 options->set_watch_identity_pair(
true);
219 auto credentials = MakeRefCounted<TlsServerCredentials>(
options);
221 auto connector = credentials->create_security_connector(
nullptr);
233 ClientOptionsWithCertWatcherProviderOnBothCerts) {
234 auto options = MakeRefCounted<grpc_tls_credentials_options>();
235 auto provider = MakeRefCounted<FileWatcherCertificateProvider>(
238 options->set_watch_root_cert(
true);
239 options->set_watch_identity_pair(
true);
240 auto credentials = MakeRefCounted<TlsCredentials>(
options);
243 auto connector = credentials->create_security_connector(
244 nullptr,
"random targets",
nullptr, &new_args);
255 ClientOptionsWithCertWatcherProviderOnRootCerts) {
256 auto options = MakeRefCounted<grpc_tls_credentials_options>();
258 MakeRefCounted<FileWatcherCertificateProvider>(
"",
"",
CA_CERT_PATH, 1);
260 options->set_watch_root_cert(
true);
261 auto credentials = MakeRefCounted<TlsCredentials>(
options);
264 auto connector = credentials->create_security_connector(
265 nullptr,
"random targets",
nullptr, &new_args);
276 ClientOptionsWithCertWatcherProviderOnNotProvidedCerts) {
277 auto options = MakeRefCounted<grpc_tls_credentials_options>();
278 auto provider = MakeRefCounted<FileWatcherCertificateProvider>(
281 options->set_watch_root_cert(
true);
282 auto credentials = MakeRefCounted<TlsCredentials>(
options);
285 auto connector = credentials->create_security_connector(
286 nullptr,
"random targets",
nullptr, &new_args);
295 ClientOptionsWithCertWatcherProviderOnBadTrustCerts) {
296 auto options = MakeRefCounted<grpc_tls_credentials_options>();
298 MakeRefCounted<FileWatcherCertificateProvider>(
"",
"",
INVALID_PATH, 1);
300 options->set_watch_root_cert(
true);
301 auto credentials = MakeRefCounted<TlsCredentials>(
options);
304 auto connector = credentials->create_security_connector(
305 nullptr,
"random targets",
nullptr, &new_args);
314 ServerOptionsWithCertWatcherProviderOnBothCerts) {
315 auto options = MakeRefCounted<grpc_tls_credentials_options>();
316 auto provider = MakeRefCounted<FileWatcherCertificateProvider>(
319 options->set_watch_root_cert(
true);
320 options->set_watch_identity_pair(
true);
321 options->set_cert_request_type(
323 auto credentials = MakeRefCounted<TlsServerCredentials>(
options);
325 auto connector = credentials->create_security_connector(
nullptr);
335 ServerOptionsWithCertWatcherProviderOnIdentityCerts) {
336 auto options = MakeRefCounted<grpc_tls_credentials_options>();
337 auto provider = MakeRefCounted<FileWatcherCertificateProvider>(
340 options->set_watch_identity_pair(
true);
342 auto credentials = MakeRefCounted<TlsServerCredentials>(
options);
344 auto connector = credentials->create_security_connector(
nullptr);
354 ServerOptionsWithCertWatcherProviderOnNotProvidedCerts) {
355 auto options = MakeRefCounted<grpc_tls_credentials_options>();
357 MakeRefCounted<FileWatcherCertificateProvider>(
"",
"",
CA_CERT_PATH, 1);
359 options->set_watch_identity_pair(
true);
361 auto credentials = MakeRefCounted<TlsServerCredentials>(
options);
363 auto connector = credentials->create_security_connector(
nullptr);
371 ServerOptionsWithCertWatcherProviderOnBadIdentityCerts) {
372 auto options = MakeRefCounted<grpc_tls_credentials_options>();
373 auto provider = MakeRefCounted<FileWatcherCertificateProvider>(
376 options->set_watch_identity_pair(
true);
378 auto credentials = MakeRefCounted<TlsServerCredentials>(
options);
380 auto connector = credentials->create_security_connector(
nullptr);
393 ClientOptionsWithCertWatcherProviderOnCertificateRefreshed) {
396 TmpFile tmp_identity_key(private_key_);
397 TmpFile tmp_identity_cert(cert_chain_);
399 auto options = MakeRefCounted<grpc_tls_credentials_options>();
400 auto provider = MakeRefCounted<FileWatcherCertificateProvider>(
401 tmp_identity_key.
name(), tmp_identity_cert.
name(), tmp_root_cert.
name(),
404 options->set_watch_root_cert(
true);
405 options->set_watch_identity_pair(
true);
406 auto credentials = MakeRefCounted<TlsCredentials>(
options);
409 auto connector = credentials->create_security_connector(
410 nullptr,
"random targets",
nullptr, &new_args);
441 ClientOptionsWithCertWatcherProviderOnDeletedFiles) {
443 auto tmp_root_cert = absl::make_unique<TmpFile>(
root_cert_);
444 auto tmp_identity_key = absl::make_unique<TmpFile>(private_key_);
445 auto tmp_identity_cert = absl::make_unique<TmpFile>(cert_chain_);
447 auto options = MakeRefCounted<grpc_tls_credentials_options>();
448 auto provider = MakeRefCounted<FileWatcherCertificateProvider>(
449 tmp_identity_key->name(), tmp_identity_cert->name(),
450 tmp_root_cert->name(), 1);
452 options->set_watch_root_cert(
true);
453 options->set_watch_identity_pair(
true);
454 auto credentials = MakeRefCounted<TlsCredentials>(
options);
457 auto connector = credentials->create_security_connector(
458 nullptr,
"random targets",
nullptr, &new_args);
472 tmp_root_cert.reset();
473 tmp_identity_key.reset();
474 tmp_identity_cert.reset();
499 auto options = MakeRefCounted<grpc_tls_credentials_options>();
500 options->set_verify_server_cert(
true);
501 options->set_certificate_verifier(core_external_verifier.
Ref());
502 options->set_check_call_host(
false);
503 auto credentials = MakeRefCounted<TlsCredentials>(
options);
506 auto connector = credentials->create_security_connector(
507 nullptr,
"random targets",
nullptr, &new_args);
518 auto options = MakeRefCounted<grpc_tls_credentials_options>();
520 options->set_certificate_verifier(core_external_verifier.
Ref());
522 auto provider = MakeRefCounted<StaticDataCertificateProvider>(
525 options->set_watch_identity_pair(
true);
526 auto credentials = MakeRefCounted<TlsServerCredentials>(
options);
528 auto connector = credentials->create_security_connector(
nullptr);
540 ClientOptionsWithHostnameCertificateVerifier) {
541 auto options = MakeRefCounted<grpc_tls_credentials_options>();
542 options->set_verify_server_cert(
true);
543 options->set_certificate_verifier(hostname_certificate_verifier_.Ref());
544 auto credentials = MakeRefCounted<TlsCredentials>(
options);
547 auto connector = credentials->create_security_connector(
548 nullptr,
"random targets",
nullptr, &new_args);
557 ServerOptionsWithHostnameCertificateVerifier) {
558 auto options = MakeRefCounted<grpc_tls_credentials_options>();
560 options->set_certificate_verifier(hostname_certificate_verifier_.Ref());
562 auto provider = MakeRefCounted<StaticDataCertificateProvider>(
565 options->set_watch_identity_pair(
true);
566 auto credentials = MakeRefCounted<TlsServerCredentials>(
options);
568 auto connector = credentials->create_security_connector(
nullptr);
579 int main(
int argc,
char** argv) {