@@ -43,17 +43,22 @@ const int kSslTsiTestRevokedKeyCertPairsNum = 1;
43
43
const int kSslTsiTestValidKeyCertPairsNum = 1 ;
44
44
const char * kSslTsiTestCrlSupportedCredentialsDir =
45
45
" test/core/tsi/test_creds/crl_data/" ;
46
+ const char * kSslTsiTestFaultyCrlsDir = " bad_path/" ;
46
47
47
48
class CrlSslTransportSecurityTest
48
49
: public testing::TestWithParam<tsi_tls_version> {
49
50
protected:
50
51
// A tsi_test_fixture implementation.
51
52
class SslTsiTestFixture {
52
53
public:
54
+ // When use_faulty_crl_directory is set, the crl_directory of the
55
+ // client is set to a non-existant path.
53
56
static SslTsiTestFixture* Create (bool use_revoked_server_cert,
54
- bool use_revoked_client_cert) {
57
+ bool use_revoked_client_cert,
58
+ bool use_faulty_crl_directory) {
55
59
return new SslTsiTestFixture (use_revoked_server_cert,
56
- use_revoked_client_cert);
60
+ use_revoked_client_cert,
61
+ use_faulty_crl_directory);
57
62
}
58
63
59
64
void Run () {
@@ -63,9 +68,11 @@ class CrlSslTransportSecurityTest
63
68
64
69
private:
65
70
SslTsiTestFixture (bool use_revoked_server_cert,
66
- bool use_revoked_client_cert)
71
+ bool use_revoked_client_cert,
72
+ bool use_faulty_crl_directory)
67
73
: use_revoked_server_cert_(use_revoked_server_cert),
68
- use_revoked_client_cert_ (use_revoked_client_cert) {
74
+ use_revoked_client_cert_ (use_revoked_client_cert),
75
+ use_faulty_crl_directory_(use_faulty_crl_directory) {
69
76
tsi_test_fixture_init (&base_);
70
77
base_.test_unused_bytes = true ;
71
78
base_.vtable = &kVtable ;
@@ -120,7 +127,11 @@ class CrlSslTransportSecurityTest
120
127
} else {
121
128
client_options.pem_key_cert_pair = valid_pem_key_cert_pairs_;
122
129
}
123
- client_options.crl_directory = kSslTsiTestCrlSupportedCredentialsDir ;
130
+ if (use_faulty_crl_directory_) {
131
+ client_options.crl_directory = kSslTsiTestFaultyCrlsDir ;
132
+ } else {
133
+ client_options.crl_directory = kSslTsiTestCrlSupportedCredentialsDir ;
134
+ }
124
135
client_options.root_store = root_store_;
125
136
client_options.min_tls_version = GetParam ();
126
137
client_options.max_tls_version = GetParam ();
@@ -228,6 +239,7 @@ class CrlSslTransportSecurityTest
228
239
tsi_test_fixture base_;
229
240
bool use_revoked_server_cert_;
230
241
bool use_revoked_client_cert_;
242
+ bool use_faulty_crl_directory_;
231
243
char * root_cert_;
232
244
tsi_ssl_root_certs_store* root_store_;
233
245
tsi_ssl_pem_key_cert_pair* revoked_pem_key_cert_pairs_;
@@ -245,19 +257,29 @@ struct tsi_test_fixture_vtable
245
257
246
258
TEST_P (CrlSslTransportSecurityTest, RevokedServerCert) {
247
259
auto * fixture = SslTsiTestFixture::Create (/* use_revoked_server_cert=*/ true ,
248
- /* use_revoked_client_cert=*/ false );
260
+ /* use_revoked_client_cert=*/ false ,
261
+ /* use_faulty_crl_directory=*/ false );
249
262
fixture->Run ();
250
263
}
251
264
252
265
TEST_P (CrlSslTransportSecurityTest, RevokedClientCert) {
253
266
auto * fixture = SslTsiTestFixture::Create (/* use_revoked_server_cert=*/ false ,
254
- /* use_revoked_client_cert=*/ true );
267
+ /* use_revoked_client_cert=*/ true ,
268
+ /* use_faulty_crl_directory=*/ false );
255
269
fixture->Run ();
256
270
}
257
271
258
272
TEST_P (CrlSslTransportSecurityTest, ValidCerts) {
259
273
auto * fixture = SslTsiTestFixture::Create (/* use_revoked_server_cert=*/ false ,
260
- /* use_revoked_client_cert=*/ false );
274
+ /* use_revoked_client_cert=*/ false ,
275
+ /* use_faulty_crl_directory=*/ false );
276
+ fixture->Run ();
277
+ }
278
+
279
+ TEST_P (CrlSslTransportSecurityTest, UseFaultyCrlDirectory) {
280
+ auto * fixture = SslTsiTestFixture::Create (/* use_revoked_server_cert=*/ false ,
281
+ /* use_revoked_client_cert=*/ false ,
282
+ /* use_faulty_crl_directory=*/ true );
261
283
fixture->Run ();
262
284
}
263
285
0 commit comments