Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(406)

Side by Side Diff: components/security_state/core/security_state_unittest.cc

Issue 2761333002: Add a DevTools warning for a missing subjectAltName (Closed)
Patch Set: Feedback & fixes Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 connection_status_(net::SSL_CONNECTION_VERSION_TLS1_2 44 connection_status_(net::SSL_CONNECTION_VERSION_TLS1_2
45 << net::SSL_CONNECTION_VERSION_SHIFT), 45 << net::SSL_CONNECTION_VERSION_SHIFT),
46 cert_status_(net::CERT_STATUS_SHA1_SIGNATURE_PRESENT), 46 cert_status_(net::CERT_STATUS_SHA1_SIGNATURE_PRESENT),
47 displayed_mixed_content_(false), 47 displayed_mixed_content_(false),
48 ran_mixed_content_(false), 48 ran_mixed_content_(false),
49 malicious_content_status_(MALICIOUS_CONTENT_STATUS_NONE), 49 malicious_content_status_(MALICIOUS_CONTENT_STATUS_NONE),
50 displayed_password_field_on_http_(false), 50 displayed_password_field_on_http_(false),
51 displayed_credit_card_field_on_http_(false) {} 51 displayed_credit_card_field_on_http_(false) {}
52 virtual ~TestSecurityStateHelper() {} 52 virtual ~TestSecurityStateHelper() {}
53 53
54 void SetCertificate(scoped_refptr<net::X509Certificate> cert) {
55 cert_ = std::move(cert);
56 }
54 void set_connection_status(int connection_status) { 57 void set_connection_status(int connection_status) {
55 connection_status_ = connection_status; 58 connection_status_ = connection_status;
56 } 59 }
57 void SetCipherSuite(uint16_t ciphersuite) { 60 void SetCipherSuite(uint16_t ciphersuite) {
58 net::SSLConnectionStatusSetCipherSuite(ciphersuite, &connection_status_); 61 net::SSLConnectionStatusSetCipherSuite(ciphersuite, &connection_status_);
59 } 62 }
60 void AddCertStatus(net::CertStatus cert_status) { 63 void AddCertStatus(net::CertStatus cert_status) {
61 cert_status_ |= cert_status; 64 cert_status_ |= cert_status;
62 } 65 }
63 void SetDisplayedMixedContent(bool displayed_mixed_content) { 66 void SetDisplayedMixedContent(bool displayed_mixed_content) {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 103
101 void GetSecurityInfo(SecurityInfo* security_info) const { 104 void GetSecurityInfo(SecurityInfo* security_info) const {
102 security_state::GetSecurityInfo( 105 security_state::GetSecurityInfo(
103 GetVisibleSecurityState(), 106 GetVisibleSecurityState(),
104 false /* used policy installed certificate */, 107 false /* used policy installed certificate */,
105 base::Bind(&IsOriginSecure), security_info); 108 base::Bind(&IsOriginSecure), security_info);
106 } 109 }
107 110
108 private: 111 private:
109 GURL url_; 112 GURL url_;
110 const scoped_refptr<net::X509Certificate> cert_; 113 scoped_refptr<net::X509Certificate> cert_;
111 int connection_status_; 114 int connection_status_;
112 net::CertStatus cert_status_; 115 net::CertStatus cert_status_;
113 bool displayed_mixed_content_; 116 bool displayed_mixed_content_;
114 bool ran_mixed_content_; 117 bool ran_mixed_content_;
115 MaliciousContentStatus malicious_content_status_; 118 MaliciousContentStatus malicious_content_status_;
116 bool displayed_password_field_on_http_; 119 bool displayed_password_field_on_http_;
117 bool displayed_credit_card_field_on_http_; 120 bool displayed_credit_card_field_on_http_;
118 }; 121 };
119 122
120 } // namespace 123 } // namespace
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 histograms.ExpectTotalCount(kHistogramName, 0); 362 histograms.ExpectTotalCount(kHistogramName, 0);
360 helper.GetSecurityInfo(&security_info); 363 helper.GetSecurityInfo(&security_info);
361 histograms.ExpectUniqueSample(kHistogramName, 2 /* HTTP_SHOW_WARNING */, 1); 364 histograms.ExpectUniqueSample(kHistogramName, 2 /* HTTP_SHOW_WARNING */, 1);
362 365
363 // Ensure histogram recorded correctly even without a password input. 366 // Ensure histogram recorded correctly even without a password input.
364 helper.set_displayed_password_field_on_http(false); 367 helper.set_displayed_password_field_on_http(false);
365 helper.GetSecurityInfo(&security_info); 368 helper.GetSecurityInfo(&security_info);
366 histograms.ExpectUniqueSample(kHistogramName, 2 /* HTTP_SHOW_WARNING */, 2); 369 histograms.ExpectUniqueSample(kHistogramName, 2 /* HTTP_SHOW_WARNING */, 2);
367 } 370 }
368 371
372 TEST(SecurityStateTest, DetectSubjectAltName) {
373 TestSecurityStateHelper helper;
374
375 // Ensure subjectAltName is detected as present when the cert includes it.
376 SecurityInfo san_security_info;
377 helper.GetSecurityInfo(&san_security_info);
378 EXPECT_FALSE(san_security_info.cert_missing_subject_alt_name);
379
380 // Ensure subjectAltName is detected as missing when the cert doesn't
381 // include it.
382 scoped_refptr<net::X509Certificate> cert = net::ImportCertFromFile(
383 net::GetTestCertsDirectory(), "salesforce_com_test.pem");
384 ASSERT_TRUE(cert);
385 helper.SetCertificate(std::move(cert));
386
387 SecurityInfo no_san_security_info;
388 helper.GetSecurityInfo(&no_san_security_info);
389 EXPECT_TRUE(no_san_security_info.cert_missing_subject_alt_name);
390 }
391
369 } // namespace security_state 392 } // namespace security_state
OLDNEW
« no previous file with comments | « components/security_state/core/security_state.cc ('k') | components/security_state_strings.grdp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698