Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Side by Side Diff: net/quic/crypto/proof_verifier_chromium_test.cc

Issue 2176323002: Deprecate FLAGS_quic_disable_pre_30. Remove QUIC versions [25-29]. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@127879468
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/quic/crypto/proof_verifier_chromium.h" 5 #include "net/quic/crypto/proof_verifier_chromium.h"
6 6
7 #include "base/memory/ref_counted.h" 7 #include "base/memory/ref_counted.h"
8 #include "net/base/net_errors.h" 8 #include "net/base/net_errors.h"
9 #include "net/cert/cert_status_flags.h" 9 #include "net/cert/cert_status_flags.h"
10 #include "net/cert/cert_verifier.h" 10 #include "net/cert/cert_verifier.h"
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 // verification fails. 224 // verification fails.
225 TEST_F(ProofVerifierChromiumTest, FailsIfCertFails) { 225 TEST_F(ProofVerifierChromiumTest, FailsIfCertFails) {
226 MockCertVerifier dummy_verifier; 226 MockCertVerifier dummy_verifier;
227 ProofVerifierChromium proof_verifier(&dummy_verifier, &ct_policy_enforcer_, 227 ProofVerifierChromium proof_verifier(&dummy_verifier, &ct_policy_enforcer_,
228 &transport_security_state_, 228 &transport_security_state_,
229 ct_verifier_.get()); 229 ct_verifier_.get());
230 230
231 std::unique_ptr<DummyProofVerifierCallback> callback( 231 std::unique_ptr<DummyProofVerifierCallback> callback(
232 new DummyProofVerifierCallback); 232 new DummyProofVerifierCallback);
233 QuicAsyncStatus status = proof_verifier.VerifyProof( 233 QuicAsyncStatus status = proof_verifier.VerifyProof(
234 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_25, "", certs_, "", 234 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_35, "", certs_, "",
235 GetTestSignature(), verify_context_.get(), &error_details_, &details_, 235 GetTestSignature(), verify_context_.get(), &error_details_, &details_,
236 std::move(callback)); 236 std::move(callback));
237 ASSERT_EQ(QUIC_FAILURE, status); 237 ASSERT_EQ(QUIC_FAILURE, status);
238 } 238 }
239 239
240 // Valid SCT, but invalid signature. 240 // Valid SCT, but invalid signature.
241 TEST_F(ProofVerifierChromiumTest, ValidSCTList) { 241 TEST_F(ProofVerifierChromiumTest, ValidSCTList) {
242 // Use different certificates for SCT tests. 242 // Use different certificates for SCT tests.
243 ASSERT_NO_FATAL_FAILURE(GetSCTTestCertificates(&certs_)); 243 ASSERT_NO_FATAL_FAILURE(GetSCTTestCertificates(&certs_));
244 244
245 MockCertVerifier cert_verifier; 245 MockCertVerifier cert_verifier;
246 ProofVerifierChromium proof_verifier(&cert_verifier, &ct_policy_enforcer_, 246 ProofVerifierChromium proof_verifier(&cert_verifier, &ct_policy_enforcer_,
247 &transport_security_state_, 247 &transport_security_state_,
248 ct_verifier_.get()); 248 ct_verifier_.get());
249 249
250 std::unique_ptr<DummyProofVerifierCallback> callback( 250 std::unique_ptr<DummyProofVerifierCallback> callback(
251 new DummyProofVerifierCallback); 251 new DummyProofVerifierCallback);
252 QuicAsyncStatus status = proof_verifier.VerifyProof( 252 QuicAsyncStatus status = proof_verifier.VerifyProof(
253 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_25, "", certs_, 253 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_35, "", certs_,
254 ct::GetSCTListForTesting(), "", verify_context_.get(), &error_details_, 254 ct::GetSCTListForTesting(), "", verify_context_.get(), &error_details_,
255 &details_, std::move(callback)); 255 &details_, std::move(callback));
256 ASSERT_EQ(QUIC_FAILURE, status); 256 ASSERT_EQ(QUIC_FAILURE, status);
257 CheckSCT(/*sct_expected_ok=*/true); 257 CheckSCT(/*sct_expected_ok=*/true);
258 } 258 }
259 259
260 // Invalid SCT and signature. 260 // Invalid SCT and signature.
261 TEST_F(ProofVerifierChromiumTest, InvalidSCTList) { 261 TEST_F(ProofVerifierChromiumTest, InvalidSCTList) {
262 // Use different certificates for SCT tests. 262 // Use different certificates for SCT tests.
263 ASSERT_NO_FATAL_FAILURE(GetSCTTestCertificates(&certs_)); 263 ASSERT_NO_FATAL_FAILURE(GetSCTTestCertificates(&certs_));
264 264
265 MockCertVerifier cert_verifier; 265 MockCertVerifier cert_verifier;
266 ProofVerifierChromium proof_verifier(&cert_verifier, &ct_policy_enforcer_, 266 ProofVerifierChromium proof_verifier(&cert_verifier, &ct_policy_enforcer_,
267 &transport_security_state_, 267 &transport_security_state_,
268 ct_verifier_.get()); 268 ct_verifier_.get());
269 269
270 std::unique_ptr<DummyProofVerifierCallback> callback( 270 std::unique_ptr<DummyProofVerifierCallback> callback(
271 new DummyProofVerifierCallback); 271 new DummyProofVerifierCallback);
272 QuicAsyncStatus status = proof_verifier.VerifyProof( 272 QuicAsyncStatus status = proof_verifier.VerifyProof(
273 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_25, "", certs_, 273 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_35, "", certs_,
274 ct::GetSCTListWithInvalidSCT(), "", verify_context_.get(), 274 ct::GetSCTListWithInvalidSCT(), "", verify_context_.get(),
275 &error_details_, &details_, std::move(callback)); 275 &error_details_, &details_, std::move(callback));
276 ASSERT_EQ(QUIC_FAILURE, status); 276 ASSERT_EQ(QUIC_FAILURE, status);
277 CheckSCT(/*sct_expected_ok=*/false); 277 CheckSCT(/*sct_expected_ok=*/false);
278 } 278 }
279 279
280 // Tests that the ProofVerifier doesn't verify certificates if the config 280 // Tests that the ProofVerifier doesn't verify certificates if the config
281 // signature fails. 281 // signature fails.
282 TEST_F(ProofVerifierChromiumTest, FailsIfSignatureFails) { 282 TEST_F(ProofVerifierChromiumTest, FailsIfSignatureFails) {
283 FailsTestCertVerifier cert_verifier; 283 FailsTestCertVerifier cert_verifier;
284 ProofVerifierChromium proof_verifier(&cert_verifier, &ct_policy_enforcer_, 284 ProofVerifierChromium proof_verifier(&cert_verifier, &ct_policy_enforcer_,
285 &transport_security_state_, 285 &transport_security_state_,
286 ct_verifier_.get()); 286 ct_verifier_.get());
287 287
288 std::unique_ptr<DummyProofVerifierCallback> callback( 288 std::unique_ptr<DummyProofVerifierCallback> callback(
289 new DummyProofVerifierCallback); 289 new DummyProofVerifierCallback);
290 QuicAsyncStatus status = proof_verifier.VerifyProof( 290 QuicAsyncStatus status = proof_verifier.VerifyProof(
291 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_25, "", certs_, "", 291 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_35, "", certs_, "",
292 kTestConfig, verify_context_.get(), &error_details_, &details_, 292 kTestConfig, verify_context_.get(), &error_details_, &details_,
293 std::move(callback)); 293 std::move(callback));
294 ASSERT_EQ(QUIC_FAILURE, status); 294 ASSERT_EQ(QUIC_FAILURE, status);
295 } 295 }
296 296
297 // Tests that the certificate policy enforcer is consulted for EV 297 // Tests that the certificate policy enforcer is consulted for EV
298 // and the certificate is allowed to be EV. 298 // and the certificate is allowed to be EV.
299 TEST_F(ProofVerifierChromiumTest, PreservesEVIfAllowed) { 299 TEST_F(ProofVerifierChromiumTest, PreservesEVIfAllowed) {
300 scoped_refptr<X509Certificate> test_cert = GetTestServerCertificate(); 300 scoped_refptr<X509Certificate> test_cert = GetTestServerCertificate();
301 ASSERT_TRUE(test_cert); 301 ASSERT_TRUE(test_cert);
302 302
303 CertVerifyResult dummy_result; 303 CertVerifyResult dummy_result;
304 dummy_result.verified_cert = test_cert; 304 dummy_result.verified_cert = test_cert;
305 dummy_result.cert_status = CERT_STATUS_IS_EV; 305 dummy_result.cert_status = CERT_STATUS_IS_EV;
306 306
307 MockCertVerifier dummy_verifier; 307 MockCertVerifier dummy_verifier;
308 dummy_verifier.AddResultForCert(test_cert.get(), dummy_result, OK); 308 dummy_verifier.AddResultForCert(test_cert.get(), dummy_result, OK);
309 309
310 EXPECT_CALL(ct_policy_enforcer_, DoesConformToCTEVPolicy(_, _, _, _)) 310 EXPECT_CALL(ct_policy_enforcer_, DoesConformToCTEVPolicy(_, _, _, _))
311 .WillRepeatedly( 311 .WillRepeatedly(
312 Return(ct::EVPolicyCompliance::EV_POLICY_COMPLIES_VIA_SCTS)); 312 Return(ct::EVPolicyCompliance::EV_POLICY_COMPLIES_VIA_SCTS));
313 313
314 ProofVerifierChromium proof_verifier(&dummy_verifier, &ct_policy_enforcer_, 314 ProofVerifierChromium proof_verifier(&dummy_verifier, &ct_policy_enforcer_,
315 &transport_security_state_, 315 &transport_security_state_,
316 ct_verifier_.get()); 316 ct_verifier_.get());
317 317
318 std::unique_ptr<DummyProofVerifierCallback> callback( 318 std::unique_ptr<DummyProofVerifierCallback> callback(
319 new DummyProofVerifierCallback); 319 new DummyProofVerifierCallback);
320 QuicAsyncStatus status = proof_verifier.VerifyProof( 320 QuicAsyncStatus status = proof_verifier.VerifyProof(
321 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_25, "", certs_, "", 321 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_35, "", certs_, "",
322 GetTestSignature(), verify_context_.get(), &error_details_, &details_, 322 GetTestSignature(), verify_context_.get(), &error_details_, &details_,
323 std::move(callback)); 323 std::move(callback));
324 ASSERT_EQ(QUIC_SUCCESS, status); 324 ASSERT_EQ(QUIC_SUCCESS, status);
325 325
326 ASSERT_TRUE(details_.get()); 326 ASSERT_TRUE(details_.get());
327 ProofVerifyDetailsChromium* verify_details = 327 ProofVerifyDetailsChromium* verify_details =
328 static_cast<ProofVerifyDetailsChromium*>(details_.get()); 328 static_cast<ProofVerifyDetailsChromium*>(details_.get());
329 EXPECT_EQ(dummy_result.cert_status, 329 EXPECT_EQ(dummy_result.cert_status,
330 verify_details->cert_verify_result.cert_status); 330 verify_details->cert_verify_result.cert_status);
331 } 331 }
(...skipping 15 matching lines...) Expand all
347 .WillRepeatedly( 347 .WillRepeatedly(
348 Return(ct::EVPolicyCompliance::EV_POLICY_NOT_ENOUGH_SCTS)); 348 Return(ct::EVPolicyCompliance::EV_POLICY_NOT_ENOUGH_SCTS));
349 349
350 ProofVerifierChromium proof_verifier(&dummy_verifier, &ct_policy_enforcer_, 350 ProofVerifierChromium proof_verifier(&dummy_verifier, &ct_policy_enforcer_,
351 &transport_security_state_, 351 &transport_security_state_,
352 ct_verifier_.get()); 352 ct_verifier_.get());
353 353
354 std::unique_ptr<DummyProofVerifierCallback> callback( 354 std::unique_ptr<DummyProofVerifierCallback> callback(
355 new DummyProofVerifierCallback); 355 new DummyProofVerifierCallback);
356 QuicAsyncStatus status = proof_verifier.VerifyProof( 356 QuicAsyncStatus status = proof_verifier.VerifyProof(
357 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_25, "", certs_, "", 357 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_35, "", certs_, "",
358 GetTestSignature(), verify_context_.get(), &error_details_, &details_, 358 GetTestSignature(), verify_context_.get(), &error_details_, &details_,
359 std::move(callback)); 359 std::move(callback));
360 ASSERT_EQ(QUIC_SUCCESS, status); 360 ASSERT_EQ(QUIC_SUCCESS, status);
361 361
362 ASSERT_TRUE(details_.get()); 362 ASSERT_TRUE(details_.get());
363 ProofVerifyDetailsChromium* verify_details = 363 ProofVerifyDetailsChromium* verify_details =
364 static_cast<ProofVerifyDetailsChromium*>(details_.get()); 364 static_cast<ProofVerifyDetailsChromium*>(details_.get());
365 EXPECT_EQ(CERT_STATUS_CT_COMPLIANCE_FAILED, 365 EXPECT_EQ(CERT_STATUS_CT_COMPLIANCE_FAILED,
366 verify_details->cert_verify_result.cert_status & 366 verify_details->cert_verify_result.cert_status &
367 (CERT_STATUS_CT_COMPLIANCE_FAILED | CERT_STATUS_IS_EV)); 367 (CERT_STATUS_CT_COMPLIANCE_FAILED | CERT_STATUS_IS_EV));
(...skipping 14 matching lines...) Expand all
382 382
383 FailsTestCTPolicyEnforcer policy_enforcer; 383 FailsTestCTPolicyEnforcer policy_enforcer;
384 384
385 ProofVerifierChromium proof_verifier(&dummy_verifier, &policy_enforcer, 385 ProofVerifierChromium proof_verifier(&dummy_verifier, &policy_enforcer,
386 &transport_security_state_, 386 &transport_security_state_,
387 ct_verifier_.get()); 387 ct_verifier_.get());
388 388
389 std::unique_ptr<DummyProofVerifierCallback> callback( 389 std::unique_ptr<DummyProofVerifierCallback> callback(
390 new DummyProofVerifierCallback); 390 new DummyProofVerifierCallback);
391 QuicAsyncStatus status = proof_verifier.VerifyProof( 391 QuicAsyncStatus status = proof_verifier.VerifyProof(
392 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_25, "", certs_, "", 392 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_35, "", certs_, "",
393 GetTestSignature(), verify_context_.get(), &error_details_, &details_, 393 GetTestSignature(), verify_context_.get(), &error_details_, &details_,
394 std::move(callback)); 394 std::move(callback));
395 ASSERT_EQ(QUIC_SUCCESS, status); 395 ASSERT_EQ(QUIC_SUCCESS, status);
396 396
397 ASSERT_TRUE(details_.get()); 397 ASSERT_TRUE(details_.get());
398 ProofVerifyDetailsChromium* verify_details = 398 ProofVerifyDetailsChromium* verify_details =
399 static_cast<ProofVerifyDetailsChromium*>(details_.get()); 399 static_cast<ProofVerifyDetailsChromium*>(details_.get());
400 EXPECT_EQ(0u, verify_details->cert_verify_result.cert_status); 400 EXPECT_EQ(0u, verify_details->cert_verify_result.cert_status);
401 } 401 }
402 402
(...skipping 24 matching lines...) Expand all
427 kTestHostname, base::Time::Now() + base::TimeDelta::FromSeconds(10000), 427 kTestHostname, base::Time::Now() + base::TimeDelta::FromSeconds(10000),
428 true, pin_hashes, GURL()); 428 true, pin_hashes, GURL());
429 429
430 ProofVerifierChromium proof_verifier(&dummy_verifier, &ct_policy_enforcer_, 430 ProofVerifierChromium proof_verifier(&dummy_verifier, &ct_policy_enforcer_,
431 &transport_security_state_, 431 &transport_security_state_,
432 ct_verifier_.get()); 432 ct_verifier_.get());
433 433
434 std::unique_ptr<DummyProofVerifierCallback> callback( 434 std::unique_ptr<DummyProofVerifierCallback> callback(
435 new DummyProofVerifierCallback); 435 new DummyProofVerifierCallback);
436 QuicAsyncStatus status = proof_verifier.VerifyProof( 436 QuicAsyncStatus status = proof_verifier.VerifyProof(
437 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_25, "", certs_, "", 437 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_35, "", certs_, "",
438 GetTestSignature(), verify_context_.get(), &error_details_, &details_, 438 GetTestSignature(), verify_context_.get(), &error_details_, &details_,
439 std::move(callback)); 439 std::move(callback));
440 ASSERT_EQ(QUIC_FAILURE, status); 440 ASSERT_EQ(QUIC_FAILURE, status);
441 441
442 ASSERT_TRUE(details_.get()); 442 ASSERT_TRUE(details_.get());
443 ProofVerifyDetailsChromium* verify_details = 443 ProofVerifyDetailsChromium* verify_details =
444 static_cast<ProofVerifyDetailsChromium*>(details_.get()); 444 static_cast<ProofVerifyDetailsChromium*>(details_.get());
445 EXPECT_TRUE(verify_details->cert_verify_result.cert_status & 445 EXPECT_TRUE(verify_details->cert_verify_result.cert_status &
446 CERT_STATUS_PINNED_KEY_MISSING); 446 CERT_STATUS_PINNED_KEY_MISSING);
447 EXPECT_FALSE(verify_details->pkp_bypassed); 447 EXPECT_FALSE(verify_details->pkp_bypassed);
(...skipping 20 matching lines...) Expand all
468 kTestHostname, base::Time::Now() + base::TimeDelta::FromSeconds(10000), 468 kTestHostname, base::Time::Now() + base::TimeDelta::FromSeconds(10000),
469 true, expected_hashes, GURL()); 469 true, expected_hashes, GURL());
470 470
471 ProofVerifierChromium proof_verifier(&dummy_verifier, &ct_policy_enforcer_, 471 ProofVerifierChromium proof_verifier(&dummy_verifier, &ct_policy_enforcer_,
472 &transport_security_state_, 472 &transport_security_state_,
473 ct_verifier_.get()); 473 ct_verifier_.get());
474 474
475 std::unique_ptr<DummyProofVerifierCallback> callback( 475 std::unique_ptr<DummyProofVerifierCallback> callback(
476 new DummyProofVerifierCallback); 476 new DummyProofVerifierCallback);
477 QuicAsyncStatus status = proof_verifier.VerifyProof( 477 QuicAsyncStatus status = proof_verifier.VerifyProof(
478 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_25, "", certs_, "", 478 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_35, "", certs_, "",
479 GetTestSignature(), verify_context_.get(), &error_details_, &details_, 479 GetTestSignature(), verify_context_.get(), &error_details_, &details_,
480 std::move(callback)); 480 std::move(callback));
481 ASSERT_EQ(QUIC_SUCCESS, status); 481 ASSERT_EQ(QUIC_SUCCESS, status);
482 482
483 ASSERT_TRUE(details_.get()); 483 ASSERT_TRUE(details_.get());
484 ProofVerifyDetailsChromium* verify_details = 484 ProofVerifyDetailsChromium* verify_details =
485 static_cast<ProofVerifyDetailsChromium*>(details_.get()); 485 static_cast<ProofVerifyDetailsChromium*>(details_.get());
486 EXPECT_TRUE(verify_details->pkp_bypassed); 486 EXPECT_TRUE(verify_details->pkp_bypassed);
487 } 487 }
488 488
(...skipping 25 matching lines...) Expand all
514 .WillRepeatedly( 514 .WillRepeatedly(
515 Return(ct::CertPolicyCompliance::CERT_POLICY_NOT_ENOUGH_SCTS)); 515 Return(ct::CertPolicyCompliance::CERT_POLICY_NOT_ENOUGH_SCTS));
516 516
517 ProofVerifierChromium proof_verifier(&dummy_verifier, &ct_policy_enforcer_, 517 ProofVerifierChromium proof_verifier(&dummy_verifier, &ct_policy_enforcer_,
518 &transport_security_state_, 518 &transport_security_state_,
519 ct_verifier_.get()); 519 ct_verifier_.get());
520 520
521 std::unique_ptr<DummyProofVerifierCallback> callback( 521 std::unique_ptr<DummyProofVerifierCallback> callback(
522 new DummyProofVerifierCallback); 522 new DummyProofVerifierCallback);
523 QuicAsyncStatus status = proof_verifier.VerifyProof( 523 QuicAsyncStatus status = proof_verifier.VerifyProof(
524 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_25, "", certs_, "", 524 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_35, "", certs_, "",
525 GetTestSignature(), verify_context_.get(), &error_details_, &details_, 525 GetTestSignature(), verify_context_.get(), &error_details_, &details_,
526 std::move(callback)); 526 std::move(callback));
527 ASSERT_EQ(QUIC_FAILURE, status); 527 ASSERT_EQ(QUIC_FAILURE, status);
528 528
529 ASSERT_TRUE(details_.get()); 529 ASSERT_TRUE(details_.get());
530 ProofVerifyDetailsChromium* verify_details = 530 ProofVerifyDetailsChromium* verify_details =
531 static_cast<ProofVerifyDetailsChromium*>(details_.get()); 531 static_cast<ProofVerifyDetailsChromium*>(details_.get());
532 EXPECT_TRUE(verify_details->cert_verify_result.cert_status & 532 EXPECT_TRUE(verify_details->cert_verify_result.cert_status &
533 CERT_STATUS_CERTIFICATE_TRANSPARENCY_REQUIRED); 533 CERT_STATUS_CERTIFICATE_TRANSPARENCY_REQUIRED);
534 } 534 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 .WillRepeatedly( 566 .WillRepeatedly(
567 Return(ct::CertPolicyCompliance::CERT_POLICY_NOT_ENOUGH_SCTS)); 567 Return(ct::CertPolicyCompliance::CERT_POLICY_NOT_ENOUGH_SCTS));
568 568
569 ProofVerifierChromium proof_verifier(&dummy_verifier, &ct_policy_enforcer_, 569 ProofVerifierChromium proof_verifier(&dummy_verifier, &ct_policy_enforcer_,
570 &transport_security_state_, 570 &transport_security_state_,
571 ct_verifier_.get()); 571 ct_verifier_.get());
572 572
573 std::unique_ptr<DummyProofVerifierCallback> callback( 573 std::unique_ptr<DummyProofVerifierCallback> callback(
574 new DummyProofVerifierCallback); 574 new DummyProofVerifierCallback);
575 QuicAsyncStatus status = proof_verifier.VerifyProof( 575 QuicAsyncStatus status = proof_verifier.VerifyProof(
576 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_25, "", certs_, "", 576 kTestHostname, kTestPort, kTestConfig, QUIC_VERSION_35, "", certs_, "",
577 GetTestSignature(), verify_context_.get(), &error_details_, &details_, 577 GetTestSignature(), verify_context_.get(), &error_details_, &details_,
578 std::move(callback)); 578 std::move(callback));
579 ASSERT_EQ(QUIC_FAILURE, status); 579 ASSERT_EQ(QUIC_FAILURE, status);
580 580
581 ASSERT_TRUE(details_.get()); 581 ASSERT_TRUE(details_.get());
582 ProofVerifyDetailsChromium* verify_details = 582 ProofVerifyDetailsChromium* verify_details =
583 static_cast<ProofVerifyDetailsChromium*>(details_.get()); 583 static_cast<ProofVerifyDetailsChromium*>(details_.get());
584 EXPECT_TRUE(verify_details->cert_verify_result.cert_status & 584 EXPECT_TRUE(verify_details->cert_verify_result.cert_status &
585 CERT_STATUS_PINNED_KEY_MISSING); 585 CERT_STATUS_PINNED_KEY_MISSING);
586 EXPECT_TRUE(verify_details->cert_verify_result.cert_status & 586 EXPECT_TRUE(verify_details->cert_verify_result.cert_status &
587 CERT_STATUS_CERTIFICATE_TRANSPARENCY_REQUIRED); 587 CERT_STATUS_CERTIFICATE_TRANSPARENCY_REQUIRED);
588 } 588 }
589 589
590 } // namespace test 590 } // namespace test
591 } // namespace net 591 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698