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

Side by Side Diff: webrtc/pc/mediasession.cc

Issue 2815513012: Negotiate the same SRTP crypto suites for every DTLS association formed. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2004 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 } 190 }
191 191
192 void GetSupportedAudioCryptoSuiteNames(const rtc::CryptoOptions& crypto_options, 192 void GetSupportedAudioCryptoSuiteNames(const rtc::CryptoOptions& crypto_options,
193 std::vector<std::string>* crypto_suite_names) { 193 std::vector<std::string>* crypto_suite_names) {
194 GetSupportedCryptoSuiteNames(GetSupportedAudioCryptoSuites, 194 GetSupportedCryptoSuiteNames(GetSupportedAudioCryptoSuites,
195 crypto_options, crypto_suite_names); 195 crypto_options, crypto_suite_names);
196 } 196 }
197 197
198 void GetSupportedVideoCryptoSuites(const rtc::CryptoOptions& crypto_options, 198 void GetSupportedVideoCryptoSuites(const rtc::CryptoOptions& crypto_options,
199 std::vector<int>* crypto_suites) { 199 std::vector<int>* crypto_suites) {
200 GetDefaultSrtpCryptoSuites(crypto_options, crypto_suites); 200 rtc::GetDefaultSrtpCryptoSuites(crypto_options, crypto_suites);
201 } 201 }
202 202
203 void GetSupportedVideoCryptoSuiteNames(const rtc::CryptoOptions& crypto_options, 203 void GetSupportedVideoCryptoSuiteNames(const rtc::CryptoOptions& crypto_options,
204 std::vector<std::string>* crypto_suite_names) { 204 std::vector<std::string>* crypto_suite_names) {
205 GetSupportedCryptoSuiteNames(GetSupportedVideoCryptoSuites, 205 GetSupportedCryptoSuiteNames(GetSupportedVideoCryptoSuites,
206 crypto_options, crypto_suite_names); 206 crypto_options, crypto_suite_names);
207 } 207 }
208 208
209 void GetSupportedDataCryptoSuites(const rtc::CryptoOptions& crypto_options, 209 void GetSupportedDataCryptoSuites(const rtc::CryptoOptions& crypto_options,
210 std::vector<int>* crypto_suites) { 210 std::vector<int>* crypto_suites) {
211 GetDefaultSrtpCryptoSuites(crypto_options, crypto_suites); 211 rtc::GetDefaultSrtpCryptoSuites(crypto_options, crypto_suites);
212 } 212 }
213 213
214 void GetSupportedDataCryptoSuiteNames(const rtc::CryptoOptions& crypto_options, 214 void GetSupportedDataCryptoSuiteNames(const rtc::CryptoOptions& crypto_options,
215 std::vector<std::string>* crypto_suite_names) { 215 std::vector<std::string>* crypto_suite_names) {
216 GetSupportedCryptoSuiteNames(GetSupportedDataCryptoSuites, 216 GetSupportedCryptoSuiteNames(GetSupportedDataCryptoSuites,
217 crypto_options, crypto_suite_names); 217 crypto_options, crypto_suite_names);
218 } 218 }
219 219
220 void GetDefaultSrtpCryptoSuites(const rtc::CryptoOptions& crypto_options,
221 std::vector<int>* crypto_suites) {
222 if (crypto_options.enable_gcm_crypto_suites) {
223 crypto_suites->push_back(rtc::SRTP_AEAD_AES_256_GCM);
224 crypto_suites->push_back(rtc::SRTP_AEAD_AES_128_GCM);
225 }
226 crypto_suites->push_back(rtc::SRTP_AES128_CM_SHA1_80);
227 }
228
229 void GetDefaultSrtpCryptoSuiteNames(const rtc::CryptoOptions& crypto_options, 220 void GetDefaultSrtpCryptoSuiteNames(const rtc::CryptoOptions& crypto_options,
230 std::vector<std::string>* crypto_suite_names) { 221 std::vector<std::string>* crypto_suite_names) {
231 GetSupportedCryptoSuiteNames(GetDefaultSrtpCryptoSuites, 222 GetSupportedCryptoSuiteNames(rtc::GetDefaultSrtpCryptoSuites, crypto_options,
232 crypto_options, crypto_suite_names); 223 crypto_suite_names);
233 } 224 }
234 225
235 // Support any GCM cipher (if enabled through options). For video support only 226 // Support any GCM cipher (if enabled through options). For video support only
236 // 80-bit SHA1 HMAC. For audio 32-bit HMAC is tolerated unless bundle is enabled 227 // 80-bit SHA1 HMAC. For audio 32-bit HMAC is tolerated unless bundle is enabled
237 // because it is low overhead. 228 // because it is low overhead.
238 // Pick the crypto in the list that is supported. 229 // Pick the crypto in the list that is supported.
239 static bool SelectCrypto(const MediaContentDescription* offer, 230 static bool SelectCrypto(const MediaContentDescription* offer,
240 bool bundle, 231 bool bundle,
241 const rtc::CryptoOptions& crypto_options, 232 const rtc::CryptoOptions& crypto_options,
242 CryptoParams *crypto) { 233 CryptoParams *crypto) {
(...skipping 1940 matching lines...) Expand 10 before | Expand all | Expand 10 after
2183 GetFirstMediaContentDescription(sdesc, MEDIA_TYPE_VIDEO)); 2174 GetFirstMediaContentDescription(sdesc, MEDIA_TYPE_VIDEO));
2184 } 2175 }
2185 2176
2186 DataContentDescription* GetFirstDataContentDescription( 2177 DataContentDescription* GetFirstDataContentDescription(
2187 SessionDescription* sdesc) { 2178 SessionDescription* sdesc) {
2188 return static_cast<DataContentDescription*>( 2179 return static_cast<DataContentDescription*>(
2189 GetFirstMediaContentDescription(sdesc, MEDIA_TYPE_DATA)); 2180 GetFirstMediaContentDescription(sdesc, MEDIA_TYPE_DATA));
2190 } 2181 }
2191 2182
2192 } // namespace cricket 2183 } // namespace cricket
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698