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

Issue 2903283002: Add policies support to VerifyCertificateChain(). (Closed)

Created:
3 years, 7 months ago by eroman
Modified:
3 years, 6 months ago
Reviewers:
mattm
CC:
chromium-reviews, cbentzel+watch_chromium.org, net-reviews_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Add policies support to VerifyCertificateChain(). Support is compliant with RFC 5280 and supports all the policy extensions specified therein: * Inhibit Any Policy * Policy Constraints * Policies * Policy Mappings Testing is done solely using the PKITS test suite, which has fairly good coverage of these extensions: 4.8 (Certificate Policies) 4.9 (Require Explicit Policy) 4.10 (Policy Mappings) 4.11 (Inhibit Policy Mapping) 4.12 (Inhibit Any Policy) BUG=634456, 634453, 634452 Review-Url: https://codereview.chromium.org/2903283002 Cr-Commit-Position: refs/heads/master@{#476513} Committed: https://chromium.googlesource.com/chromium/src/+/bcca0368ac116828cecc6c68a381bfc5147f8c98

Patch Set 1 #

Total comments: 14

Patch Set 2 : Change interface (use enums, add user_constrained_policy_set) #

Patch Set 3 : add support for user_constrained_policy_set output #

Patch Set 4 : misc comment updates #

Total comments: 11

Patch Set 5 : address mattm's feedback #

Patch Set 6 : rebase #

Patch Set 7 : EXPERIMENT: Add explicit valid policy intersection code #

Patch Set 8 : remove experiment #

Patch Set 9 : improve comments, and null policy tree when anyPolicy is incorrectly mapped #

Unified diffs Side-by-side diffs Delta from patch set Stats (+940 lines, -190 lines) Patch
M net/cert/internal/nist_pkits_unittest.h View 1 2 3 4 5 1 chunk +5 lines, -3 lines 0 comments Download
M net/cert/internal/nist_pkits_unittest.cc View 1 2 1 chunk +6 lines, -3 lines 0 comments Download
M net/cert/internal/path_builder.cc View 1 2 1 chunk +6 lines, -3 lines 0 comments Download
M net/cert/internal/test_helpers.h View 1 1 chunk +10 lines, -0 lines 0 comments Download
M net/cert/internal/test_helpers.cc View 1 2 1 chunk +2 lines, -1 line 0 comments Download
M net/cert/internal/verify_certificate_chain.h View 1 2 3 3 chunks +136 lines, -41 lines 0 comments Download
M net/cert/internal/verify_certificate_chain.cc View 1 2 3 4 5 6 7 8 20 chunks +731 lines, -128 lines 0 comments Download
M net/cert/internal/verify_certificate_chain_pkits_unittest.cc View 1 2 3 chunks +25 lines, -7 lines 0 comments Download
M net/cert/internal/verify_certificate_chain_unittest.cc View 1 2 3 4 1 chunk +7 lines, -2 lines 0 comments Download
M net/third_party/nist-pkits/generate_tests.py View 1 2 3 4 5 6 7 8 2 chunks +11 lines, -2 lines 0 comments Download
M net/third_party/nist-pkits/pkits_testcases-inl.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 35 (24 generated)
eroman
3 years, 7 months ago (2017-05-25 18:43:37 UTC) #4
mattm
https://codereview.chromium.org/2903283002/diff/1/net/cert/internal/verify_certificate_chain.cc File net/cert/internal/verify_certificate_chain.cc (right): https://codereview.chromium.org/2903283002/diff/1/net/cert/internal/verify_certificate_chain.cc#newcode431 net/cert/internal/verify_certificate_chain.cc:431: // certificate is self-issued, then: paste more RFC instead ...
3 years, 7 months ago (2017-05-25 23:21:49 UTC) #7
eroman
Thanks for the feedback! Before I respond to all the comments, I am going to ...
3 years, 7 months ago (2017-05-26 18:50:00 UTC) #8
eroman
PTAL. * Updated it to include support for "user_constrained_policy_set" * More closely match the procedure ...
3 years, 6 months ago (2017-05-30 06:56:04 UTC) #9
mattm
https://codereview.chromium.org/2903283002/diff/60001/net/cert/internal/verify_certificate_chain.cc File net/cert/internal/verify_certificate_chain.cc (right): https://codereview.chromium.org/2903283002/diff/60001/net/cert/internal/verify_certificate_chain.cc#newcode243 net/cert/internal/verify_certificate_chain.cc:243: // ValidPolicyTree differs slightly from RFC 5280's description in ...
3 years, 6 months ago (2017-05-31 23:03:34 UTC) #18
eroman
https://codereview.chromium.org/2903283002/diff/60001/net/cert/internal/verify_certificate_chain.cc File net/cert/internal/verify_certificate_chain.cc (right): https://codereview.chromium.org/2903283002/diff/60001/net/cert/internal/verify_certificate_chain.cc#newcode243 net/cert/internal/verify_certificate_chain.cc:243: // ValidPolicyTree differs slightly from RFC 5280's description in ...
3 years, 6 months ago (2017-06-01 00:46:36 UTC) #20
eroman
PTAL https://codereview.chromium.org/2903283002/diff/60001/net/cert/internal/verify_certificate_chain.cc File net/cert/internal/verify_certificate_chain.cc (right): https://codereview.chromium.org/2903283002/diff/60001/net/cert/internal/verify_certificate_chain.cc#newcode312 net/cert/internal/verify_certificate_chain.cc:312: void GetValidPolicySet(std::set<der::Input>* policy_set) { On 2017/06/01 00:46:36, eroman ...
3 years, 6 months ago (2017-06-01 19:28:25 UTC) #26
mattm
lgtm
3 years, 6 months ago (2017-06-02 01:11:42 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2903283002/160001
3 years, 6 months ago (2017-06-02 01:22:38 UTC) #31
commit-bot: I haz the power
Committed patchset #9 (id:160001) as https://chromium.googlesource.com/chromium/src/+/bcca0368ac116828cecc6c68a381bfc5147f8c98
3 years, 6 months ago (2017-06-02 01:27:20 UTC) #34
yoichio
3 years, 6 months ago (2017-06-02 04:29:11 UTC) #35
Message was sent while issue was closed.
A revert of this CL (patchset #9 id:160001) has been created in
https://codereview.chromium.org/2918063002/ by yoichio@chromium.org.

The reason for reverting is: This patch causes VerifyCertificateChain test
failure on linux:
https://uberchromegw.corp.google.com/i/chromium.chromiumos/builders/Linux%20C....

Powered by Google App Engine
This is Rietveld 408576698