This CL adds an API to the SSL stream adapters and transport channels to get the SSL cipher that was negotiated with the remote peer.

BUG=3976
R=davidben@chromium.org, juberti@webrtc.org, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/26009004

Cr-Commit-Position: refs/heads/master@{#8275}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8275 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
pthatcher@webrtc.org
2015-02-06 19:46:53 +00:00
parent 63da1dd972
commit 1d11c8202b
19 changed files with 273 additions and 5 deletions

View File

@ -388,6 +388,13 @@ class SSLStreamAdapterTestBase : public testing::Test,
return server_ssl_->GetPeerCertificate(cert);
}
bool GetSslCipher(bool client, std::string *retval) {
if (client)
return client_ssl_->GetSslCipher(retval);
else
return server_ssl_->GetSslCipher(retval);
}
bool ExportKeyingMaterial(const char *label,
const unsigned char *context,
size_t context_len,
@ -939,3 +946,17 @@ TEST_F(SSLStreamAdapterTestDTLSFromPEMStrings, TestDTLSGetPeerCertificate) {
rtc::SSLCertChain* server_peer_chain;
ASSERT_FALSE(server_peer_cert->GetChain(&server_peer_chain));
}
// Test getting the used DTLS ciphers.
TEST_F(SSLStreamAdapterTestDTLS, TestGetSslCipher) {
MAYBE_SKIP_TEST(HaveDtls);
TestHandshake();
std::string client_cipher;
ASSERT_TRUE(GetSslCipher(true, &client_cipher));
std::string server_cipher;
ASSERT_TRUE(GetSslCipher(false, &server_cipher));
ASSERT_EQ(client_cipher, server_cipher);
ASSERT_EQ(rtc::SSLStreamAdapter::GetDefaultSslCipher(), client_cipher);
}