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

Issue 1414923007: Add initial code for verifying a certificate chain. (Closed)

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

Description

Add initial code for verifying a certificate chain. The code handles many of RFC 5280's requirements: BasicConstraints, KeyUsage, Signature, Validity. But is lacking Revocation checks, subjectAltName, ExtendedKeyUsage and name constraints. The unit-tests depend on data that was reviewed separately in https://codereview.chromium.org/1414393008/ BUG=410574 Committed: https://crrev.com/c1aac5aad208df58fc0c53af88b6c2ca6ab99bfc Cr-Commit-Position: refs/heads/master@{#365987}

Patch Set 1 #

Patch Set 2 : rebase #

Patch Set 3 : remove unused todo #

Patch Set 4 : rebase #

Patch Set 5 : rebase (ParseExtensions() changed, leading to different design here) #

Total comments: 4

Patch Set 6 : rebase #

Patch Set 7 : Add missing headers #

Total comments: 14

Patch Set 8 : Start tackling Matt's comments #

Total comments: 21

Patch Set 9 : first pass at addressing feedback #

Total comments: 20

Patch Set 10 : More direclty mirror the structure of RFC 5280 section 6.1 to address review comments #

Patch Set 11 : rebase (and fix a comment) #

Total comments: 20

Patch Set 12 : address latest comments #

Patch Set 13 : fix compile #

Patch Set 14 : add data dependency copy rule for ios #

Patch Set 15 : ifdef out the tests on ios #

Unified diffs Side-by-side diffs Delta from patch set Stats (+869 lines, -2 lines) Patch
M net/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +2 lines, -1 line 0 comments Download
A net/cert/internal/verify_certificate_chain.h View 1 2 3 4 5 6 7 8 9 1 chunk +87 lines, -0 lines 0 comments Download
A net/cert/internal/verify_certificate_chain.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +537 lines, -0 lines 0 comments Download
A net/cert/internal/verify_certificate_chain_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +238 lines, -0 lines 0 comments Download
M net/net.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +2 lines, -1 line 0 comments Download
M net/net.gypi View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +3 lines, -0 lines 0 comments Download

Messages

