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

Unified Diff: webrtc/base/opensslstreamadapter.cc

Issue 1455233005: Revert of Convert internal representation of Srtp cryptos from string to int. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Created 5 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/base/opensslstreamadapter.h ('k') | webrtc/base/sslstreamadapter.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/base/opensslstreamadapter.cc
diff --git a/webrtc/base/opensslstreamadapter.cc b/webrtc/base/opensslstreamadapter.cc
index a949f7f09a53d44378c581f7293cf3f7950af84a..9c3a09ecc06bfe05105bfc6749471c7240cebad3 100644
--- a/webrtc/base/opensslstreamadapter.cc
+++ b/webrtc/base/opensslstreamadapter.cc
@@ -43,19 +43,17 @@
#endif
#ifdef HAVE_DTLS_SRTP
-// SRTP cipher suite table. |internal_name| is used to construct a
-// colon-separated profile strings which is needed by
-// SSL_CTX_set_tlsext_use_srtp().
+// SRTP cipher suite table
struct SrtpCipherMapEntry {
+ const char* external_name;
const char* internal_name;
- const int id;
};
// This isn't elegant, but it's better than an external reference
static SrtpCipherMapEntry SrtpCipherMap[] = {
- {"SRTP_AES128_CM_SHA1_80", SRTP_AES128_CM_SHA1_80},
- {"SRTP_AES128_CM_SHA1_32", SRTP_AES128_CM_SHA1_32},
- {nullptr, 0}};
+ {CS_AES_CM_128_HMAC_SHA1_80, "SRTP_AES128_CM_SHA1_80"},
+ {CS_AES_CM_128_HMAC_SHA1_32, "SRTP_AES128_CM_SHA1_32"},
+ {NULL, NULL}};
#endif
#ifndef OPENSSL_IS_BORINGSSL
@@ -350,9 +348,9 @@
return true;
}
-std::string OpenSSLStreamAdapter::SslCipherSuiteToName(int cipher_suite) {
+std::string OpenSSLStreamAdapter::GetSslCipherSuiteName(int cipher) {
#ifdef OPENSSL_IS_BORINGSSL
- const SSL_CIPHER* ssl_cipher = SSL_get_cipher_by_value(cipher_suite);
+ const SSL_CIPHER* ssl_cipher = SSL_get_cipher_by_value(cipher);
if (!ssl_cipher) {
return std::string();
}
@@ -363,7 +361,7 @@
#else
for (const SslCipherMapEntry* entry = kSslCipherMap; entry->rfc_name;
++entry) {
- if (cipher_suite == entry->openssl_id) {
+ if (cipher == entry->openssl_id) {
return entry->rfc_name;
}
}
@@ -371,7 +369,7 @@
#endif
}
-bool OpenSSLStreamAdapter::GetSslCipherSuite(int* cipher_suite) {
+bool OpenSSLStreamAdapter::GetSslCipherSuite(int* cipher) {
if (state_ != SSL_CONNECTED)
return false;
@@ -380,7 +378,7 @@
return false;
}
- *cipher_suite = static_cast<uint16_t>(SSL_CIPHER_get_id(current_cipher));
+ *cipher = static_cast<uint16_t>(SSL_CIPHER_get_id(current_cipher));
return true;
}
@@ -407,20 +405,20 @@
#endif
}
-bool OpenSSLStreamAdapter::SetDtlsSrtpCryptoSuites(
- const std::vector<int>& ciphers) {
+bool OpenSSLStreamAdapter::SetDtlsSrtpCiphers(
+ const std::vector<std::string>& ciphers) {
#ifdef HAVE_DTLS_SRTP
std::string internal_ciphers;
if (state_ != SSL_NONE)
return false;
- for (std::vector<int>::const_iterator cipher = ciphers.begin();
+ for (std::vector<std::string>::const_iterator cipher = ciphers.begin();
cipher != ciphers.end(); ++cipher) {
bool found = false;
- for (SrtpCipherMapEntry* entry = SrtpCipherMap; entry->internal_name;
+ for (SrtpCipherMapEntry *entry = SrtpCipherMap; entry->internal_name;
++entry) {
- if (*cipher == entry->id) {
+ if (*cipher == entry->external_name) {
found = true;
if (!internal_ciphers.empty())
internal_ciphers += ":";
@@ -445,7 +443,7 @@
#endif
}
-bool OpenSSLStreamAdapter::GetDtlsSrtpCryptoSuite(int* crypto_suite) {
+bool OpenSSLStreamAdapter::GetDtlsSrtpCipher(std::string* cipher) {
#ifdef HAVE_DTLS_SRTP
ASSERT(state_ == SSL_CONNECTED);
if (state_ != SSL_CONNECTED)
@@ -457,9 +455,17 @@
if (!srtp_profile)
return false;
- *crypto_suite = srtp_profile->id;
- ASSERT(!SrtpCryptoSuiteToName(*crypto_suite).empty());
- return true;
+ for (SrtpCipherMapEntry *entry = SrtpCipherMap;
+ entry->internal_name; ++entry) {
+ if (!strcmp(entry->internal_name, srtp_profile->name)) {
+ *cipher = entry->external_name;
+ return true;
+ }
+ }
+
+ ASSERT(false); // This should never happen
+
+ return false;
#else
return false;
#endif
« no previous file with comments | « webrtc/base/opensslstreamadapter.h ('k') | webrtc/base/sslstreamadapter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698