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

Issue 396803002: Implement TLS client auth in the OS X OpenSSL port. (Closed)

Created:
6 years, 5 months ago by davidben
Modified:
6 years, 4 months ago
Reviewers:
wtc, agl, Ryan Sleevi
CC:
chromium-reviews, cbentzel+watch_chromium.org
Project:
chromium
Visibility:
Public.

Description

Implement TLS client auth in the OS X OpenSSL port. This introduces a openssl_platform_key.h that looks up and wraps a platform private key from the platform key store and returns an EVP_PKEY. It is implemented on Mac and left as a stub on Windows. This will be refactored with https://crbug.com/394131. The USE_OPENSSL_CERTS case has been left intact to preserve the existing tests on Linux but, possibly after the refactor, this will need to change as Linux and CrOS will likely still use OpenSSL handles for X509Certificate but will not likely want the OpenSSLClientKeyStore hack. BUG=394131 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=286112

Patch Set 1 #

Patch Set 2 : Header file silliness #

Patch Set 3 : EVP_PKEY_set1_RSA has a saner ownership story. #

Total comments: 8

Patch Set 4 : wtc comments #

Patch Set 5 : BoringSSL and ECDSA #

Patch Set 6 : rebase #

Patch Set 7 : Mark keys as opaque. #

Total comments: 7

Patch Set 8 : DISALLOW_COPY_AND_ASSIGN #

Total comments: 8

Patch Set 9 : #

Patch Set 10 : Hopefully appease gn #

Patch Set 11 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+577 lines, -294 lines) Patch
M net/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 1 chunk +13 lines, -2 lines 0 comments Download
M net/net.gyp View 1 2 3 4 5 6 7 8 9 10 1 chunk +5 lines, -2 lines 0 comments Download
M net/net.gypi View 1 2 3 4 5 6 7 8 9 10 2 chunks +5 lines, -2 lines 0 comments Download
D net/socket/openssl_ssl_util.h View 1 chunk +0 lines, -40 lines 0 comments Download
D net/socket/openssl_ssl_util.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -204 lines 0 comments Download
M net/socket/ssl_client_socket_openssl.cc View 1 2 3 4 5 6 7 8 9 10 4 chunks +25 lines, -14 lines 0 comments Download
M net/socket/ssl_server_socket_openssl.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M net/ssl/openssl_client_key_store.h View 1 chunk +2 lines, -5 lines 0 comments Download
M net/ssl/openssl_client_key_store.cc View 1 chunk +6 lines, -8 lines 0 comments Download
M net/ssl/openssl_client_key_store_unittest.cc View 4 chunks +9 lines, -12 lines 0 comments Download
A net/ssl/openssl_platform_key.h View 1 2 3 1 chunk +26 lines, -0 lines 0 comments Download
A net/ssl/openssl_platform_key_mac.cc View 1 2 3 4 5 6 7 8 1 chunk +463 lines, -0 lines 0 comments Download
A net/ssl/openssl_platform_key_win.cc View 1 chunk +18 lines, -0 lines 0 comments Download
A + net/ssl/openssl_ssl_util.h View 2 chunks +3 lines, -3 lines 0 comments Download
A + net/ssl/openssl_ssl_util.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 18 (0 generated)
davidben
Here's an initial version to look at, but don't sign off on this yet: this ...
6 years, 5 months ago (2014-07-15 23:03:50 UTC) #1
wtc
Review comments on patch set 3: I didn't review openssl_platform_key_mac.cc. https://codereview.chromium.org/396803002/diff/40001/net/net.gypi File net/net.gypi (left): https://codereview.chromium.org/396803002/diff/40001/net/net.gypi#oldcode135 ...
6 years, 5 months ago (2014-07-16 00:09:58 UTC) #2
davidben
https://codereview.chromium.org/396803002/diff/40001/net/net.gypi File net/net.gypi (left): https://codereview.chromium.org/396803002/diff/40001/net/net.gypi#oldcode135 net/net.gypi:135: 'ssl/openssl_client_key_store.h', On 2014/07/16 00:09:57, wtc wrote: > > Is ...
6 years, 5 months ago (2014-07-16 16:25:36 UTC) #3
wtc
On 2014/07/15 23:03:50, David Benjamin wrote: > Here's an initial version to look at, but ...
6 years, 5 months ago (2014-07-16 16:51:53 UTC) #4
davidben
On 2014/07/16 16:51:53, wtc wrote: > On 2014/07/15 23:03:50, David Benjamin wrote: > > Here's ...
6 years, 5 months ago (2014-07-16 19:22:06 UTC) #5
davidben
Alright, this is ready for more careful review now. Also +agl because I forgot earlier. ...
6 years, 5 months ago (2014-07-18 21:42:17 UTC) #6
davidben
Updated to mark keys as opaque which should fix the client auth bug.
6 years, 5 months ago (2014-07-23 20:05:08 UTC) #7
Ryan Sleevi
Going to need to spend more time reviewing, particularly the OS X bits. A more ...
6 years, 5 months ago (2014-07-23 22:38:48 UTC) #8
davidben
Sure, I can do the refactoring first instead. I figured it'd be worthwhile to get ...
6 years, 5 months ago (2014-07-23 22:59:21 UTC) #9
Ryan Sleevi
On Jul 23, 2014 3:59 PM, <davidben@chromium.org> wrote: > > Sure, I can do the ...
6 years, 5 months ago (2014-07-23 23:05:24 UTC) #10
davidben
https://codereview.chromium.org/396803002/diff/120001/net/ssl/openssl_platform_key_mac.cc File net/ssl/openssl_platform_key_mac.cc (right): https://codereview.chromium.org/396803002/diff/120001/net/ssl/openssl_platform_key_mac.cc#newcode58 net/ssl/openssl_platform_key_mac.cc:58: CSSM_CC_HANDLE handle_; On 2014/07/23 22:38:47, Ryan Sleevi wrote: > ...
6 years, 5 months ago (2014-07-23 23:13:10 UTC) #11
davidben
https://codereview.chromium.org/396803002/diff/120001/net/ssl/openssl_platform_key_mac.cc File net/ssl/openssl_platform_key_mac.cc (right): https://codereview.chromium.org/396803002/diff/120001/net/ssl/openssl_platform_key_mac.cc#newcode108 net/ssl/openssl_platform_key_mac.cc:108: CHECK(false); On 2014/07/23 23:13:09, David Benjamin wrote: > On ...
6 years, 5 months ago (2014-07-23 23:18:49 UTC) #12
agl
BoringSSL bits LGTM. The similarity with the Android code here suggests that we might want ...
6 years, 5 months ago (2014-07-24 18:39:41 UTC) #13
Ryan Sleevi
Yeah, +1 to what AGL said We're going to end up with - Android (JNI) ...
6 years, 5 months ago (2014-07-24 19:13:03 UTC) #14
davidben
Abstracting away BoringSSL glue: agreed. It's all just implementing one function per key type. Also ...
6 years, 5 months ago (2014-07-24 21:02:25 UTC) #15
davidben
The CQ bit was checked by davidben@chromium.org
6 years, 4 months ago (2014-07-28 22:46:56 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/davidben@chromium.org/396803002/200001
6 years, 4 months ago (2014-07-28 22:48:21 UTC) #17
commit-bot: I haz the power
6 years, 4 months ago (2014-07-29 07:51:43 UTC) #18
Message was sent while issue was closed.
Change committed as 286112

Powered by Google App Engine
This is Rietveld 408576698