| 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 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 403 return server_ssl_->GetDtlsSrtpCipher(retval); | 403 return server_ssl_->GetDtlsSrtpCipher(retval); |
| 404 } | 404 } |
| 405 | 405 |
| 406 bool GetPeerCertificate(bool client, rtc::SSLCertificate** cert) { | 406 bool GetPeerCertificate(bool client, rtc::SSLCertificate** cert) { |
| 407 if (client) | 407 if (client) |
| 408 return client_ssl_->GetPeerCertificate(cert); | 408 return client_ssl_->GetPeerCertificate(cert); |
| 409 else | 409 else |
| 410 return server_ssl_->GetPeerCertificate(cert); | 410 return server_ssl_->GetPeerCertificate(cert); |
| 411 } | 411 } |
| 412 | 412 |
| 413 bool GetSslCipherSuite(bool client, uint16_t* retval) { | 413 bool GetSslCipher(bool client, std::string *retval) { |
| 414 if (client) | 414 if (client) |
| 415 return client_ssl_->GetSslCipherSuite(retval); | 415 return client_ssl_->GetSslCipher(retval); |
| 416 else | 416 else |
| 417 return server_ssl_->GetSslCipherSuite(retval); | 417 return server_ssl_->GetSslCipher(retval); |
| 418 } | 418 } |
| 419 | 419 |
| 420 bool ExportKeyingMaterial(const char *label, | 420 bool ExportKeyingMaterial(const char *label, |
| 421 const unsigned char *context, | 421 const unsigned char *context, |
| 422 size_t context_len, | 422 size_t context_len, |
| 423 bool use_context, | 423 bool use_context, |
| 424 bool client, | 424 bool client, |
| 425 unsigned char *result, | 425 unsigned char *result, |
| 426 size_t result_len) { | 426 size_t result_len) { |
| 427 if (client) | 427 if (client) |
| (...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 960 // It's kCERT_PEM | 960 // It's kCERT_PEM |
| 961 ASSERT_EQ(kCERT_PEM, server_peer_cert->ToPEMString()); | 961 ASSERT_EQ(kCERT_PEM, server_peer_cert->ToPEMString()); |
| 962 | 962 |
| 963 // It must not have a chain, because the test certs are self-signed. | 963 // It must not have a chain, because the test certs are self-signed. |
| 964 rtc::SSLCertChain* server_peer_chain; | 964 rtc::SSLCertChain* server_peer_chain; |
| 965 ASSERT_FALSE(server_peer_cert->GetChain(&server_peer_chain)); | 965 ASSERT_FALSE(server_peer_cert->GetChain(&server_peer_chain)); |
| 966 } | 966 } |
| 967 | 967 |
| 968 // Test getting the used DTLS ciphers. | 968 // Test getting the used DTLS ciphers. |
| 969 // DTLS 1.2 enabled for neither client nor server -> DTLS 1.0 will be used. | 969 // DTLS 1.2 enabled for neither client nor server -> DTLS 1.0 will be used. |
| 970 TEST_P(SSLStreamAdapterTestDTLS, TestGetSslCipherSuite) { | 970 TEST_P(SSLStreamAdapterTestDTLS, TestGetSslCipher) { |
| 971 MAYBE_SKIP_TEST(HaveDtls); | 971 MAYBE_SKIP_TEST(HaveDtls); |
| 972 SetupProtocolVersions(rtc::SSL_PROTOCOL_DTLS_10, rtc::SSL_PROTOCOL_DTLS_10); | 972 SetupProtocolVersions(rtc::SSL_PROTOCOL_DTLS_10, rtc::SSL_PROTOCOL_DTLS_10); |
| 973 TestHandshake(); | 973 TestHandshake(); |
| 974 | 974 |
| 975 uint16_t client_cipher; | 975 std::string client_cipher; |
| 976 ASSERT_TRUE(GetSslCipherSuite(true, &client_cipher)); | 976 ASSERT_TRUE(GetSslCipher(true, &client_cipher)); |
| 977 uint16_t server_cipher; | 977 std::string server_cipher; |
| 978 ASSERT_TRUE(GetSslCipherSuite(false, &server_cipher)); | 978 ASSERT_TRUE(GetSslCipher(false, &server_cipher)); |
| 979 | 979 |
| 980 ASSERT_EQ(client_cipher, server_cipher); | 980 ASSERT_EQ(client_cipher, server_cipher); |
| 981 ASSERT_EQ(rtc::SSLStreamAdapter::GetDefaultSslCipherForTest( | 981 ASSERT_EQ(rtc::SSLStreamAdapter::GetDefaultSslCipher( |
| 982 rtc::SSL_PROTOCOL_DTLS_10, ::testing::get<1>(GetParam())), | 982 rtc::SSL_PROTOCOL_DTLS_10, ::testing::get<1>(GetParam())), |
| 983 server_cipher); | 983 server_cipher); |
| 984 } | 984 } |
| 985 | 985 |
| 986 // Test getting the used DTLS 1.2 ciphers. | 986 // Test getting the used DTLS 1.2 ciphers. |
| 987 // DTLS 1.2 enabled for client and server -> DTLS 1.2 will be used. | 987 // DTLS 1.2 enabled for client and server -> DTLS 1.2 will be used. |
| 988 TEST_P(SSLStreamAdapterTestDTLS, TestGetSslCipherSuiteDtls12Both) { | 988 TEST_P(SSLStreamAdapterTestDTLS, TestGetSslCipherDtls12Both) { |
| 989 MAYBE_SKIP_TEST(HaveDtls); | 989 MAYBE_SKIP_TEST(HaveDtls); |
| 990 SetupProtocolVersions(rtc::SSL_PROTOCOL_DTLS_12, rtc::SSL_PROTOCOL_DTLS_12); | 990 SetupProtocolVersions(rtc::SSL_PROTOCOL_DTLS_12, rtc::SSL_PROTOCOL_DTLS_12); |
| 991 TestHandshake(); | 991 TestHandshake(); |
| 992 | 992 |
| 993 uint16_t client_cipher; | 993 std::string client_cipher; |
| 994 ASSERT_TRUE(GetSslCipherSuite(true, &client_cipher)); | 994 ASSERT_TRUE(GetSslCipher(true, &client_cipher)); |
| 995 uint16_t server_cipher; | 995 std::string server_cipher; |
| 996 ASSERT_TRUE(GetSslCipherSuite(false, &server_cipher)); | 996 ASSERT_TRUE(GetSslCipher(false, &server_cipher)); |
| 997 | 997 |
| 998 ASSERT_EQ(client_cipher, server_cipher); | 998 ASSERT_EQ(client_cipher, server_cipher); |
| 999 ASSERT_EQ(rtc::SSLStreamAdapter::GetDefaultSslCipherForTest( | 999 ASSERT_EQ(rtc::SSLStreamAdapter::GetDefaultSslCipher( |
| 1000 rtc::SSL_PROTOCOL_DTLS_12, ::testing::get<1>(GetParam())), | 1000 rtc::SSL_PROTOCOL_DTLS_12, ::testing::get<1>(GetParam())), |
| 1001 server_cipher); | 1001 server_cipher); |
| 1002 } | 1002 } |
| 1003 | 1003 |
| 1004 // DTLS 1.2 enabled for client only -> DTLS 1.0 will be used. | 1004 // DTLS 1.2 enabled for client only -> DTLS 1.0 will be used. |
| 1005 TEST_P(SSLStreamAdapterTestDTLS, TestGetSslCipherSuiteDtls12Client) { | 1005 TEST_P(SSLStreamAdapterTestDTLS, TestGetSslCipherDtls12Client) { |
| 1006 MAYBE_SKIP_TEST(HaveDtls); | 1006 MAYBE_SKIP_TEST(HaveDtls); |
| 1007 SetupProtocolVersions(rtc::SSL_PROTOCOL_DTLS_10, rtc::SSL_PROTOCOL_DTLS_12); | 1007 SetupProtocolVersions(rtc::SSL_PROTOCOL_DTLS_10, rtc::SSL_PROTOCOL_DTLS_12); |
| 1008 TestHandshake(); | 1008 TestHandshake(); |
| 1009 | 1009 |
| 1010 uint16_t client_cipher; | 1010 std::string client_cipher; |
| 1011 ASSERT_TRUE(GetSslCipherSuite(true, &client_cipher)); | 1011 ASSERT_TRUE(GetSslCipher(true, &client_cipher)); |
| 1012 uint16_t server_cipher; | 1012 std::string server_cipher; |
| 1013 ASSERT_TRUE(GetSslCipherSuite(false, &server_cipher)); | 1013 ASSERT_TRUE(GetSslCipher(false, &server_cipher)); |
| 1014 | 1014 |
| 1015 ASSERT_EQ(client_cipher, server_cipher); | 1015 ASSERT_EQ(client_cipher, server_cipher); |
| 1016 ASSERT_EQ(rtc::SSLStreamAdapter::GetDefaultSslCipherForTest( | 1016 ASSERT_EQ(rtc::SSLStreamAdapter::GetDefaultSslCipher( |
| 1017 rtc::SSL_PROTOCOL_DTLS_10, ::testing::get<1>(GetParam())), | 1017 rtc::SSL_PROTOCOL_DTLS_10, ::testing::get<1>(GetParam())), |
| 1018 server_cipher); | 1018 server_cipher); |
| 1019 } | 1019 } |
| 1020 | 1020 |
| 1021 // DTLS 1.2 enabled for server only -> DTLS 1.0 will be used. | 1021 // DTLS 1.2 enabled for server only -> DTLS 1.0 will be used. |
| 1022 TEST_P(SSLStreamAdapterTestDTLS, TestGetSslCipherSuiteDtls12Server) { | 1022 TEST_P(SSLStreamAdapterTestDTLS, TestGetSslCipherDtls12Server) { |
| 1023 MAYBE_SKIP_TEST(HaveDtls); | 1023 MAYBE_SKIP_TEST(HaveDtls); |
| 1024 SetupProtocolVersions(rtc::SSL_PROTOCOL_DTLS_12, rtc::SSL_PROTOCOL_DTLS_10); | 1024 SetupProtocolVersions(rtc::SSL_PROTOCOL_DTLS_12, rtc::SSL_PROTOCOL_DTLS_10); |
| 1025 TestHandshake(); | 1025 TestHandshake(); |
| 1026 | 1026 |
| 1027 uint16_t client_cipher; | 1027 std::string client_cipher; |
| 1028 ASSERT_TRUE(GetSslCipherSuite(true, &client_cipher)); | 1028 ASSERT_TRUE(GetSslCipher(true, &client_cipher)); |
| 1029 uint16_t server_cipher; | 1029 std::string server_cipher; |
| 1030 ASSERT_TRUE(GetSslCipherSuite(false, &server_cipher)); | 1030 ASSERT_TRUE(GetSslCipher(false, &server_cipher)); |
| 1031 | 1031 |
| 1032 ASSERT_EQ(client_cipher, server_cipher); | 1032 ASSERT_EQ(client_cipher, server_cipher); |
| 1033 ASSERT_EQ(rtc::SSLStreamAdapter::GetDefaultSslCipherForTest( | 1033 ASSERT_EQ(rtc::SSLStreamAdapter::GetDefaultSslCipher( |
| 1034 rtc::SSL_PROTOCOL_DTLS_10, ::testing::get<1>(GetParam())), | 1034 rtc::SSL_PROTOCOL_DTLS_10, ::testing::get<1>(GetParam())), |
| 1035 server_cipher); | 1035 server_cipher); |
| 1036 } | 1036 } |
| 1037 | 1037 |
| 1038 INSTANTIATE_TEST_CASE_P(SSLStreamAdapterTestsTLS, | 1038 INSTANTIATE_TEST_CASE_P(SSLStreamAdapterTestsTLS, |
| 1039 SSLStreamAdapterTestTLS, | 1039 SSLStreamAdapterTestTLS, |
| 1040 Combine(Values(rtc::KT_RSA, rtc::KT_ECDSA), | 1040 Combine(Values(rtc::KT_RSA, rtc::KT_ECDSA), |
| 1041 Values(rtc::KT_RSA, rtc::KT_ECDSA))); | 1041 Values(rtc::KT_RSA, rtc::KT_ECDSA))); |
| 1042 INSTANTIATE_TEST_CASE_P(SSLStreamAdapterTestsDTLS, | 1042 INSTANTIATE_TEST_CASE_P(SSLStreamAdapterTestsDTLS, |
| 1043 SSLStreamAdapterTestDTLS, | 1043 SSLStreamAdapterTestDTLS, |
| 1044 Combine(Values(rtc::KT_RSA, rtc::KT_ECDSA), | 1044 Combine(Values(rtc::KT_RSA, rtc::KT_ECDSA), |
| 1045 Values(rtc::KT_RSA, rtc::KT_ECDSA))); | 1045 Values(rtc::KT_RSA, rtc::KT_ECDSA))); |
| OLD | NEW |