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

Issue 1557133002: Perform CRLSet evaluation during Path Building on Windows (Closed)

Created:
4 years, 11 months ago by Ryan Sleevi
Modified:
4 years, 9 months ago
Reviewers:
eroman, davidben
CC:
chromium-reviews, cbentzel+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Perform CRLSet evaluation during Path Building on Windows On Windows, add CRLSet checking to the path building phase by registering a CryptoAPI Revocation Provider. The CRLSet is stashed in thread-local storage in order to make it from the CertVerifyProc to the Revocation Provider callback. CRLSet evaluation still happens at the end for the completed chain, but this should reduce the risk of path building errors. The Revocation Provider always returns one of two messages - unknown or revoked. It never positively asserts that a certificate is NOT revoked, in order to allow the CRL and OCSP caches to still serve as secondary sources of data. BUG=570908 TEST=TODO Committed: https://crrev.com/f140b3b1a394a74efcfd2c2f59d3890a496962ac Cr-Commit-Position: refs/heads/master@{#374301}

Patch Set 1 #

Total comments: 48

Patch Set 2 : Beginning of tests #

Patch Set 3 : More tests #

Total comments: 28

Patch Set 4 : Review feedback #

Total comments: 13

Patch Set 5 : Review feedback #

Patch Set 6 : Rebased #

Patch Set 7 : Test fixes #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1916 lines, -720 lines) Patch
M net/cert/cert_verify_proc_unittest.cc View 1 2 3 4 5 6 3 chunks +236 lines, -0 lines 0 comments Download
M net/cert/cert_verify_proc_win.cc View 1 2 3 4 5 8 chunks +403 lines, -86 lines 0 comments Download
A net/data/ssl/certificates/multi-root-A-by-B.pem View 1 2 3 4 5 6 1 chunk +106 lines, -0 lines 0 comments Download
A net/data/ssl/certificates/multi-root-B-by-C.pem View 1 2 3 4 5 6 1 chunk +74 lines, -0 lines 0 comments Download
A net/data/ssl/certificates/multi-root-B-by-F.pem View 1 2 3 4 5 6 1 chunk +74 lines, -0 lines 0 comments Download
A net/data/ssl/certificates/multi-root-C-by-D.pem View 1 2 3 4 5 6 1 chunk +74 lines, -0 lines 0 comments Download
A net/data/ssl/certificates/multi-root-C-by-E.pem View 1 2 3 4 5 6 1 chunk +74 lines, -0 lines 0 comments Download
A net/data/ssl/certificates/multi-root-D-by-D.pem View 1 2 3 4 5 6 1 chunk +74 lines, -0 lines 0 comments Download
A net/data/ssl/certificates/multi-root-E-by-E.pem View 1 2 3 4 5 6 1 chunk +74 lines, -0 lines 0 comments Download
A net/data/ssl/certificates/multi-root-F-by-E.pem View 1 2 3 4 5 6 1 chunk +74 lines, -0 lines 0 comments Download
M net/data/ssl/certificates/multi-root-chain1.pem View 1 2 3 4 5 6 1 chunk +224 lines, -251 lines 0 comments Download
M net/data/ssl/certificates/multi-root-chain2.pem View 1 2 3 4 5 6 1 chunk +224 lines, -251 lines 0 comments Download
A net/data/ssl/certificates/multi-root-crlset-C-by-E.raw View 1 2 3 4 5 6 Binary file 0 comments Download
A net/data/ssl/certificates/multi-root-crlset-F.raw View 1 2 3 4 5 6 Binary file 0 comments Download
M net/data/ssl/scripts/generate-multi-root-test-chains.sh View 1 2 3 4 5 6 1 chunk +197 lines, -131 lines 0 comments Download
M net/data/ssl/scripts/redundant-ca.cnf View 1 2 1 chunk +8 lines, -1 line 0 comments Download

Messages

