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

Issue 1528843005: Add support for GCM cipher suites from RFC 7714. (Closed)

Created:
5 years ago by joachim
Modified:
4 years, 4 months ago
CC:
tterriberry_mozilla.com, webrtc-reviews_webrtc.org
Base URL:
https://chromium.googlesource.com/external/webrtc.git@master
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

Add support for GCM cipher suites from RFC 7714. GCM cipher suites are optional (disabled by default) and can be enabled through "PeerConnectionFactoryInterface::Options". If compiled with Chromium (i.e. "ENABLE_EXTERNAL_AUTH" is defined), no GCM ciphers can be used yet (see https://crbug.com/628400). BUG=webrtc:5222, 628400 Committed: https://crrev.com/cb56065c62a31d83919abcd4e343ea3dbe029e9f Cr-Commit-Position: refs/heads/master@{#13635}

Patch Set 1 #

Patch Set 2 : Added PeerConnection tests using GCM ciphers, fixed passing of flag through DtlsTransportChannel. #

Total comments: 28

Patch Set 3 : Updates after feedback from Peter #

Total comments: 2

Patch Set 4 : Add CryptoOptions struct #

Patch Set 5 : Rebased #

Total comments: 2

Patch Set 6 : Reference RFCs for key/salt lengths. #

Patch Set 7 : Rebased #

Patch Set 8 : Rebased #

Patch Set 9 : Don't use hardcoded crypto suite names in channel_unittest.cc #

Patch Set 10 : Fix failing SRTP-but-no-DTLS tests. #

Total comments: 26

Patch Set 11 : Feedback from Matt #

Total comments: 4

Patch Set 12 : More feedback from Matt #

Total comments: 1

Patch Set 13 : Rebased #

Total comments: 2

Patch Set 14 : Feedback from Peter #

Patch Set 15 : Attempt to fix compilation on Windows. #

Patch Set 16 : Fix compilation on tsan2. #

Total comments: 2

Patch Set 17 : Disable GCM if ENABLE_EXTERNAL_AUTH is defined. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+810 lines, -122 lines) Patch
M webrtc/api/peerconnection.cc View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +2 lines, -0 lines 0 comments Download
M webrtc/api/peerconnection_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +43 lines, -0 lines 0 comments Download
M webrtc/api/peerconnectionfactory.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -3 lines 0 comments Download
M webrtc/api/peerconnectionfactory.cc View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +8 lines, -0 lines 0 comments Download
M webrtc/api/peerconnectioninterface.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +5 lines, -1 line 0 comments Download
M webrtc/api/webrtcsession_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 9 chunks +71 lines, -13 lines 0 comments Download
M webrtc/base/helpers.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +4 lines, -0 lines 0 comments Download
M webrtc/base/helpers.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +7 lines, -0 lines 0 comments Download
M webrtc/base/helpers_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +24 lines, -0 lines 0 comments Download
M webrtc/base/opensslstreamadapter.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -0 lines 0 comments Download
M webrtc/base/sslstreamadapter.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +34 lines, -0 lines 0 comments Download
M webrtc/base/sslstreamadapter.cc View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +61 lines, -3 lines 0 comments Download
M webrtc/base/sslstreamadapter_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +101 lines, -1 line 0 comments Download
M webrtc/pc/channel.h View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +7 lines, -0 lines 0 comments Download
M webrtc/pc/channel.cc View 1 2 3 4 5 6 7 8 9 10 11 12 7 chunks +27 lines, -21 lines 0 comments Download
M webrtc/pc/channel_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 11 chunks +77 lines, -11 lines 0 comments Download
M webrtc/pc/channelmanager.h View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +6 lines, -0 lines 0 comments Download
M webrtc/pc/channelmanager.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 5 chunks +28 lines, -0 lines 0 comments Download
M webrtc/pc/mediasession.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +13 lines, -8 lines 0 comments Download
M webrtc/pc/mediasession.cc View 1 2 3 4 5 6 7 8 9 10 11 12 8 chunks +58 lines, -28 lines 0 comments Download
M webrtc/pc/mediasession_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 5 chunks +128 lines, -0 lines 0 comments Download
M webrtc/pc/srtpfilter.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 4 chunks +6 lines, -11 lines 0 comments Download
M webrtc/pc/srtpfilter.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 8 chunks +60 lines, -22 lines 0 comments Download
M webrtc/pc/srtpfilter_unittest.cc View 1 2 3 4 5 6 7 8 9 10 4 chunks +37 lines, -0 lines 0 comments Download

