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

Issue 17385010: OpenSSL/NSS implementation of ProofVerfifier. (Closed)

Created:
7 years, 6 months ago by ramant (doing other things)
Modified:
7 years, 5 months ago
Reviewers:
wtc, agl, Ryan Hamilton, agl2
CC:
chromium-reviews, cbentzel+watch_chromium.org, Ryan Hamilton, agl
Visibility:
Public.

Description

OpenSSL/NSS implementation of ProofVerfifier. Changes to make ProofVerifier asynchronous. Each QuicSession's ProofVerifier is used to verify the signature and cert chain. Implemented generation counter in QuicCryptoClientConfig's CachedState in case certs change when we are verifying the Proof. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=209946

Patch Set 1 #

Patch Set 2 : added known answer test from wtc #

Total comments: 6

Patch Set 3 : Fixed wtc's comment #

Patch Set 4 : NSS implementation of Proof Verifier's signature #

Patch Set 5 : Enabled Async ProofVerfier in the main code path #

Patch Set 6 : Fix compiler error #

Total comments: 50

Patch Set 7 : Merged wtc's changes from TOT #

Total comments: 6

Patch Set 8 : Proof Verification for ECDSA certs from wtc #

Patch Set 9 : Implemented agl's comments #

Total comments: 41

Patch Set 10 : Implement generation counter and wtc/agl's comments #

Total comments: 10

Patch Set 11 : Moved error_details and generation_counter into QuicCryptoClientStream. #

Total comments: 4

Patch Set 12 : added quic_ in front of all QUIC specific .crt file names and added them to net/ssl/certificates #

Total comments: 39

Patch Set 13 : Disable ECDSA signature testing on Windows XP #

Patch Set 14 : Dont check ECDSA signature on WIN7 or lower versions #

Patch Set 15 : Disabled ECDSA test on windows #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+1137 lines, -50 lines) Patch
M crypto/ec_signature_creator_unittest.cc View 1 2 3 4 5 6 7 1 chunk +13 lines, -3 lines 0 comments Download
M crypto/signature_verifier_openssl.cc View 1 2 3 4 5 6 7 2 chunks +13 lines, -2 lines 0 comments Download
M net/data/ssl/certificates/README View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +5 lines, -0 lines 0 comments Download
A net/data/ssl/certificates/quic_intermediate.crt View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +53 lines, -0 lines 0 comments Download
A net/data/ssl/certificates/quic_proof_verify.crt View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +106 lines, -0 lines 0 comments Download
A net/data/ssl/certificates/quic_test.example.com.crt View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +56 lines, -0 lines 0 comments Download
A net/data/ssl/certificates/quic_test_ecc.example.com.crt View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +50 lines, -0 lines 0 comments Download
M net/net.gyp View 1 2 3 4 5 6 4 chunks +5 lines, -0 lines 0 comments Download
M net/quic/crypto/crypto_handshake.h View 1 2 3 4 5 6 7 8 9 3 chunks +8 lines, -3 lines 0 comments Download
M net/quic/crypto/crypto_handshake.cc View 1 2 3 4 5 6 7 8 9 6 chunks +10 lines, -2 lines 0 comments Download
M net/quic/crypto/proof_test.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +337 lines, -11 lines 4 comments Download
M net/quic/crypto/proof_verifier.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +12 lines, -8 lines 0 comments Download
A net/quic/crypto/proof_verifier_chromium.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +89 lines, -0 lines 0 comments Download
A net/quic/crypto/proof_verifier_chromium.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +240 lines, -0 lines 0 comments Download
M net/quic/quic_crypto_client_stream.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +13 lines, -1 line 0 comments Download
M net/quic/quic_crypto_client_stream.cc View 1 2 3 4 5 6 7 8 9 10 8 chunks +58 lines, -20 lines 0 comments Download
M net/quic/quic_session.h View 1 2 3 4 5 6 7 8 9 3 chunks +10 lines, -0 lines 0 comments Download
M net/quic/quic_session.cc View 1 2 3 4 5 6 7 8 9 2 chunks +11 lines, -0 lines 0 comments Download
A net/quic/test_tools/crypto_test_utils_chromium.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +48 lines, -0 lines 0 comments Download

Messages

