| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/security_state/core/security_state.h" | 5 #include "components/security_state/core/security_state.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 net::CertStatus cert_status_; | 108 net::CertStatus cert_status_; |
| 109 bool displayed_mixed_content_; | 109 bool displayed_mixed_content_; |
| 110 bool ran_mixed_content_; | 110 bool ran_mixed_content_; |
| 111 MaliciousContentStatus malicious_content_status_; | 111 MaliciousContentStatus malicious_content_status_; |
| 112 bool displayed_password_field_on_http_; | 112 bool displayed_password_field_on_http_; |
| 113 bool displayed_credit_card_field_on_http_; | 113 bool displayed_credit_card_field_on_http_; |
| 114 }; | 114 }; |
| 115 | 115 |
| 116 } // namespace | 116 } // namespace |
| 117 | 117 |
| 118 // Tests that SHA1-signed certificates expiring in 2016 downgrade the | 118 // Tests that SHA1-signed certificates, when not allowed by policy, downgrade |
| 119 // security state of the page. | 119 // the security state of the page to DANGEROUS. |
| 120 TEST(SecurityStateTest, SHA1Blocked) { |
| 121 TestSecurityStateHelper helper; |
| 122 helper.AddCertStatus(net::CERT_STATUS_WEAK_SIGNATURE_ALGORITHM); |
| 123 helper.AddCertStatus(net::CERT_STATUS_SHA1_SIGNATURE_PRESENT); |
| 124 SecurityInfo security_info; |
| 125 helper.GetSecurityInfo(&security_info); |
| 126 EXPECT_TRUE(security_info.sha1_in_chain); |
| 127 EXPECT_EQ(DANGEROUS, security_info.security_level); |
| 128 } |
| 129 |
| 130 // Tests that SHA1-signed certificates, when allowed by policy, downgrade the |
| 131 // security state of the page to NONE. |
| 120 TEST(SecurityStateTest, SHA1Warning) { | 132 TEST(SecurityStateTest, SHA1Warning) { |
| 121 TestSecurityStateHelper helper; | 133 TestSecurityStateHelper helper; |
| 122 SecurityInfo security_info; | 134 SecurityInfo security_info; |
| 123 helper.GetSecurityInfo(&security_info); | 135 helper.GetSecurityInfo(&security_info); |
| 124 EXPECT_EQ(DEPRECATED_SHA1_MINOR, security_info.sha1_deprecation_status); | 136 EXPECT_TRUE(security_info.sha1_in_chain); |
| 125 EXPECT_EQ(DANGEROUS, security_info.security_level); | 137 EXPECT_EQ(NONE, security_info.security_level); |
| 126 } | 138 } |
| 127 | 139 |
| 128 // Tests that SHA1 warnings don't interfere with the handling of mixed | 140 // Tests that SHA1-signed certificates, when allowed by policy, don't interfere |
| 129 // content. | 141 // with the handling of mixed content. |
| 130 TEST(SecurityStateTest, SHA1WarningMixedContent) { | 142 TEST(SecurityStateTest, SHA1WarningMixedContent) { |
| 131 TestSecurityStateHelper helper; | 143 TestSecurityStateHelper helper; |
| 132 helper.SetDisplayedMixedContent(true); | 144 helper.SetDisplayedMixedContent(true); |
| 133 SecurityInfo security_info1; | 145 SecurityInfo security_info1; |
| 134 helper.GetSecurityInfo(&security_info1); | 146 helper.GetSecurityInfo(&security_info1); |
| 135 EXPECT_EQ(DEPRECATED_SHA1_MINOR, security_info1.sha1_deprecation_status); | 147 EXPECT_TRUE(security_info1.sha1_in_chain); |
| 136 EXPECT_EQ(CONTENT_STATUS_DISPLAYED, security_info1.mixed_content_status); | 148 EXPECT_EQ(CONTENT_STATUS_DISPLAYED, security_info1.mixed_content_status); |
| 137 EXPECT_EQ(DANGEROUS, security_info1.security_level); | 149 EXPECT_EQ(NONE, security_info1.security_level); |
| 138 | 150 |
| 139 helper.SetDisplayedMixedContent(false); | 151 helper.SetDisplayedMixedContent(false); |
| 140 helper.SetRanMixedContent(true); | 152 helper.SetRanMixedContent(true); |
| 141 SecurityInfo security_info2; | 153 SecurityInfo security_info2; |
| 142 helper.GetSecurityInfo(&security_info2); | 154 helper.GetSecurityInfo(&security_info2); |
| 143 EXPECT_EQ(DEPRECATED_SHA1_MINOR, security_info2.sha1_deprecation_status); | 155 EXPECT_TRUE(security_info2.sha1_in_chain); |
| 144 EXPECT_EQ(CONTENT_STATUS_RAN, security_info2.mixed_content_status); | 156 EXPECT_EQ(CONTENT_STATUS_RAN, security_info2.mixed_content_status); |
| 145 EXPECT_EQ(DANGEROUS, security_info2.security_level); | 157 EXPECT_EQ(DANGEROUS, security_info2.security_level); |
| 146 } | 158 } |
| 147 | 159 |
| 148 // Tests that SHA1 warnings don't interfere with the handling of major | 160 // Tests that SHA1-signed certificates, when allowed by policy, |
| 149 // cert errors. | 161 // don't interfere with the handling of major cert errors. |
| 150 TEST(SecurityStateTest, SHA1WarningBrokenHTTPS) { | 162 TEST(SecurityStateTest, SHA1WarningBrokenHTTPS) { |
| 151 TestSecurityStateHelper helper; | 163 TestSecurityStateHelper helper; |
| 152 helper.AddCertStatus(net::CERT_STATUS_DATE_INVALID); | 164 helper.AddCertStatus(net::CERT_STATUS_DATE_INVALID); |
| 153 SecurityInfo security_info; | 165 SecurityInfo security_info; |
| 154 helper.GetSecurityInfo(&security_info); | 166 helper.GetSecurityInfo(&security_info); |
| 155 EXPECT_EQ(DEPRECATED_SHA1_MINOR, security_info.sha1_deprecation_status); | 167 EXPECT_TRUE(security_info.sha1_in_chain); |
| 156 EXPECT_EQ(DANGEROUS, security_info.security_level); | 168 EXPECT_EQ(DANGEROUS, security_info.security_level); |
| 157 } | 169 } |
| 158 | 170 |
| 159 // Tests that |security_info.is_secure_protocol_and_ciphersuite| is | 171 // Tests that |security_info.is_secure_protocol_and_ciphersuite| is |
| 160 // computed correctly. | 172 // computed correctly. |
| 161 TEST(SecurityStateTest, SecureProtocolAndCiphersuite) { | 173 TEST(SecurityStateTest, SecureProtocolAndCiphersuite) { |
| 162 TestSecurityStateHelper helper; | 174 TestSecurityStateHelper helper; |
| 163 // TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 from | 175 // TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 from |
| 164 // http://www.iana.org/assignments/tls-parameters/tls-parameters.xml#tls-param
eters-4 | 176 // http://www.iana.org/assignments/tls-parameters/tls-parameters.xml#tls-param
eters-4 |
| 165 const uint16_t ciphersuite = 0xc02f; | 177 const uint16_t ciphersuite = 0xc02f; |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 311 helper.GetSecurityInfo(&security_info); | 323 helper.GetSecurityInfo(&security_info); |
| 312 histograms.ExpectUniqueSample(kHistogramName, 2 /* HTTP_SHOW_WARNING */, 1); | 324 histograms.ExpectUniqueSample(kHistogramName, 2 /* HTTP_SHOW_WARNING */, 1); |
| 313 | 325 |
| 314 // Ensure histogram recorded correctly even without a password input. | 326 // Ensure histogram recorded correctly even without a password input. |
| 315 helper.set_displayed_password_field_on_http(false); | 327 helper.set_displayed_password_field_on_http(false); |
| 316 helper.GetSecurityInfo(&security_info); | 328 helper.GetSecurityInfo(&security_info); |
| 317 histograms.ExpectUniqueSample(kHistogramName, 2 /* HTTP_SHOW_WARNING */, 2); | 329 histograms.ExpectUniqueSample(kHistogramName, 2 /* HTTP_SHOW_WARNING */, 2); |
| 318 } | 330 } |
| 319 | 331 |
| 320 } // namespace security_state | 332 } // namespace security_state |
| OLD | NEW |