| Index: components/security_state/core/security_state.cc
|
| diff --git a/components/security_state/core/security_state.cc b/components/security_state/core/security_state.cc
|
| index ef7e0a844148d8e10b4609fd30248b3c98263fa9..d5e867ed6de8ae7ea425a6ac330887c8a8ac19c3 100644
|
| --- a/components/security_state/core/security_state.cc
|
| +++ b/components/security_state/core/security_state.cc
|
| @@ -84,27 +84,6 @@ SecurityLevel GetSecurityLevelForNonSecureFieldTrial(
|
| return level;
|
| }
|
|
|
| -SHA1DeprecationStatus GetSHA1DeprecationStatus(
|
| - const VisibleSecurityState& visible_security_state) {
|
| - if (!visible_security_state.certificate ||
|
| - !(visible_security_state.cert_status &
|
| - net::CERT_STATUS_SHA1_SIGNATURE_PRESENT))
|
| - return NO_DEPRECATED_SHA1;
|
| -
|
| - // The internal representation of the dates for UI treatment of SHA-1.
|
| - // See http://crbug.com/401365 for details.
|
| - static const int64_t kJanuary2017 = INT64_C(13127702400000000);
|
| - if (visible_security_state.certificate->valid_expiry() >=
|
| - base::Time::FromInternalValue(kJanuary2017))
|
| - return DEPRECATED_SHA1_MAJOR;
|
| - static const int64_t kJanuary2016 = INT64_C(13096080000000000);
|
| - if (visible_security_state.certificate->valid_expiry() >=
|
| - base::Time::FromInternalValue(kJanuary2016))
|
| - return DEPRECATED_SHA1_MINOR;
|
| -
|
| - return NO_DEPRECATED_SHA1;
|
| -}
|
| -
|
| ContentStatus GetContentStatus(bool displayed, bool ran) {
|
| if (ran && displayed)
|
| return CONTENT_STATUS_DISPLAYED_AND_RAN;
|
| @@ -119,7 +98,7 @@ SecurityLevel GetSecurityLevelForRequest(
|
| const VisibleSecurityState& visible_security_state,
|
| bool used_policy_installed_certificate,
|
| const IsOriginSecureCallback& is_origin_secure_callback,
|
| - SHA1DeprecationStatus sha1_status,
|
| + bool sha1_in_chain,
|
| ContentStatus mixed_content_status,
|
| ContentStatus content_with_cert_errors_status) {
|
| DCHECK(visible_security_state.connection_info_initialized ||
|
| @@ -172,14 +151,10 @@ SecurityLevel GetSecurityLevelForRequest(
|
| return SECURE_WITH_POLICY_INSTALLED_CERT;
|
|
|
| // In most cases, SHA1 use is treated as a certificate error, in which case
|
| - // DANGEROUS will have been returned above. If SHA1 is permitted, we downgrade
|
| - // the security level to Neutral or Dangerous depending on policy.
|
| - if (sha1_status == DEPRECATED_SHA1_MAJOR ||
|
| - sha1_status == DEPRECATED_SHA1_MINOR) {
|
| - return (visible_security_state.display_sha1_from_local_anchors_as_neutral)
|
| - ? NONE
|
| - : DANGEROUS;
|
| - }
|
| + // DANGEROUS will have been returned above. If SHA1 was permitted by policy,
|
| + // downgrade the security level to Neutral.
|
| + if (sha1_in_chain)
|
| + return NONE;
|
|
|
| // Active mixed content is handled above.
|
| DCHECK_NE(CONTENT_STATUS_RAN, mixed_content_status);
|
| @@ -216,14 +191,16 @@ void SecurityInfoForRequest(
|
| MALICIOUS_CONTENT_STATUS_NONE) {
|
| security_info->security_level = GetSecurityLevelForRequest(
|
| visible_security_state, used_policy_installed_certificate,
|
| - is_origin_secure_callback, UNKNOWN_SHA1, CONTENT_STATUS_UNKNOWN,
|
| + is_origin_secure_callback, false, CONTENT_STATUS_UNKNOWN,
|
| CONTENT_STATUS_UNKNOWN);
|
| }
|
| return;
|
| }
|
| security_info->certificate = visible_security_state.certificate;
|
| - security_info->sha1_deprecation_status =
|
| - GetSHA1DeprecationStatus(visible_security_state);
|
| +
|
| + security_info->sha1_in_chain = visible_security_state.certificate &&
|
| + (visible_security_state.cert_status &
|
| + net::CERT_STATUS_SHA1_SIGNATURE_PRESENT);
|
| security_info->mixed_content_status =
|
| GetContentStatus(visible_security_state.displayed_mixed_content,
|
| visible_security_state.ran_mixed_content);
|
| @@ -252,7 +229,7 @@ void SecurityInfoForRequest(
|
|
|
| security_info->security_level = GetSecurityLevelForRequest(
|
| visible_security_state, used_policy_installed_certificate,
|
| - is_origin_secure_callback, security_info->sha1_deprecation_status,
|
| + is_origin_secure_callback, security_info->sha1_in_chain,
|
| security_info->mixed_content_status,
|
| security_info->content_with_cert_errors_status);
|
| }
|
| @@ -265,7 +242,7 @@ const base::Feature kHttpFormWarningFeature{"HttpFormWarning",
|
| SecurityInfo::SecurityInfo()
|
| : security_level(NONE),
|
| malicious_content_status(MALICIOUS_CONTENT_STATUS_NONE),
|
| - sha1_deprecation_status(NO_DEPRECATED_SHA1),
|
| + sha1_in_chain(false),
|
| mixed_content_status(CONTENT_STATUS_NONE),
|
| content_with_cert_errors_status(CONTENT_STATUS_NONE),
|
| scheme_is_cryptographic(false),
|
| @@ -307,8 +284,7 @@ VisibleSecurityState::VisibleSecurityState()
|
| ran_content_with_cert_errors(false),
|
| pkp_bypassed(false),
|
| displayed_password_field_on_http(false),
|
| - displayed_credit_card_field_on_http(false),
|
| - display_sha1_from_local_anchors_as_neutral(false) {}
|
| + displayed_credit_card_field_on_http(false) {}
|
|
|
| VisibleSecurityState::~VisibleSecurityState() {}
|
|
|
| @@ -330,9 +306,7 @@ bool VisibleSecurityState::operator==(const VisibleSecurityState& other) const {
|
| displayed_password_field_on_http ==
|
| other.displayed_password_field_on_http &&
|
| displayed_credit_card_field_on_http ==
|
| - other.displayed_credit_card_field_on_http &&
|
| - display_sha1_from_local_anchors_as_neutral ==
|
| - other.display_sha1_from_local_anchors_as_neutral);
|
| + other.displayed_credit_card_field_on_http);
|
| }
|
|
|
| } // namespace security_state
|
|
|