Update libjingle to 53920541.
R=mallinath@webrtc.org Review URL: https://webrtc-codereview.appspot.com/2371004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4945 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -33,6 +33,7 @@
|
||||
|
||||
#include "talk/base/gunit.h"
|
||||
#include "talk/base/helpers.h"
|
||||
#include "talk/base/scoped_ptr.h"
|
||||
#include "talk/base/ssladapter.h"
|
||||
#include "talk/base/sslconfig.h"
|
||||
#include "talk/base/sslidentity.h"
|
||||
@ -388,6 +389,13 @@ class SSLStreamAdapterTestBase : public testing::Test,
|
||||
return server_ssl_->GetDtlsSrtpCipher(retval);
|
||||
}
|
||||
|
||||
bool GetPeerCertificate(bool client, talk_base::SSLCertificate** cert) {
|
||||
if (client)
|
||||
return client_ssl_->GetPeerCertificate(cert);
|
||||
else
|
||||
return server_ssl_->GetPeerCertificate(cert);
|
||||
}
|
||||
|
||||
bool ExportKeyingMaterial(const char *label,
|
||||
const unsigned char *context,
|
||||
size_t context_len,
|
||||
@ -885,3 +893,42 @@ TEST_F(SSLStreamAdapterTestDTLSFromPEMStrings, TestTransfer) {
|
||||
TestHandshake();
|
||||
TestTransfer(100);
|
||||
}
|
||||
|
||||
// Test getting the remote certificate.
|
||||
TEST_F(SSLStreamAdapterTestDTLSFromPEMStrings, TestDTLSGetPeerCertificate) {
|
||||
MAYBE_SKIP_TEST(HaveDtls);
|
||||
|
||||
// Peer certificates haven't been received yet.
|
||||
talk_base::scoped_ptr<talk_base::SSLCertificate> client_peer_cert;
|
||||
ASSERT_FALSE(GetPeerCertificate(true, client_peer_cert.accept()));
|
||||
ASSERT_FALSE(client_peer_cert != NULL);
|
||||
|
||||
talk_base::scoped_ptr<talk_base::SSLCertificate> server_peer_cert;
|
||||
ASSERT_FALSE(GetPeerCertificate(false, server_peer_cert.accept()));
|
||||
ASSERT_FALSE(server_peer_cert != NULL);
|
||||
|
||||
TestHandshake();
|
||||
|
||||
// The client should have a peer certificate after the handshake.
|
||||
ASSERT_TRUE(GetPeerCertificate(true, client_peer_cert.accept()));
|
||||
ASSERT_TRUE(client_peer_cert != NULL);
|
||||
|
||||
// It's not kCERT_PEM.
|
||||
std::string client_peer_string = client_peer_cert->ToPEMString();
|
||||
ASSERT_NE(kCERT_PEM, client_peer_string);
|
||||
|
||||
// It must not have a chain, because the test certs are self-signed.
|
||||
talk_base::SSLCertChain* client_peer_chain;
|
||||
ASSERT_FALSE(client_peer_cert->GetChain(&client_peer_chain));
|
||||
|
||||
// The server should have a peer certificate after the handshake.
|
||||
ASSERT_TRUE(GetPeerCertificate(false, server_peer_cert.accept()));
|
||||
ASSERT_TRUE(server_peer_cert != NULL);
|
||||
|
||||
// It's kCERT_PEM
|
||||
ASSERT_EQ(kCERT_PEM, server_peer_cert->ToPEMString());
|
||||
|
||||
// It must not have a chain, because the test certs are self-signed.
|
||||
talk_base::SSLCertChain* server_peer_chain;
|
||||
ASSERT_FALSE(server_peer_cert->GetChain(&server_peer_chain));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user