Total messages: 27 (0 generated)
wtc
Review comments on patch set 2: Thanks for writing the CL. https://codereview.chromium.org/17385010/diff/2001/net/net.gyp File net/net.gyp (right): ...
7 years, 6 months ago (2013-06-19 19:44:36 UTC) #1
ramant (doing other things)
Many many thanks Wan-Teh. It is really awesome/great to see these tests working. https://chromiumcodereview.appspot.com/17385010/diff/2001/net/net.gyp File ...
7 years, 6 months ago (2013-06-19 19:58:20 UTC) #2
wtc
Patch set 3 LGTM, with the understanding that this is just an experiment, not for ...
7 years, 6 months ago (2013-06-19 23:12:17 UTC) #3
wtc
Review comments on patch set 6: Please update the CL's description to describe the new ...
7 years, 6 months ago (2013-06-24 22:36:56 UTC) #4
ramant (doing other things)
Hi Wan-Teh, Made all the changes you have suggested. Could you please take another look? ...
7 years, 5 months ago (2013-06-28 19:16:56 UTC) #5
ramant (doing other things)
agl@: This CL has Async Proof Verification code. Will upload another CL that has QUIC ...
7 years, 5 months ago (2013-06-28 19:20:49 UTC) #6
agl2
https://codereview.chromium.org/17385010/diff/79024/net/quic/quic_crypto_client_stream.cc File net/quic/quic_crypto_client_stream.cc (right): https://codereview.chromium.org/17385010/diff/79024/net/quic/quic_crypto_client_stream.cc#newcode153 net/quic/quic_crypto_client_stream.cc:153: base::Bind(&QuicCryptoClientStream::VerifyProofCompleted, likewise, base::Bind can't be used in this code ...
7 years, 5 months ago (2013-06-28 20:30:09 UTC) #7
ramant (doing other things)
Thanks agl2 for the comments. Fixed the state machine. PTAL. thanks very much. https://codereview.chromium.org/17385010/diff/79024/net/quic/quic_crypto_client_stream.cc File ...
7 years, 5 months ago (2013-06-29 04:08:43 UTC) #8
agl
https://codereview.chromium.org/17385010/diff/102001/net/quic/crypto/proof_test.cc File net/quic/crypto/proof_test.cc (right): https://codereview.chromium.org/17385010/diff/102001/net/quic/crypto/proof_test.cc#newcode104 net/quic/crypto/proof_test.cc:104: // sLen = hLen The #if 0 block should ...
7 years, 5 months ago (2013-07-01 16:23:18 UTC) #9
wtc
Review comments on patch set 9: ramant: I reviewed everything except quic_crypto_client_stream.cc. I will review ...
7 years, 5 months ago (2013-07-02 00:56:38 UTC) #10
ramant (doing other things)
Hi Wan-Teh and Adam, Made all the changes you/rch have suggested. IMO, this is not ...
7 years, 5 months ago (2013-07-02 14:19:50 UTC) #11
agl
https://codereview.chromium.org/17385010/diff/129001/net/quic/crypto/proof_verifier_chromium.cc File net/quic/crypto/proof_verifier_chromium.cc (right): https://codereview.chromium.org/17385010/diff/129001/net/quic/crypto/proof_verifier_chromium.cc#newcode141 net/quic/crypto/proof_verifier_chromium.cc:141: int flags = CertVerifier::VERIFY_REV_CHECKING_ENABLED | I would remove both ...
7 years, 5 months ago (2013-07-02 15:20:08 UTC) #12
Ryan Hamilton
lgtm https://codereview.chromium.org/17385010/diff/102001/net/quic/crypto/proof_verifier.h File net/quic/crypto/proof_verifier.h (right): https://codereview.chromium.org/17385010/diff/102001/net/quic/crypto/proof_verifier.h#newcode41 net/quic/crypto/proof_verifier.h:41: virtual std::string error_details() = 0; On 2013/07/02 14:19:50, ...
7 years, 5 months ago (2013-07-02 16:24:50 UTC) #13
ramant (doing other things)
Could you please take another look? thanks much. https://codereview.chromium.org/17385010/diff/129001/net/quic/crypto/proof_verifier_chromium.cc File net/quic/crypto/proof_verifier_chromium.cc (right): https://codereview.chromium.org/17385010/diff/129001/net/quic/crypto/proof_verifier_chromium.cc#newcode141 net/quic/crypto/proof_verifier_chromium.cc:141: int ...
7 years, 5 months ago (2013-07-02 19:45:51 UTC) #14
agl
LGTM https://codereview.chromium.org/17385010/diff/158001/net/quic/crypto/crypto_handshake.h File net/quic/crypto/crypto_handshake.h (right): https://codereview.chromium.org/17385010/diff/158001/net/quic/crypto/crypto_handshake.h#newcode356 net/quic/crypto/crypto_handshake.h:356: ProofVerifier* proof_verifier() const; It seems that removing this ...
7 years, 5 months ago (2013-07-02 20:41:31 UTC) #15
ramant (doing other things)
Will land after wtc's review. thanks very much Adam. https://codereview.chromium.org/17385010/diff/158001/net/quic/crypto/crypto_handshake.h File net/quic/crypto/crypto_handshake.h (right): https://codereview.chromium.org/17385010/diff/158001/net/quic/crypto/crypto_handshake.h#newcode356 net/quic/crypto/crypto_handshake.h:356: ...
7 years, 5 months ago (2013-07-02 21:22:20 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rtenneti@chromium.org/17385010/170001
7 years, 5 months ago (2013-07-02 23:12:22 UTC) #17
wtc
Patch set 12 LGTM. You can make the changes I suggested in a follow-up CL. ...
7 years, 5 months ago (2013-07-03 00:20:26 UTC) #18
commit-bot: I haz the power
Retried try job too often on win_rel for step(s) net_unittests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win_rel&number=172142
7 years, 5 months ago (2013-07-03 02:10:08 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rtenneti@chromium.org/17385010/201001
7 years, 5 months ago (2013-07-03 02:10:18 UTC) #20
commit-bot: I haz the power
Sorry for I got bad news for ya. Compile failed with a clobber build on ...
7 years, 5 months ago (2013-07-03 03:18:31 UTC) #21
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rtenneti@chromium.org/17385010/213002
7 years, 5 months ago (2013-07-03 04:10:39 UTC) #22
ramant (doing other things)
Implemented changes suggested by wtc in the following CL. https://codereview.chromium.org/18033005 https://chromiumcodereview.appspot.com/17385010/diff/170001/net/data/ssl/certificates/README File net/data/ssl/certificates/README (right): https://chromiumcodereview.appspot.com/17385010/diff/170001/net/data/ssl/certificates/README#newcode219 ...
7 years, 5 months ago (2013-07-03 05:46:33 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rtenneti@chromium.org/17385010/228001
7 years, 5 months ago (2013-07-03 07:45:14 UTC) #24
commit-bot: I haz the power
Change committed as 209946
7 years, 5 months ago (2013-07-03 10:27:47 UTC) #25
wtc
Patch set 15 LGTM. https://chromiumcodereview.appspot.com/17385010/diff/170001/net/quic/quic_crypto_client_stream.cc File net/quic/quic_crypto_client_stream.cc (right): https://chromiumcodereview.appspot.com/17385010/diff/170001/net/quic/quic_crypto_client_stream.cc#newcode73 net/quic/quic_crypto_client_stream.cc:73: case STATE_SEND_CHLO: { On 2013/07/03 ...
7 years, 5 months ago (2013-07-03 18:50:23 UTC) #26
ramant (doing other things)
7 years, 5 months ago (2013-07-03 20:15:20 UTC) #27
Message was sent while issue was closed.
Made the changes in CL https://chromiumcodereview.appspot.com/18033005/.

thanks
raman

https://chromiumcodereview.appspot.com/17385010/diff/228001/net/quic/crypto/p...
File net/quic/crypto/proof_test.cc (right):

https://chromiumcodereview.appspot.com/17385010/diff/228001/net/quic/crypto/p...
net/quic/crypto/proof_test.cc:18: #endif
On 2013/07/03 18:50:23, wtc wrote:
> 
> This should be removed because it is not used in the final
> version.

Done.

https://chromiumcodereview.appspot.com/17385010/diff/228001/net/quic/crypto/p...
net/quic/crypto/proof_test.cc:267: // TODO(rtenneti): Enable
VerifyECDSAKnownAnswerTest on win_rel and XP.
On 2013/07/03 18:50:23, wtc wrote:
> 
> on win_rel and XP => on Windows
> 
> It would be nice to describe what the problem is.

Done.

Powered by Google App Engine
This is Rietveld 408576698