Total messages: 38 (15 generated)
eroman
5 years, 1 month ago (2015-10-28 02:00:58 UTC) #3
eroman
Changing reviewer to Matt/David, since Ryan is OOO.
5 years, 1 month ago (2015-11-02 21:30:50 UTC) #5
eroman
ping
5 years, 1 month ago (2015-11-11 17:16:05 UTC) #6
mattm
https://codereview.chromium.org/1414923007/diff/80001/net/cert/internal/verify_certificate_chain.cc File net/cert/internal/verify_certificate_chain.cc (right): https://codereview.chromium.org/1414923007/diff/80001/net/cert/internal/verify_certificate_chain.cc#newcode32 net/cert/internal/verify_certificate_chain.cc:32: // issuerAltName. Did you mean "consider issuerAltName" like "should ...
5 years, 1 month ago (2015-11-11 23:55:44 UTC) #7
eroman
https://codereview.chromium.org/1414923007/diff/80001/net/cert/internal/verify_certificate_chain.cc File net/cert/internal/verify_certificate_chain.cc (right): https://codereview.chromium.org/1414923007/diff/80001/net/cert/internal/verify_certificate_chain.cc#newcode32 net/cert/internal/verify_certificate_chain.cc:32: // issuerAltName. On 2015/11/11 23:55:44, mattm wrote: > Did ...
5 years, 1 month ago (2015-11-12 01:58:43 UTC) #8
mattm
https://codereview.chromium.org/1414923007/diff/120001/net/cert/internal/verify_certificate_chain.cc File net/cert/internal/verify_certificate_chain.cc (right): https://codereview.chromium.org/1414923007/diff/120001/net/cert/internal/verify_certificate_chain.cc#newcode344 net/cert/internal/verify_certificate_chain.cc:344: cert.key_usage.AssertsBit(KEY_USAGE_BIT_KEY_CERT_SIGN)) { On 2015/11/12 01:58:43, eroman wrote: > On ...
5 years, 1 month ago (2015-11-12 03:00:09 UTC) #9
davidben
https://codereview.chromium.org/1414923007/diff/140001/net/cert/internal/verify_certificate_chain.cc File net/cert/internal/verify_certificate_chain.cc (right): https://codereview.chromium.org/1414923007/diff/140001/net/cert/internal/verify_certificate_chain.cc#newcode148 net/cert/internal/verify_certificate_chain.cc:148: // different change). Link to a bug or something? ...
5 years, 1 month ago (2015-11-19 22:24:03 UTC) #10
eroman
https://codereview.chromium.org/1414923007/diff/120001/net/cert/internal/verify_certificate_chain.cc File net/cert/internal/verify_certificate_chain.cc (right): https://codereview.chromium.org/1414923007/diff/120001/net/cert/internal/verify_certificate_chain.cc#newcode327 net/cert/internal/verify_certificate_chain.cc:327: // CAs MUST NOT include the pathLenConstraint field unless ...
5 years ago (2015-12-03 04:45:12 UTC) #11
davidben
https://codereview.chromium.org/1414923007/diff/160001/net/cert/internal/verify_certificate_chain.cc File net/cert/internal/verify_certificate_chain.cc (right): https://codereview.chromium.org/1414923007/diff/160001/net/cert/internal/verify_certificate_chain.cc#newcode31 net/cert/internal/verify_certificate_chain.cc:31: // Extensions Nit: period https://codereview.chromium.org/1414923007/diff/160001/net/cert/internal/verify_certificate_chain.cc#newcode56 net/cert/internal/verify_certificate_chain.cc:56: // deleting it, ...
5 years ago (2015-12-04 22:36:10 UTC) #12
eroman
Response to David's comments below. A patchset that implements the proposed resolutions will follow shortly... ...
5 years ago (2015-12-08 00:58:20 UTC) #14
eroman
I have posted a new patchset that addresses the review feedback, please take another look. ...
5 years ago (2015-12-09 00:42:31 UTC) #15
davidben
lgtm. Just a few small comments. Though I also don't have a clear sense of ...
5 years ago (2015-12-10 23:23:35 UTC) #17
davidben
Oh, Windows hates you because SignatureAlgorithm's destructor is private. (Actually, I'm kind of confused how ...
5 years ago (2015-12-10 23:24:51 UTC) #18
mattm
https://codereview.chromium.org/1414923007/diff/200001/net/cert/internal/verify_certificate_chain.cc File net/cert/internal/verify_certificate_chain.cc (right): https://codereview.chromium.org/1414923007/diff/200001/net/cert/internal/verify_certificate_chain.cc#newcode330 net/cert/internal/verify_certificate_chain.cc:330: On 2015/12/10 23:23:35, davidben wrote: > Nit: Add TODO ...
5 years ago (2015-12-17 02:37:35 UTC) #19
eroman
https://codereview.chromium.org/1414923007/diff/200001/net/cert/internal/verify_certificate_chain.cc File net/cert/internal/verify_certificate_chain.cc (right): https://codereview.chromium.org/1414923007/diff/200001/net/cert/internal/verify_certificate_chain.cc#newcode208 net/cert/internal/verify_certificate_chain.cc:208: // compatibility sake. On 2015/12/10 23:23:35, davidben wrote: > ...
5 years ago (2015-12-17 19:43:53 UTC) #20
davidben
https://codereview.chromium.org/1414923007/diff/200001/net/cert/internal/verify_certificate_chain.cc File net/cert/internal/verify_certificate_chain.cc (right): https://codereview.chromium.org/1414923007/diff/200001/net/cert/internal/verify_certificate_chain.cc#newcode496 net/cert/internal/verify_certificate_chain.cc:496: // certification path. On 2015/12/17 19:43:52, eroman wrote: > ...
5 years ago (2015-12-17 20:02:26 UTC) #21
eroman
> Oh, Windows hates you because SignatureAlgorithm's destructor is private. > (Actually, I'm kind of ...
5 years ago (2015-12-17 22:20:35 UTC) #22
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1414923007/240001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1414923007/240001
5 years ago (2015-12-17 23:00:23 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1414923007/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1414923007/260001
5 years ago (2015-12-17 23:37:51 UTC) #29
commit-bot: I haz the power
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/109536)
5 years ago (2015-12-18 00:54:22 UTC) #31
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1414923007/280001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1414923007/280001
5 years ago (2015-12-18 01:10:30 UTC) #34
commit-bot: I haz the power
Committed patchset #15 (id:280001)
5 years ago (2015-12-18 02:23:14 UTC) #36
commit-bot: I haz the power
5 years ago (2015-12-18 02:24:08 UTC) #38
Message was sent while issue was closed.
Patchset 15 (id:??) landed as
https://crrev.com/c1aac5aad208df58fc0c53af88b6c2ca6ab99bfc
Cr-Commit-Position: refs/heads/master@{#365987}

Powered by Google App Engine
This is Rietveld 408576698