| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2011 The WebRTC Project Authors. All rights reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 if (negotiated_dtls_ && expected_crypto_suite) { | 222 if (negotiated_dtls_ && expected_crypto_suite) { |
| 223 ASSERT_TRUE(rv); | 223 ASSERT_TRUE(rv); |
| 224 | 224 |
| 225 ASSERT_EQ(crypto_suite, expected_crypto_suite); | 225 ASSERT_EQ(crypto_suite, expected_crypto_suite); |
| 226 } else { | 226 } else { |
| 227 ASSERT_FALSE(rv); | 227 ASSERT_FALSE(rv); |
| 228 } | 228 } |
| 229 } | 229 } |
| 230 } | 230 } |
| 231 | 231 |
| 232 void CheckSsl(int expected_cipher) { | 232 void CheckSsl() { |
| 233 for (std::vector<cricket::DtlsTransportChannelWrapper*>::iterator it = | 233 for (std::vector<cricket::DtlsTransportChannelWrapper*>::iterator it = |
| 234 channels_.begin(); it != channels_.end(); ++it) { | 234 channels_.begin(); it != channels_.end(); ++it) { |
| 235 int cipher; | 235 int cipher; |
| 236 | 236 |
| 237 bool rv = (*it)->GetSslCipherSuite(&cipher); | 237 bool rv = (*it)->GetSslCipherSuite(&cipher); |
| 238 if (negotiated_dtls_ && expected_cipher) { | 238 if (negotiated_dtls_) { |
| 239 ASSERT_TRUE(rv); | 239 ASSERT_TRUE(rv); |
| 240 | 240 |
| 241 ASSERT_EQ(cipher, expected_cipher); | 241 EXPECT_TRUE( |
| 242 rtc::SSLStreamAdapter::IsAcceptableCipher(cipher, rtc::KT_DEFAULT)); |
| 242 } else { | 243 } else { |
| 243 ASSERT_FALSE(rv); | 244 ASSERT_FALSE(rv); |
| 244 } | 245 } |
| 245 } | 246 } |
| 246 } | 247 } |
| 247 | 248 |
| 248 void SendPackets(size_t channel, size_t size, size_t count, bool srtp) { | 249 void SendPackets(size_t channel, size_t size, size_t count, bool srtp) { |
| 249 ASSERT(channel < channels_.size()); | 250 ASSERT(channel < channels_.size()); |
| 250 rtc::scoped_ptr<char[]> packet(new char[size]); | 251 rtc::scoped_ptr<char[]> packet(new char[size]); |
| 251 size_t sent = 0; | 252 size_t sent = 0; |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 466 } | 467 } |
| 467 | 468 |
| 468 // Check that we negotiated the right ciphers. | 469 // Check that we negotiated the right ciphers. |
| 469 if (use_dtls_srtp_) { | 470 if (use_dtls_srtp_) { |
| 470 client1_.CheckSrtp(rtc::SRTP_AES128_CM_SHA1_80); | 471 client1_.CheckSrtp(rtc::SRTP_AES128_CM_SHA1_80); |
| 471 client2_.CheckSrtp(rtc::SRTP_AES128_CM_SHA1_80); | 472 client2_.CheckSrtp(rtc::SRTP_AES128_CM_SHA1_80); |
| 472 } else { | 473 } else { |
| 473 client1_.CheckSrtp(rtc::SRTP_INVALID_CRYPTO_SUITE); | 474 client1_.CheckSrtp(rtc::SRTP_INVALID_CRYPTO_SUITE); |
| 474 client2_.CheckSrtp(rtc::SRTP_INVALID_CRYPTO_SUITE); | 475 client2_.CheckSrtp(rtc::SRTP_INVALID_CRYPTO_SUITE); |
| 475 } | 476 } |
| 476 client1_.CheckSsl(rtc::SSLStreamAdapter::GetDefaultSslCipherForTest( | 477 |
| 477 ssl_expected_version_, rtc::KT_DEFAULT)); | 478 client1_.CheckSsl(); |
| 478 client2_.CheckSsl(rtc::SSLStreamAdapter::GetDefaultSslCipherForTest( | 479 client2_.CheckSsl(); |
| 479 ssl_expected_version_, rtc::KT_DEFAULT)); | |
| 480 | 480 |
| 481 return true; | 481 return true; |
| 482 } | 482 } |
| 483 | 483 |
| 484 bool Connect() { | 484 bool Connect() { |
| 485 // By default, Client1 will be Server and Client2 will be Client. | 485 // By default, Client1 will be Server and Client2 will be Client. |
| 486 return Connect(cricket::CONNECTIONROLE_ACTPASS, | 486 return Connect(cricket::CONNECTIONROLE_ACTPASS, |
| 487 cricket::CONNECTIONROLE_ACTIVE); | 487 cricket::CONNECTIONROLE_ACTIVE); |
| 488 } | 488 } |
| 489 | 489 |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 625 } | 625 } |
| 626 | 626 |
| 627 // Connect with B doing DTLS and A not, and transfer some data. | 627 // Connect with B doing DTLS and A not, and transfer some data. |
| 628 TEST_F(DtlsTransportChannelTest, TestTransferDtlsNotOffered) { | 628 TEST_F(DtlsTransportChannelTest, TestTransferDtlsNotOffered) { |
| 629 PrepareDtls(false, true, rtc::KT_DEFAULT); | 629 PrepareDtls(false, true, rtc::KT_DEFAULT); |
| 630 ASSERT_TRUE(Connect()); | 630 ASSERT_TRUE(Connect()); |
| 631 TestTransfer(0, 1000, 100, false); | 631 TestTransfer(0, 1000, 100, false); |
| 632 } | 632 } |
| 633 | 633 |
| 634 // Create two channels with DTLS 1.0 and check ciphers. | 634 // Create two channels with DTLS 1.0 and check ciphers. |
| 635 // Disabled due to new BoringSSLL version, see webrtc:5634 | 635 TEST_F(DtlsTransportChannelTest, TestDtls12None) { |
| 636 TEST_F(DtlsTransportChannelTest, DISABLED_TestDtls12None) { | |
| 637 MAYBE_SKIP_TEST(HaveDtls); | 636 MAYBE_SKIP_TEST(HaveDtls); |
| 638 SetChannelCount(2); | 637 SetChannelCount(2); |
| 639 PrepareDtls(true, true, rtc::KT_DEFAULT); | 638 PrepareDtls(true, true, rtc::KT_DEFAULT); |
| 640 SetMaxProtocolVersions(rtc::SSL_PROTOCOL_DTLS_10, rtc::SSL_PROTOCOL_DTLS_10); | 639 SetMaxProtocolVersions(rtc::SSL_PROTOCOL_DTLS_10, rtc::SSL_PROTOCOL_DTLS_10); |
| 641 ASSERT_TRUE(Connect()); | 640 ASSERT_TRUE(Connect()); |
| 642 } | 641 } |
| 643 | 642 |
| 644 // Create two channels with DTLS 1.2 and check ciphers. | 643 // Create two channels with DTLS 1.2 and check ciphers. |
| 645 TEST_F(DtlsTransportChannelTest, TestDtls12Both) { | 644 TEST_F(DtlsTransportChannelTest, TestDtls12Both) { |
| 646 MAYBE_SKIP_TEST(HaveDtls); | 645 MAYBE_SKIP_TEST(HaveDtls); |
| 647 SetChannelCount(2); | 646 SetChannelCount(2); |
| 648 PrepareDtls(true, true, rtc::KT_DEFAULT); | 647 PrepareDtls(true, true, rtc::KT_DEFAULT); |
| 649 SetMaxProtocolVersions(rtc::SSL_PROTOCOL_DTLS_12, rtc::SSL_PROTOCOL_DTLS_12); | 648 SetMaxProtocolVersions(rtc::SSL_PROTOCOL_DTLS_12, rtc::SSL_PROTOCOL_DTLS_12); |
| 650 ASSERT_TRUE(Connect()); | 649 ASSERT_TRUE(Connect()); |
| 651 } | 650 } |
| 652 | 651 |
| 653 // Create two channels with DTLS 1.0 / DTLS 1.2 and check ciphers. | 652 // Create two channels with DTLS 1.0 / DTLS 1.2 and check ciphers. |
| 654 // Disabled due to new BoringSSLL version, see webrtc:5634 | 653 TEST_F(DtlsTransportChannelTest, TestDtls12Client1) { |
| 655 TEST_F(DtlsTransportChannelTest, DISABLED_TestDtls12Client1) { | |
| 656 MAYBE_SKIP_TEST(HaveDtls); | 654 MAYBE_SKIP_TEST(HaveDtls); |
| 657 SetChannelCount(2); | 655 SetChannelCount(2); |
| 658 PrepareDtls(true, true, rtc::KT_DEFAULT); | 656 PrepareDtls(true, true, rtc::KT_DEFAULT); |
| 659 SetMaxProtocolVersions(rtc::SSL_PROTOCOL_DTLS_12, rtc::SSL_PROTOCOL_DTLS_10); | 657 SetMaxProtocolVersions(rtc::SSL_PROTOCOL_DTLS_12, rtc::SSL_PROTOCOL_DTLS_10); |
| 660 ASSERT_TRUE(Connect()); | 658 ASSERT_TRUE(Connect()); |
| 661 } | 659 } |
| 662 | 660 |
| 663 // Create two channels with DTLS 1.2 / DTLS 1.0 and check ciphers. | 661 // Create two channels with DTLS 1.2 / DTLS 1.0 and check ciphers. |
| 664 // Disabled due to new BoringSSLL version, see webrtc:5634 | 662 TEST_F(DtlsTransportChannelTest, TestDtls12Client2) { |
| 665 TEST_F(DtlsTransportChannelTest, DISABLED_TestDtls12Client2) { | |
| 666 MAYBE_SKIP_TEST(HaveDtls); | 663 MAYBE_SKIP_TEST(HaveDtls); |
| 667 SetChannelCount(2); | 664 SetChannelCount(2); |
| 668 PrepareDtls(true, true, rtc::KT_DEFAULT); | 665 PrepareDtls(true, true, rtc::KT_DEFAULT); |
| 669 SetMaxProtocolVersions(rtc::SSL_PROTOCOL_DTLS_10, rtc::SSL_PROTOCOL_DTLS_12); | 666 SetMaxProtocolVersions(rtc::SSL_PROTOCOL_DTLS_10, rtc::SSL_PROTOCOL_DTLS_12); |
| 670 ASSERT_TRUE(Connect()); | 667 ASSERT_TRUE(Connect()); |
| 671 } | 668 } |
| 672 | 669 |
| 673 // Connect with DTLS, negotiate DTLS-SRTP, and transfer SRTP using bypass. | 670 // Connect with DTLS, negotiate DTLS-SRTP, and transfer SRTP using bypass. |
| 674 TEST_F(DtlsTransportChannelTest, TestTransferDtlsSrtp) { | 671 TEST_F(DtlsTransportChannelTest, TestTransferDtlsSrtp) { |
| 675 MAYBE_SKIP_TEST(HaveDtlsSrtp); | 672 MAYBE_SKIP_TEST(HaveDtlsSrtp); |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 886 // Each side's remote certificate is the other side's local certificate. | 883 // Each side's remote certificate is the other side's local certificate. |
| 887 ASSERT_TRUE( | 884 ASSERT_TRUE( |
| 888 client1_.transport()->GetRemoteSSLCertificate(remote_cert1.accept())); | 885 client1_.transport()->GetRemoteSSLCertificate(remote_cert1.accept())); |
| 889 ASSERT_EQ(remote_cert1->ToPEMString(), | 886 ASSERT_EQ(remote_cert1->ToPEMString(), |
| 890 certificate2->ssl_certificate().ToPEMString()); | 887 certificate2->ssl_certificate().ToPEMString()); |
| 891 ASSERT_TRUE( | 888 ASSERT_TRUE( |
| 892 client2_.transport()->GetRemoteSSLCertificate(remote_cert2.accept())); | 889 client2_.transport()->GetRemoteSSLCertificate(remote_cert2.accept())); |
| 893 ASSERT_EQ(remote_cert2->ToPEMString(), | 890 ASSERT_EQ(remote_cert2->ToPEMString(), |
| 894 certificate1->ssl_certificate().ToPEMString()); | 891 certificate1->ssl_certificate().ToPEMString()); |
| 895 } | 892 } |
| OLD | NEW |