Messages

Total messages: 63 (16 generated)
joachim
This is a first version. Some areas still missing (mostly tests for the high-level api), ...
5 years ago (2015-12-16 01:06:21 UTC) #2
joachim
On 2015/12/16 01:06:21, joachim wrote: > This is a first version. Some areas still missing ...
5 years ago (2015-12-17 00:10:17 UTC) #3
pthatcher1
I think this is a good start, but I'd definitely like to have Justin look ...
5 years ago (2015-12-18 20:31:32 UTC) #4
joachim
Thanks for the detailed feedback. All changed. https://codereview.webrtc.org/1528843005/diff/20001/talk/app/webrtc/peerconnection_unittest.cc File talk/app/webrtc/peerconnection_unittest.cc (right): https://codereview.webrtc.org/1528843005/diff/20001/talk/app/webrtc/peerconnection_unittest.cc#newcode1552 talk/app/webrtc/peerconnection_unittest.cc:1552: kDefaultSrtpCryptoSuite)); On ...
5 years ago (2015-12-19 15:26:23 UTC) #5
pthatcher1
Much better. I just have one moderately large style issue left. After that, I think ...
4 years, 12 months ago (2015-12-21 22:30:27 UTC) #6
joachim
https://codereview.webrtc.org/1528843005/diff/40001/talk/session/media/mediasession.h File talk/session/media/mediasession.h (right): https://codereview.webrtc.org/1528843005/diff/40001/talk/session/media/mediasession.h#newcode549 talk/session/media/mediasession.h:549: const MediaSessionOptions& options); On 2015/12/21 22:30:27, pthatcher1 wrote: > ...
4 years, 12 months ago (2015-12-21 23:37:57 UTC) #7
joachim
On 2015/12/21 23:37:57, joachim wrote: > https://codereview.webrtc.org/1528843005/diff/40001/talk/session/media/mediasession.h > File talk/session/media/mediasession.h (right): > > https://codereview.webrtc.org/1528843005/diff/40001/talk/session/media/mediasession.h#newcode549 > ...
4 years, 11 months ago (2016-01-15 22:48:49 UTC) #8
pthatcher1
lgtm https://codereview.chromium.org/1528843005/diff/80001/webrtc/base/sslstreamadapter.cc File webrtc/base/sslstreamadapter.cc (right): https://codereview.chromium.org/1528843005/diff/80001/webrtc/base/sslstreamadapter.cc#newcode76 webrtc/base/sslstreamadapter.cc:76: *salt_length = 12; Can you leave a comment ...
4 years, 10 months ago (2016-01-30 00:54:33 UTC) #9
joachim
Thanks @Justin: ptal https://codereview.webrtc.org/1528843005/diff/80001/webrtc/base/sslstreamadapter.cc File webrtc/base/sslstreamadapter.cc (right): https://codereview.webrtc.org/1528843005/diff/80001/webrtc/base/sslstreamadapter.cc#newcode76 webrtc/base/sslstreamadapter.cc:76: *salt_length = 12; On 2016/01/30 00:54:33, ...
4 years, 10 months ago (2016-01-31 23:39:52 UTC) #10
joachim
On 2016/01/31 23:39:52, joachim wrote: > Thanks > > @Justin: ptal Ping, also for https://codereview.webrtc.org/1607613003/ ...
4 years, 10 months ago (2016-02-04 23:24:48 UTC) #12
joachim
On 2016/02/04 23:24:48, joachim wrote: > On 2016/01/31 23:39:52, joachim wrote: > > Thanks > ...
4 years, 9 months ago (2016-03-17 20:31:10 UTC) #13
joachim
Rebased + fix in newly introduced check for SRTP-but-non-DTLS cases. +matt for review
4 years, 7 months ago (2016-04-27 22:48:44 UTC) #16
mattdr
I think there's a serious problem in serializing and deserializing the key as base64 in ...
4 years, 7 months ago (2016-05-06 22:33:41 UTC) #17
mattdr
UNDO PREVIOUS LGTM https://codereview.webrtc.org/1528843005/diff/180001/webrtc/api/peerconnection_unittest.cc File webrtc/api/peerconnection_unittest.cc (right): https://codereview.webrtc.org/1528843005/diff/180001/webrtc/api/peerconnection_unittest.cc#newcode1758 webrtc/api/peerconnection_unittest.cc:1758: // Test that a non-GCM cipher ...
4 years, 7 months ago (2016-05-06 22:34:14 UTC) #19
pthatcher1
no lgtm ?
4 years, 7 months ago (2016-05-06 22:37:44 UTC) #20
pthatcher1
On 2016/05/06 22:37:44, pthatcher1 wrote: > no lgtm > > ? -lgtm ?
4 years, 7 months ago (2016-05-06 22:37:56 UTC) #21
mattdr
Sorry, new to Reitveld. not lgtm.
4 years, 7 months ago (2016-05-06 22:39:45 UTC) #22
pthatcher1
On 2016/05/06 22:37:56, pthatcher1 wrote: > On 2016/05/06 22:37:44, pthatcher1 wrote: > > no lgtm ...
4 years, 7 months ago (2016-05-06 22:40:34 UTC) #23
mattdr
https://codereview.webrtc.org/1528843005/diff/180001/webrtc/pc/mediasession.cc File webrtc/pc/mediasession.cc (right): https://codereview.webrtc.org/1528843005/diff/180001/webrtc/pc/mediasession.cc#newcode165 webrtc/pc/mediasession.cc:165: crypto_suites->push_back(rtc::SRTP_AEAD_AES_256_GCM); Judging by the comments above, I'm inferring these ...
4 years, 7 months ago (2016-05-06 22:47:52 UTC) #24
joachim
Thanks for your thorough review and detailed feedback! I addressed all comments in the latest ...
4 years, 7 months ago (2016-05-09 23:21:41 UTC) #25
mattdr
Thanks for your work and for the quick turnaround! This lgtm, modulo a nit about ...
4 years, 7 months ago (2016-05-10 22:29:13 UTC) #26
joachim
All changed, thanks. https://codereview.webrtc.org/1528843005/diff/200001/webrtc/base/helpers.h File webrtc/base/helpers.h (right): https://codereview.webrtc.org/1528843005/diff/200001/webrtc/base/helpers.h#newcode44 webrtc/base/helpers.h:44: bool CreateRandomData(size_t length, void* data); On ...
4 years, 7 months ago (2016-05-10 23:09:45 UTC) #27
joachim
@Peter and Justin: now that Matt is happy with the CL, could you ptal my ...
4 years, 7 months ago (2016-05-17 20:41:03 UTC) #28
joachim
On 2016/05/17 20:41:03, joachim wrote: > @Peter and Justin: now that Matt is happy with ...
4 years, 5 months ago (2016-06-29 23:48:36 UTC) #29
pthatcher1
lgtm https://codereview.webrtc.org/1528843005/diff/240001/webrtc/base/sslstreamadapter.h File webrtc/base/sslstreamadapter.h (right): https://codereview.webrtc.org/1528843005/diff/240001/webrtc/base/sslstreamadapter.h#newcode82 webrtc/base/sslstreamadapter.h:82: bool enable_gcm_crypto_suites; Putting "= false;" on here would ...
4 years, 5 months ago (2016-06-30 21:45:56 UTC) #30
joachim
https://codereview.webrtc.org/1528843005/diff/240001/webrtc/base/sslstreamadapter.h File webrtc/base/sslstreamadapter.h (right): https://codereview.webrtc.org/1528843005/diff/240001/webrtc/base/sslstreamadapter.h#newcode82 webrtc/base/sslstreamadapter.h:82: bool enable_gcm_crypto_suites; On 2016/06/30 21:45:56, pthatcher1 wrote: > Putting ...
4 years, 5 months ago (2016-06-30 22:21:43 UTC) #31
joachim
On 2016/06/29 23:48:36, joachim wrote: > On 2016/05/17 20:41:03, joachim wrote: > > @Peter and ...
4 years, 5 months ago (2016-07-05 12:53:40 UTC) #32
mattdr-at-webrtc.org
Justin's on vacation this week. Go ahead and submit, and he can yell at me ...
4 years, 5 months ago (2016-07-06 17:54:04 UTC) #33
joachim
On 2016/07/06 17:54:04, mattdr1 wrote: > Justin's on vacation this week. Go ahead and submit, ...
4 years, 5 months ago (2016-07-06 18:34:05 UTC) #34
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/1528843005/250001
4 years, 5 months ago (2016-07-06 18:34:31 UTC) #37
commit-bot: I haz the power
Try jobs failed on following builders: win_x64_rel on master.tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/win_x64_rel/builds/16008)
4 years, 5 months ago (2016-07-06 18:38:38 UTC) #39
joachim
A CL to fix the asan error pending here: https://codereview.webrtc.org/2129753002/
4 years, 5 months ago (2016-07-06 20:02:47 UTC) #40
mattdr-at-webrtc.org
not lgtm Sorry, something new's come up. :( https://codereview.webrtc.org/1528843005/diff/290001/webrtc/pc/srtpfilter.cc File webrtc/pc/srtpfilter.cc (right): https://codereview.webrtc.org/1528843005/diff/290001/webrtc/pc/srtpfilter.cc#newcode729 webrtc/pc/srtpfilter.cc:729: policy.rtp.auth_type ...
4 years, 5 months ago (2016-07-14 20:39:51 UTC) #41
mattdr-at-webrtc.org
https://codereview.webrtc.org/1528843005/diff/290001/webrtc/pc/srtpfilter.cc File webrtc/pc/srtpfilter.cc (right): https://codereview.webrtc.org/1528843005/diff/290001/webrtc/pc/srtpfilter.cc#newcode729 webrtc/pc/srtpfilter.cc:729: policy.rtp.auth_type = EXTERNAL_HMAC_SHA1; ... and should this have come ...
4 years, 5 months ago (2016-07-14 20:43:22 UTC) #42
mattdr-at-webrtc.org
see also: https://bugs.chromium.org/p/chromium/issues/detail?id=628400
4 years, 5 months ago (2016-07-14 22:14:37 UTC) #43
mattdr-at-webrtc.org
I've put what I've learned so far into https://bugs.chromium.org/p/chromium/issues/detail?id=628400. It occurs to me now I ...
4 years, 5 months ago (2016-07-15 00:52:33 UTC) #44
joachim
On 2016/07/15 00:52:33, mattdr-at-webrtc.org wrote: > I've put what I've learned so far into > ...
4 years, 5 months ago (2016-07-18 20:55:54 UTC) #45
mattdr-at-webrtc.org
On 2016/07/18 20:55:54, joachim wrote: > On 2016/07/15 00:52:33, http://mattdr-at-webrtc.org wrote: > > I've put ...
4 years, 5 months ago (2016-07-18 21:18:26 UTC) #46
joachim
Changed to disable GCM if ENABLE_EXTERNAL_AUTH is defined (logs a warning if requested and disables ...
4 years, 5 months ago (2016-07-20 21:26:49 UTC) #48
mattdr-at-webrtc.org
On 2016/07/20 21:26:49, joachim wrote: > Changed to disable GCM if ENABLE_EXTERNAL_AUTH is defined (logs ...
4 years, 5 months ago (2016-07-22 18:31:31 UTC) #50
joachim
On 2016/07/22 18:31:31, mattdr-at-webrtc.org wrote: > On 2016/07/20 21:26:49, joachim wrote: > > Changed to ...
4 years, 4 months ago (2016-08-04 09:25:17 UTC) #51
mattdr-at-webrtc.org
On 2016/08/04 09:25:17, joachim wrote: > On 2016/07/22 18:31:31, http://mattdr-at-webrtc.org wrote: > > On 2016/07/20 ...
4 years, 4 months ago (2016-08-04 10:45:42 UTC) #52
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/1528843005/310001
4 years, 4 months ago (2016-08-04 10:59:37 UTC) #55
commit-bot: I haz the power
Try jobs failed on following builders: android_arm64_rel on master.tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/android_arm64_rel/builds/9857)
4 years, 4 months ago (2016-08-04 11:14:08 UTC) #57
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/1528843005/310001
4 years, 4 months ago (2016-08-04 11:51:21 UTC) #59
commit-bot: I haz the power
Committed patchset #17 (id:310001)
4 years, 4 months ago (2016-08-04 12:20:40 UTC) #61
commit-bot: I haz the power
4 years, 4 months ago (2016-08-04 12:20:49 UTC) #63
Message was sent while issue was closed.
Patchset 17 (id:??) landed as
https://crrev.com/cb56065c62a31d83919abcd4e343ea3dbe029e9f
Cr-Commit-Position: refs/heads/master@{#13635}

Powered by Google App Engine
This is Rietveld 408576698