Index: webrtc/base/sslstreamadapter.h |
diff --git a/webrtc/base/sslstreamadapter.h b/webrtc/base/sslstreamadapter.h |
index 4fb238a290482d13d00569bc57ccc5cdc45389f8..867f309a03b6c721339082e8a3676aa4772a8993 100644 |
--- a/webrtc/base/sslstreamadapter.h |
+++ b/webrtc/base/sslstreamadapter.h |
@@ -19,6 +19,23 @@ |
namespace rtc { |
+// Constants for SRTP profiles. |
+const uint16_t SRTP_AES128_CM_SHA1_80 = 0x0001; |
+const uint16_t SRTP_AES128_CM_SHA1_32 = 0x0002; |
+ |
+// Cipher suite to use for SRTP. Typically a 80-bit HMAC will be used, except |
+// in applications (voice) where the additional bandwidth may be significant. |
+// A 80-bit HMAC is always used for SRTCP. |
+// 128-bit AES with 80-bit SHA-1 HMAC. |
+extern const char CS_AES_CM_128_HMAC_SHA1_80[]; |
+// 128-bit AES with 32-bit SHA-1 HMAC. |
+extern const char CS_AES_CM_128_HMAC_SHA1_32[]; |
+ |
+// Returns the DTLS-SRTP protection profile ID, as defined in |
+// https://tools.ietf.org/html/rfc5764#section-4.1.2, for the given SRTP |
+// Crypto-suite, as defined in https://tools.ietf.org/html/rfc4568#section-6.2 |
+uint16_t GetSrtpCryptoSuiteFromName(const std::string& cipher_rfc_name); |
+ |
// SSLStreamAdapter : A StreamInterfaceAdapter that does SSL/TLS. |
// After SSL has been started, the stream will only open on successful |
// SSL verification of certificates, and the communication is |
@@ -133,9 +150,9 @@ class SSLStreamAdapter : public StreamAdapterInterface { |
// chain. The returned certificate is owned by the caller. |
virtual bool GetPeerCertificate(SSLCertificate** cert) const = 0; |
- // Retrieves the name of the cipher suite used for the connection |
- // (e.g. "TLS_RSA_WITH_AES_128_CBC_SHA"). |
- virtual bool GetSslCipher(std::string* cipher); |
+ // Retrieves the IANA registration id of the cipher suite used for the |
+ // connection (e.g. 0x2F for "TLS_RSA_WITH_AES_128_CBC_SHA"). |
+ virtual bool GetSslCipherSuite(uint16_t* cipher); |
// Key Exporter interface from RFC 5705 |
// Arguments are: |
@@ -167,9 +184,14 @@ class SSLStreamAdapter : public StreamAdapterInterface { |
// Returns the default Ssl cipher used between streams of this class |
// for the given protocol version. This is used by the unit tests. |
- // TODO(torbjorng@webrtc.org): Fix callers to avoid default parameter. |
- static std::string GetDefaultSslCipher(SSLProtocolVersion version, |
- KeyType key_type = KT_DEFAULT); |
+ // TODO(guoweis): Move this away from a static class method. |
+ static uint16_t GetDefaultSslCipherForTest(SSLProtocolVersion version, |
+ KeyType key_type); |
+ |
+ // TODO(guoweis): Move this away from a static class method. Currently this is |
+ // introduced such that any caller could depend on sslstreamadapter.h without |
+ // depending on specific SSL implementation. |
+ static std::string GetSslCipherSuiteName(uint16_t cipher); |
private: |
// If true, the server certificate need not match the configured |