| Index: webrtc/base/sslstreamadapter.h
|
| diff --git a/webrtc/base/sslstreamadapter.h b/webrtc/base/sslstreamadapter.h
|
| index c57056b14ad1b2336b1527c00bd7c24059ff02f0..1308f275ed6621e3d50a61e3dc14632505388bcc 100644
|
| --- a/webrtc/base/sslstreamadapter.h
|
| +++ b/webrtc/base/sslstreamadapter.h
|
| @@ -26,6 +26,8 @@ const int TLS_NULL_WITH_NULL_NULL = 0;
|
| const int SRTP_INVALID_CRYPTO_SUITE = 0;
|
| const int SRTP_AES128_CM_SHA1_80 = 0x0001;
|
| const int SRTP_AES128_CM_SHA1_32 = 0x0002;
|
| +const int SRTP_AEAD_AES_128_GCM = 0x0007;
|
| +const int SRTP_AEAD_AES_256_GCM = 0x0008;
|
|
|
| // 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.
|
| @@ -34,6 +36,10 @@ const int SRTP_AES128_CM_SHA1_32 = 0x0002;
|
| 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[];
|
| +// 128-bit AES GCM with 16 byte AEAD auth tag.
|
| +extern const char CS_AEAD_AES_128_GCM[];
|
| +// 256-bit AES GCM with 16 byte AEAD auth tag.
|
| +extern const char CS_AEAD_AES_256_GCM[];
|
|
|
| // Given the DTLS-SRTP protection profile ID, as defined in
|
| // https://tools.ietf.org/html/rfc4568#section-6.2 , return the SRTP profile
|
| @@ -43,6 +49,27 @@ std::string SrtpCryptoSuiteToName(int crypto_suite);
|
| // The reverse of above conversion.
|
| int SrtpCryptoSuiteFromName(const std::string& crypto_suite);
|
|
|
| +// Get key length and salt length for given crypto suite. Returns true for
|
| +// valid suites, otherwise false.
|
| +bool GetSrtpKeyAndSaltLengths(int crypto_suite, int *key_length,
|
| + int *salt_length);
|
| +
|
| +// Returns true if the given crypto suite id uses a GCM cipher.
|
| +bool IsGcmCryptoSuite(int crypto_suite);
|
| +
|
| +// Returns true if the given crypto suite name uses a GCM cipher.
|
| +bool IsGcmCryptoSuiteName(const std::string& crypto_suite);
|
| +
|
| +struct CryptoOptions {
|
| + CryptoOptions() :
|
| + enable_gcm_crypto_suites(false) {
|
| + }
|
| +
|
| + // Enable GCM crypto suites from RFC 7714 for SRTP. GCM will only be used
|
| + // if both sides enable it.
|
| + bool enable_gcm_crypto_suites;
|
| +};
|
| +
|
| // 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
|
|
|