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

Issue 2668005: Bring the handling of <keygen> and support for the application/x-x509-user-ce... (Closed)

Created:
10 years, 6 months ago by rsleevi-old
Modified:
9 years, 7 months ago
Reviewers:
wtc
CC:
chromium-reviews, jam+cc_chromium.org, cbentzel+watch_chromium.org, ben+cc_chromium.org, John Grabowski, Paweł Hajdan Jr., pam+watch_chromium.org, brettw-cc_chromium.org, darin-cc_chromium.org, davidben
Visibility:
Public.

Description

Bring the handling of <keygen> and support for the application/x-x509-user-cert mime-type to parity with Mozilla's implementation. For <keygen>: On Windows, you may use <keygen> in one browsing session, completely close the browser, and later import a certificate supplied by application/x-x509-user-cert. Previously, you could only download certificates in direct response to a <keygen> element, during the same browsing session. This matches the Linux and Mac implementations, which allow you to import them at any time. X509Certificate/CertDatabase/X509UserCertResourceHandler Support for parsing PEM chains, PKCS#7 data (PEM armored or DER), and Netscape certificate sequences (PEM armored or DER) has been added. Additional certificates that are supplied will be imported by CertDatabase, provided that they are valid CA certificates and properly chain to a trusted root certificate on the user's machine. BUG=37142 BUG=148 TEST=X509CertificateParseTest.* TEST=KeygenHandlerTest.SmokeTest TEST=PEMTokenizer.*

Patch Set 1 #

Patch Set 2 : Removed unnecessary keygen_handler.cc #

Patch Set 3 : NOTIMPLEMENTED() -> NOTREACHED(), fix two comments and a DCHECK #

Patch Set 4 : Split PEMTokenizer out so that it can be tested, after finding a few bugs #

Patch Set 5 : Whitespace/style #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1468 lines, -442 lines) Patch
M base/crypto/scoped_capi_types.h View 1 2 3 2 chunks +19 lines, -6 lines 0 comments Download
M chrome/browser/renderer_host/x509_user_cert_resource_handler.cc View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/ssl/ssl_host_state_unittest.cc View 1 2 3 1 chunk +2 lines, -1 line 0 comments Download
net/base/cert_database_mac.cc View 1 2 3 4 3 chunks +159 lines, -10 lines 0 comments Download
M net/base/cert_database_nss.cc View 1 2 3 3 chunks +107 lines, -7 lines 0 comments Download
M net/base/cert_database_win.cc View 1 2 3 5 chunks +125 lines, -52 lines 0 comments Download
M net/base/keygen_handler.h View 1 2 3 1 chunk +0 lines, -48 lines 0 comments Download
D net/base/keygen_handler.cc View 2 3 1 chunk +0 lines, -36 lines 0 comments Download
M net/base/keygen_handler_mac.cc View 1 2 3 1 chunk +0 lines, -5 lines 0 comments Download
M net/base/keygen_handler_nss.cc View 1 2 3 2 chunks +0 lines, -17 lines 0 comments Download
M net/base/keygen_handler_unittest.cc View 1 2 3 2 chunks +0 lines, -42 lines 0 comments Download
M net/base/keygen_handler_win.cc View 1 2 3 4 chunks +0 lines, -95 lines 0 comments Download
A net/base/pem_tokenizer.h View 1 chunk +79 lines, -0 lines 0 comments Download
A net/base/pem_tokenizer.cc View 4 1 chunk +100 lines, -0 lines 0 comments Download
A net/base/pem_tokenizer_unittest.cc View 4 1 chunk +169 lines, -0 lines 0 comments Download
M net/base/x509_certificate.h View 1 2 3 5 chunks +48 lines, -13 lines 0 comments Download
M net/base/x509_certificate.cc View 1 2 3 5 chunks +76 lines, -15 lines 0 comments Download
M net/base/x509_certificate_mac.cc View 1 2 3 8 chunks +109 lines, -5 lines 0 comments Download
M net/base/x509_certificate_nss.cc View 1 2 3 5 chunks +85 lines, -55 lines 0 comments Download
net/base/x509_certificate_unittest.cc View 1 2 3 4 12 chunks +116 lines, -23 lines 0 comments Download
M net/base/x509_certificate_win.cc View 1 2 3 4 2 chunks +120 lines, -10 lines 0 comments Download
A net/data/ssl/certificates/google.der View Binary file 0 comments Download
A net/data/ssl/certificates/google.binary.p7b View Binary file 0 comments Download
A net/data/ssl/certificates/google.chain.pem View 1 chunk +38 lines, -0 lines 0 comments Download
A net/data/ssl/certificates/google.pem_cert.p7b View 1 chunk +37 lines, -0 lines 0 comments Download
A net/data/ssl/certificates/google.pem_pkcs7.p7b View 1 chunk +37 lines, -0 lines 0 comments Download
A net/data/ssl/certificates/google.single.pem View 1 chunk +19 lines, -0 lines 0 comments Download
A net/data/ssl/certificates/thawte.single.pem View 1 chunk +19 lines, -0 lines 0 comments Download
M net/net.gyp View 1 2 3 3 chunks +3 lines, -1 line 0 comments Download

Messages

Total messages: 2 (0 generated)
rsleevi-old
Wan-Teh, Here's the drop of support for PEM, PKCS#7, and Netscape cert sequences for Linux/Mac/Win. ...
10 years, 6 months ago (2010-06-06 22:30:45 UTC) #1
rsleevi-old
10 years, 6 months ago (2010-06-19 19:44:10 UTC) #2
This has been split into
http://codereview.chromium.org/2809024/show
http://codereview.chromium.org/2874002/show
http://codereview.chromium.org/2843015/show

for the minor issues. I'm closing this out and will be splitting the parsing and
the importing into two separate reviews. This is because there is a bug in how
this interacts with the X509Certificate::Cache that can result in
server-supplied certificate chains either being ignored (because the user has an
alternative-but-longer chain) or replacing the user-supplied-chain for client
authentication (because the user chain is replaced by the longer, but not as
high quality, system chain).

While |intermediates| is merely advisory now, and thus this bug would only
affect parsing, when coupled with http://codereview.chromium.org/2828002/show,
it could severely interfere with client auth.

Powered by Google App Engine
This is Rietveld 408576698