Total messages: 42 (12 generated)
Ryan Sleevi
David, Eric: This definitely needs more tests, which is next on my agenda to do, ...
4 years, 11 months ago (2016-01-04 22:13:39 UTC) #2
Ryan Sleevi
More context and background reading: https://msdn.microsoft.com/en-us/library/ms995348.aspx covers the basic layering idea https://msdn.microsoft.com/en-us/library/windows/desktop/aa380214(v=vs.85).aspx (for in process ...
4 years, 11 months ago (2016-01-04 22:18:44 UTC) #3
Ryan Sleevi
Oh, and finally, PLEASE communicate if anything doesn't make sense or requires you to do ...
4 years, 11 months ago (2016-01-04 22:20:15 UTC) #4
Ryan Sleevi
https://codereview.chromium.org/1557133002/diff/1/net/cert/cert_verify_proc_win.cc File net/cert/cert_verify_proc_win.cc (right): https://codereview.chromium.org/1557133002/diff/1/net/cert/cert_verify_proc_win.cc#newcode714 net/cert/cert_verify_proc_win.cc:714: previous_cert)) { Note: This was to avoid MSVC complaints ...
4 years, 11 months ago (2016-01-04 22:33:33 UTC) #5
davidben
I don't suppose we have any hope of tests here? https://codereview.chromium.org/1557133002/diff/1/net/cert/cert_verify_proc_win.cc File net/cert/cert_verify_proc_win.cc (right): https://codereview.chromium.org/1557133002/diff/1/net/cert/cert_verify_proc_win.cc#newcode396 ...
4 years, 11 months ago (2016-01-06 03:37:48 UTC) #6
Ryan Sleevi
Tests are coming (see comment #2), just on triage duty this week and RWC so ...
4 years, 11 months ago (2016-01-06 04:26:20 UTC) #7
Ryan Sleevi
https://codereview.chromium.org/1557133002/diff/1/net/cert/cert_verify_proc_win.cc File net/cert/cert_verify_proc_win.cc (right): https://codereview.chromium.org/1557133002/diff/1/net/cert/cert_verify_proc_win.cc#newcode628 net/cert/cert_verify_proc_win.cc:628: base::ThreadLocalPointer<CRLSet> thread_local_crlset; I guess I should mention what I'd ...
4 years, 11 months ago (2016-01-06 04:59:00 UTC) #8
Ryan Sleevi
A few more comments and refinements, as well as the beginning of more tests (so ...
4 years, 11 months ago (2016-01-14 01:13:15 UTC) #9
Ryan Sleevi
Eric, David: I think this is good for the groundwork, mod restricting the tests to ...
4 years, 11 months ago (2016-01-15 01:12:55 UTC) #10
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1557133002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1557133002/40001
4 years, 11 months ago (2016-01-15 01:14:51 UTC) #12
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/166543)
4 years, 11 months ago (2016-01-15 01:42:40 UTC) #14
davidben
I still need to read through the test code more carefully (they're kinda verbose and ...
4 years, 11 months ago (2016-01-21 02:37:39 UTC) #15
Ryan Sleevi
Thanks for the detailed look. A few of the tests ended up not relevant (for ...
4 years, 11 months ago (2016-01-21 02:54:05 UTC) #16
Ryan Sleevi
OK, excised and simplified some of the tests and test code, as well as tried ...
4 years, 11 months ago (2016-01-27 01:38:49 UTC) #18
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1557133002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1557133002/60001
4 years, 11 months ago (2016-01-27 01:39:20 UTC) #19
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: ios_dbg_simulator_ninja on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios_dbg_simulator_ninja/builds/122260)
4 years, 11 months ago (2016-01-27 02:08:31 UTC) #21
davidben
Thanks! This looks good modulo some of the platforms blowing up and a question about ...
4 years, 10 months ago (2016-01-28 20:52:32 UTC) #22
Ryan Sleevi
https://codereview.chromium.org/1557133002/diff/60001/net/cert/cert_verify_proc_unittest.cc File net/cert/cert_verify_proc_unittest.cc (right): https://codereview.chromium.org/1557133002/diff/60001/net/cert/cert_verify_proc_unittest.cc#newcode117 net/cert/cert_verify_proc_unittest.cc:117: for (size_t i = 0; i < N; ++i) ...
4 years, 10 months ago (2016-02-05 21:26:03 UTC) #23
davidben
https://codereview.chromium.org/1557133002/diff/60001/net/cert/cert_verify_proc_unittest.cc File net/cert/cert_verify_proc_unittest.cc (right): https://codereview.chromium.org/1557133002/diff/60001/net/cert/cert_verify_proc_unittest.cc#newcode117 net/cert/cert_verify_proc_unittest.cc:117: for (size_t i = 0; i < N; ++i) ...
4 years, 10 months ago (2016-02-05 21:32:45 UTC) #24
Ryan Sleevi
https://codereview.chromium.org/1557133002/diff/60001/net/cert/cert_verify_proc_unittest.cc File net/cert/cert_verify_proc_unittest.cc (right): https://codereview.chromium.org/1557133002/diff/60001/net/cert/cert_verify_proc_unittest.cc#newcode1556 net/cert/cert_verify_proc_unittest.cc:1556: EXPECT_EQ("D Root CA", verified_root->subject().common_name); On 2016/02/05 21:32:45, davidben (catching ...
4 years, 10 months ago (2016-02-05 21:39:26 UTC) #25
davidben
https://codereview.chromium.org/1557133002/diff/60001/net/cert/cert_verify_proc_unittest.cc File net/cert/cert_verify_proc_unittest.cc (right): https://codereview.chromium.org/1557133002/diff/60001/net/cert/cert_verify_proc_unittest.cc#newcode1556 net/cert/cert_verify_proc_unittest.cc:1556: EXPECT_EQ("D Root CA", verified_root->subject().common_name); On 2016/02/05 21:39:26, Ryan Sleevi ...
4 years, 10 months ago (2016-02-05 21:46:48 UTC) #26
Ryan Sleevi
https://codereview.chromium.org/1557133002/diff/60001/net/cert/cert_verify_proc_unittest.cc File net/cert/cert_verify_proc_unittest.cc (right): https://codereview.chromium.org/1557133002/diff/60001/net/cert/cert_verify_proc_unittest.cc#newcode1556 net/cert/cert_verify_proc_unittest.cc:1556: EXPECT_EQ("D Root CA", verified_root->subject().common_name); On 2016/02/05 21:46:48, davidben (catching ...
4 years, 10 months ago (2016-02-05 21:52:11 UTC) #27
davidben
Oh, I didn't realize the platform-specific bits have been resolved. lgtm.
4 years, 10 months ago (2016-02-05 21:58:24 UTC) #28
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1557133002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1557133002/80001
4 years, 10 months ago (2016-02-05 23:20:57 UTC) #30
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/177357)
4 years, 10 months ago (2016-02-06 00:07:09 UTC) #32
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1557133002/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1557133002/120001
4 years, 10 months ago (2016-02-08 23:47:47 UTC) #34
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: android_chromium_gn_compile_rel on tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_chromium_gn_compile_rel/builds/19129) cast_shell_android on ...
4 years, 10 months ago (2016-02-09 00:00:50 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1557133002/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1557133002/120001
4 years, 10 months ago (2016-02-09 03:38:31 UTC) #39
commit-bot: I haz the power
Committed patchset #7 (id:120001)
4 years, 10 months ago (2016-02-09 04:29:05 UTC) #40
commit-bot: I haz the power
4 years, 10 months ago (2016-02-09 04:31:13 UTC) #42
Message was sent while issue was closed.
Patchset 7 (id:??) landed as
https://crrev.com/f140b3b1a394a74efcfd2c2f59d3890a496962ac
Cr-Commit-Position: refs/heads/master@{#374301}

Powered by Google App Engine
This is Rietveld 408576698