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

Issue 5611005: Workaround a bug in NSS when using DHE+client authentication. (Closed)

Created:
10 years ago by Ryan Sleevi
Modified:
9 years, 7 months ago
Reviewers:
wtc
CC:
chromium-reviews, cbentzel+watch_chromium.org, darin-cc_chromium.org
Visibility:
Public.

Description

When performing a SSL renegotiation handshake, do not send Certificate/CertificateVerify messages unless the peer sends a CertificateRequest, requesting client auth. This would happen if the following conditions were true: - In the initial/previous handshake, the peer requests client authentication. - The client chooses a certificate, versus declining to provide one. - A (EC-)DHE cipher suite is negotiated. - The peer requests (secure) renegotiation. - The peer does NOT request a client certificate during the renegotiated handshake. R=wtc BUG=62027 TEST=none Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=68829

Patch Set 1 #

Total comments: 4

Patch Set 2 : Feedback from wtc #

Total comments: 1

Patch Set 3 : Feedback #

Total comments: 1

Patch Set 4 : Add the extra cast #

Unified diffs Side-by-side diffs Delta from patch set Stats (+134 lines, -31 lines) Patch
M net/third_party/nss/README.chromium View 1 2 1 chunk +6 lines, -0 lines 0 comments Download
A net/third_party/nss/patches/dheclientauth.patch View 1 2 1 chunk +98 lines, -0 lines 0 comments Download
M net/third_party/nss/ssl/ssl3con.c View 1 2 3 4 chunks +30 lines, -31 lines 0 comments Download

Messages

Total messages: 7 (0 generated)
Ryan Sleevi
wtc: Same fix I proposed for upstream NSS. Given the lack of fixed-DH support in ...
10 years ago (2010-12-05 04:28:51 UTC) #1
wtc
LGTM. Excellent work! Let's patch our copy of NSS's libSSL first. I suggested two potential ...
10 years ago (2010-12-07 02:47:13 UTC) #2
Ryan Sleevi
Thanks for the feedback Wan-Teh. Per your comments upstream, I moved it into the ssl3_HandleHelloRequest, ...
10 years ago (2010-12-07 03:12:15 UTC) #3
wtc
On 2010/12/07 03:12:15, Ryan Sleevi wrote: > Per your comments upstream, I moved it into ...
10 years ago (2010-12-08 03:03:12 UTC) #4
wtc
LGTM. Could you generate a patch and document it in README.chromium. We should also generate ...
10 years ago (2010-12-08 03:04:13 UTC) #5
Ryan Sleevi
Thanks for the review. I've added a patch against NSS_3_12_BRANCH (at least, I hope I ...
10 years ago (2010-12-08 07:19:34 UTC) #6
wtc
10 years ago (2010-12-08 19:24:41 UTC) #7
LGTM!

http://codereview.chromium.org/5611005/diff/1/net/third_party/nss/ssl/ssl3con.c
File net/third_party/nss/ssl/ssl3con.c (left):

http://codereview.chromium.org/5611005/diff/1/net/third_party/nss/ssl/ssl3con...
net/third_party/nss/ssl/ssl3con.c:4867: /* If we're doing RSA key exchange,
we're all done with the private key
On 2010/12/08 07:19:35, Ryan Sleevi wrote:
>> Er, yes, agreed. I'm assuming you meant ssl3_SendClientKeyExchange, rather
than
> ssl3_SendCertificate, since an empty client key exchange is still sent for
fixed
> DH.

I didn't know that.  Yes, in that case, we can derive the
premaster secret for fixed DH in ssl3_SendClientKeyExchange.

http://codereview.chromium.org/5611005/diff/16001/net/third_party/nss/ssl/ssl...
File net/third_party/nss/ssl/ssl3con.c (right):

http://codereview.chromium.org/5611005/diff/16001/net/third_party/nss/ssl/ssl...
net/third_party/nss/ssl/ssl3con.c:5539: PORT_Assert(ss->ssl3.platformClientKey
== NULL);
We may need a (PlatformKey) cast for NULL here.

Powered by Google App Engine
This is Rietveld 408576698