Index: talk/session/media/mediasession.cc |
diff --git a/talk/session/media/mediasession.cc b/talk/session/media/mediasession.cc |
index 7413026092f1d6f8c8742e407d48376ac5a5ea01..ed626e2f3478b99d432e8a4a9ddcfdcc61d01162 100644 |
--- a/talk/session/media/mediasession.cc |
+++ b/talk/session/media/mediasession.cc |
@@ -50,6 +50,17 @@ static const uint32_t kMaxSctpSid = 1023; |
namespace { |
const char kInline[] = "inline:"; |
+ |
+void GetSupportedCryptoSuiteNames(void (*func)(std::vector<int>*), |
+ std::vector<std::string>* names) { |
+#ifdef HAVE_SRTP |
+ std::vector<int> crypto_suites; |
+ func(&crypto_suites); |
+ for (const auto crypto : crypto_suites) { |
+ names->push_back(rtc::SrtpCryptoSuiteToName(crypto)); |
+ } |
+#endif |
+} |
} |
namespace cricket { |
@@ -152,30 +163,50 @@ bool FindMatchingCrypto(const CryptoParamsVec& cryptos, |
} |
// For audio, HMAC 32 is prefered because of the low overhead. |
-void GetSupportedAudioCryptoSuites( |
- std::vector<std::string>* crypto_suites) { |
+void GetSupportedAudioCryptoSuites(std::vector<int>* crypto_suites) { |
#ifdef HAVE_SRTP |
- crypto_suites->push_back(rtc::CS_AES_CM_128_HMAC_SHA1_32); |
- crypto_suites->push_back(rtc::CS_AES_CM_128_HMAC_SHA1_80); |
+ crypto_suites->push_back(rtc::SRTP_AES128_CM_SHA1_32); |
+ crypto_suites->push_back(rtc::SRTP_AES128_CM_SHA1_80); |
#endif |
} |
-void GetSupportedVideoCryptoSuites( |
- std::vector<std::string>* crypto_suites) { |
- GetDefaultSrtpCryptoSuiteNames(crypto_suites); |
+void GetSupportedAudioCryptoSuiteNames( |
+ std::vector<std::string>* crypto_suite_names) { |
+ GetSupportedCryptoSuiteNames(GetSupportedAudioCryptoSuites, |
+ crypto_suite_names); |
+} |
+ |
+void GetSupportedVideoCryptoSuites(std::vector<int>* crypto_suites) { |
+ GetDefaultSrtpCryptoSuites(crypto_suites); |
} |
-void GetSupportedDataCryptoSuites( |
- std::vector<std::string>* crypto_suites) { |
- GetDefaultSrtpCryptoSuiteNames(crypto_suites); |
+void GetSupportedVideoCryptoSuiteNames( |
+ std::vector<std::string>* crypto_suite_names) { |
+ GetSupportedCryptoSuiteNames(GetSupportedVideoCryptoSuites, |
+ crypto_suite_names); |
} |
-void GetDefaultSrtpCryptoSuiteNames(std::vector<std::string>* crypto_suites) { |
+void GetSupportedDataCryptoSuites(std::vector<int>* crypto_suites) { |
+ GetDefaultSrtpCryptoSuites(crypto_suites); |
+} |
+ |
+void GetSupportedDataCryptoSuiteNames( |
+ std::vector<std::string>* crypto_suite_names) { |
+ GetSupportedCryptoSuiteNames(GetSupportedDataCryptoSuites, |
+ crypto_suite_names); |
+} |
+ |
+void GetDefaultSrtpCryptoSuites(std::vector<int>* crypto_suites) { |
#ifdef HAVE_SRTP |
- crypto_suites->push_back(rtc::CS_AES_CM_128_HMAC_SHA1_80); |
+ crypto_suites->push_back(rtc::SRTP_AES128_CM_SHA1_80); |
#endif |
} |
+void GetDefaultSrtpCryptoSuiteNames( |
+ std::vector<std::string>* crypto_suite_names) { |
+ GetSupportedCryptoSuiteNames(GetDefaultSrtpCryptoSuites, crypto_suite_names); |
+} |
+ |
// For video support only 80-bit SHA1 HMAC. For audio 32-bit HMAC is |
// tolerated unless bundle is enabled because it is low overhead. Pick the |
// crypto in the list that is supported. |
@@ -1514,7 +1545,7 @@ bool MediaSessionDescriptionFactory::AddAudioContentForOffer( |
scoped_ptr<AudioContentDescription> audio(new AudioContentDescription()); |
std::vector<std::string> crypto_suites; |
- GetSupportedAudioCryptoSuites(&crypto_suites); |
+ GetSupportedAudioCryptoSuiteNames(&crypto_suites); |
if (!CreateMediaContentOffer( |
options, |
audio_codecs, |
@@ -1568,7 +1599,7 @@ bool MediaSessionDescriptionFactory::AddVideoContentForOffer( |
scoped_ptr<VideoContentDescription> video(new VideoContentDescription()); |
std::vector<std::string> crypto_suites; |
- GetSupportedVideoCryptoSuites(&crypto_suites); |
+ GetSupportedVideoCryptoSuiteNames(&crypto_suites); |
if (!CreateMediaContentOffer( |
options, |
video_codecs, |
@@ -1638,7 +1669,7 @@ bool MediaSessionDescriptionFactory::AddDataContentForOffer( |
data->set_protocol( |
secure_transport ? kMediaProtocolDtlsSctp : kMediaProtocolSctp); |
} else { |
- GetSupportedDataCryptoSuites(&crypto_suites); |
+ GetSupportedDataCryptoSuiteNames(&crypto_suites); |
} |
if (!CreateMediaContentOffer( |