Fix OpenSSLIdentity::GetReference.
It didn't retain the chain. Bug: none Change-Id: I8e88c5e060d91d8f5e7ebade6ea8e65b3e5a416e Reviewed-on: https://webrtc-review.googlesource.com/28360 Commit-Queue: David Benjamin <davidben@webrtc.org> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21145}
This commit is contained in:

committed by
Commit Bot

parent
062a8ead3b
commit
ea84b6bf49
@ -598,7 +598,7 @@ const OpenSSLCertificate& OpenSSLIdentity::certificate() const {
|
|||||||
|
|
||||||
OpenSSLIdentity* OpenSSLIdentity::GetReference() const {
|
OpenSSLIdentity* OpenSSLIdentity::GetReference() const {
|
||||||
return new OpenSSLIdentity(WrapUnique(key_pair_->GetReference()),
|
return new OpenSSLIdentity(WrapUnique(key_pair_->GetReference()),
|
||||||
WrapUnique(certificate().GetReference()));
|
WrapUnique(cert_chain_->Copy()));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool OpenSSLIdentity::ConfigureIdentity(SSL_CTX* ctx) {
|
bool OpenSSLIdentity::ConfigureIdentity(SSL_CTX* ctx) {
|
||||||
|
@ -991,6 +991,21 @@ TEST_F(SSLStreamAdapterTestDTLSCertChain, TwoCertHandshake) {
|
|||||||
EXPECT_EQ(kCACert, peer_cert_chain->Get(1).ToPEMString());
|
EXPECT_EQ(kCACert, peer_cert_chain->Get(1).ToPEMString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(SSLStreamAdapterTestDTLSCertChain, TwoCertHandshakeWithCopy) {
|
||||||
|
std::unique_ptr<rtc::SSLIdentity> identity(
|
||||||
|
rtc::SSLIdentity::FromPEMChainStrings(kRSA_PRIVATE_KEY_PEM,
|
||||||
|
std::string(kCERT_PEM) + kCACert));
|
||||||
|
server_identity_ = identity->GetReference();
|
||||||
|
server_ssl_->SetIdentity(server_identity_);
|
||||||
|
TestHandshake();
|
||||||
|
std::unique_ptr<rtc::SSLCertChain> peer_cert_chain =
|
||||||
|
client_ssl_->GetPeerSSLCertChain();
|
||||||
|
ASSERT_NE(nullptr, peer_cert_chain);
|
||||||
|
ASSERT_EQ(2u, peer_cert_chain->GetSize());
|
||||||
|
EXPECT_EQ(kCERT_PEM, peer_cert_chain->Get(0).ToPEMString());
|
||||||
|
EXPECT_EQ(kCACert, peer_cert_chain->Get(1).ToPEMString());
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(SSLStreamAdapterTestDTLSCertChain, ThreeCertHandshake) {
|
TEST_F(SSLStreamAdapterTestDTLSCertChain, ThreeCertHandshake) {
|
||||||
server_identity_ = rtc::SSLIdentity::FromPEMChainStrings(
|
server_identity_ = rtc::SSLIdentity::FromPEMChainStrings(
|
||||||
kRSA_PRIVATE_KEY_PEM, std::string(kCERT_PEM) + kIntCert1 + kCACert);
|
kRSA_PRIVATE_KEY_PEM, std::string(kCERT_PEM) + kIntCert1 + kCACert);
|
||||||
|
Reference in New Issue
Block a user