| 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/ssl_errors/error_info.h" | 5 #include "components/ssl_errors/error_info.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/i18n/message_formatter.h" | 9 #include "base/i18n/message_formatter.h" |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 IDS_CERT_ERROR_SUMMARY_PINNING_FAILURE_DETAILS); | 150 IDS_CERT_ERROR_SUMMARY_PINNING_FAILURE_DETAILS); |
| 151 short_description = l10n_util::GetStringUTF16( | 151 short_description = l10n_util::GetStringUTF16( |
| 152 IDS_CERT_ERROR_SUMMARY_PINNING_FAILURE_DESCRIPTION); | 152 IDS_CERT_ERROR_SUMMARY_PINNING_FAILURE_DESCRIPTION); |
| 153 break; | 153 break; |
| 154 case CERT_UNABLE_TO_CHECK_REVOCATION: | 154 case CERT_UNABLE_TO_CHECK_REVOCATION: |
| 155 details = l10n_util::GetStringUTF16( | 155 details = l10n_util::GetStringUTF16( |
| 156 IDS_CERT_ERROR_UNABLE_TO_CHECK_REVOCATION_DETAILS); | 156 IDS_CERT_ERROR_UNABLE_TO_CHECK_REVOCATION_DETAILS); |
| 157 short_description = l10n_util::GetStringUTF16( | 157 short_description = l10n_util::GetStringUTF16( |
| 158 IDS_CERT_ERROR_UNABLE_TO_CHECK_REVOCATION_DESCRIPTION); | 158 IDS_CERT_ERROR_UNABLE_TO_CHECK_REVOCATION_DESCRIPTION); |
| 159 break; | 159 break; |
| 160 case CERTIFICATE_TRANSPARENCY_REQUIRED: |
| 161 details = l10n_util::GetStringUTF16( |
| 162 IDS_CERT_ERROR_CERTIFICATE_TRANSPARENCY_REQUIRED_DETAILS); |
| 163 short_description = l10n_util::GetStringUTF16( |
| 164 IDS_CERT_ERROR_CERTIFICATE_TRANSPARENCY_REQUIRED_DESCRIPTION); |
| 165 break; |
| 160 case UNKNOWN: | 166 case UNKNOWN: |
| 161 details = l10n_util::GetStringUTF16(IDS_CERT_ERROR_UNKNOWN_ERROR_DETAILS); | 167 details = l10n_util::GetStringUTF16(IDS_CERT_ERROR_UNKNOWN_ERROR_DETAILS); |
| 162 short_description = | 168 short_description = |
| 163 l10n_util::GetStringUTF16(IDS_CERT_ERROR_UNKNOWN_ERROR_DESCRIPTION); | 169 l10n_util::GetStringUTF16(IDS_CERT_ERROR_UNKNOWN_ERROR_DESCRIPTION); |
| 164 break; | 170 break; |
| 165 default: | 171 default: |
| 166 NOTREACHED(); | 172 NOTREACHED(); |
| 167 } | 173 } |
| 168 return ErrorInfo(details, short_description); | 174 return ErrorInfo(details, short_description); |
| 169 } | 175 } |
| (...skipping 22 matching lines...) Expand all Loading... |
| 192 case net::ERR_CERT_WEAK_SIGNATURE_ALGORITHM: | 198 case net::ERR_CERT_WEAK_SIGNATURE_ALGORITHM: |
| 193 return CERT_WEAK_SIGNATURE_ALGORITHM; | 199 return CERT_WEAK_SIGNATURE_ALGORITHM; |
| 194 case net::ERR_CERT_WEAK_KEY: | 200 case net::ERR_CERT_WEAK_KEY: |
| 195 return CERT_WEAK_KEY; | 201 return CERT_WEAK_KEY; |
| 196 case net::ERR_CERT_NAME_CONSTRAINT_VIOLATION: | 202 case net::ERR_CERT_NAME_CONSTRAINT_VIOLATION: |
| 197 return CERT_NAME_CONSTRAINT_VIOLATION; | 203 return CERT_NAME_CONSTRAINT_VIOLATION; |
| 198 case net::ERR_CERT_VALIDITY_TOO_LONG: | 204 case net::ERR_CERT_VALIDITY_TOO_LONG: |
| 199 return CERT_VALIDITY_TOO_LONG; | 205 return CERT_VALIDITY_TOO_LONG; |
| 200 case net::ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN: | 206 case net::ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN: |
| 201 return CERT_PINNED_KEY_MISSING; | 207 return CERT_PINNED_KEY_MISSING; |
| 208 case net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED: |
| 209 return CERTIFICATE_TRANSPARENCY_REQUIRED; |
| 202 default: | 210 default: |
| 203 NOTREACHED(); | 211 NOTREACHED(); |
| 204 return UNKNOWN; | 212 return UNKNOWN; |
| 205 } | 213 } |
| 206 } | 214 } |
| 207 | 215 |
| 208 // static | 216 // static |
| 209 void ErrorInfo::GetErrorsForCertStatus( | 217 void ErrorInfo::GetErrorsForCertStatus( |
| 210 const scoped_refptr<net::X509Certificate>& cert, | 218 const scoped_refptr<net::X509Certificate>& cert, |
| 211 net::CertStatus cert_status, | 219 net::CertStatus cert_status, |
| 212 const GURL& url, | 220 const GURL& url, |
| 213 std::vector<ErrorInfo>* errors) { | 221 std::vector<ErrorInfo>* errors) { |
| 214 const net::CertStatus kErrorFlags[] = { | 222 const net::CertStatus kErrorFlags[] = { |
| 215 net::CERT_STATUS_COMMON_NAME_INVALID, | 223 net::CERT_STATUS_COMMON_NAME_INVALID, |
| 216 net::CERT_STATUS_DATE_INVALID, | 224 net::CERT_STATUS_DATE_INVALID, |
| 217 net::CERT_STATUS_AUTHORITY_INVALID, | 225 net::CERT_STATUS_AUTHORITY_INVALID, |
| 218 net::CERT_STATUS_NO_REVOCATION_MECHANISM, | 226 net::CERT_STATUS_NO_REVOCATION_MECHANISM, |
| 219 net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION, | 227 net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION, |
| 220 net::CERT_STATUS_REVOKED, | 228 net::CERT_STATUS_REVOKED, |
| 221 net::CERT_STATUS_INVALID, | 229 net::CERT_STATUS_INVALID, |
| 222 net::CERT_STATUS_WEAK_SIGNATURE_ALGORITHM, | 230 net::CERT_STATUS_WEAK_SIGNATURE_ALGORITHM, |
| 223 net::CERT_STATUS_WEAK_KEY, | 231 net::CERT_STATUS_WEAK_KEY, |
| 224 net::CERT_STATUS_NAME_CONSTRAINT_VIOLATION, | 232 net::CERT_STATUS_NAME_CONSTRAINT_VIOLATION, |
| 225 net::CERT_STATUS_VALIDITY_TOO_LONG, | 233 net::CERT_STATUS_VALIDITY_TOO_LONG, |
| 234 net::CERT_STATUS_CERTIFICATE_TRANSPARENCY_REQUIRED, |
| 226 }; | 235 }; |
| 227 | 236 |
| 228 const ErrorType kErrorTypes[] = { | 237 const ErrorType kErrorTypes[] = { |
| 229 CERT_COMMON_NAME_INVALID, | 238 CERT_COMMON_NAME_INVALID, |
| 230 CERT_DATE_INVALID, | 239 CERT_DATE_INVALID, |
| 231 CERT_AUTHORITY_INVALID, | 240 CERT_AUTHORITY_INVALID, |
| 232 CERT_NO_REVOCATION_MECHANISM, | 241 CERT_NO_REVOCATION_MECHANISM, |
| 233 CERT_UNABLE_TO_CHECK_REVOCATION, | 242 CERT_UNABLE_TO_CHECK_REVOCATION, |
| 234 CERT_REVOKED, | 243 CERT_REVOKED, |
| 235 CERT_INVALID, | 244 CERT_INVALID, |
| 236 CERT_WEAK_SIGNATURE_ALGORITHM, | 245 CERT_WEAK_SIGNATURE_ALGORITHM, |
| 237 CERT_WEAK_KEY, | 246 CERT_WEAK_KEY, |
| 238 CERT_NAME_CONSTRAINT_VIOLATION, | 247 CERT_NAME_CONSTRAINT_VIOLATION, |
| 239 CERT_VALIDITY_TOO_LONG, | 248 CERT_VALIDITY_TOO_LONG, |
| 249 CERTIFICATE_TRANSPARENCY_REQUIRED, |
| 240 }; | 250 }; |
| 241 DCHECK(arraysize(kErrorFlags) == arraysize(kErrorTypes)); | 251 DCHECK(arraysize(kErrorFlags) == arraysize(kErrorTypes)); |
| 242 | 252 |
| 243 for (size_t i = 0; i < arraysize(kErrorFlags); ++i) { | 253 for (size_t i = 0; i < arraysize(kErrorFlags); ++i) { |
| 244 if ((cert_status & kErrorFlags[i]) && errors) { | 254 if ((cert_status & kErrorFlags[i]) && errors) { |
| 245 errors->push_back( | 255 errors->push_back( |
| 246 ErrorInfo::CreateError(kErrorTypes[i], cert.get(), url)); | 256 ErrorInfo::CreateError(kErrorTypes[i], cert.get(), url)); |
| 247 } | 257 } |
| 248 } | 258 } |
| 249 } | 259 } |
| 250 | 260 |
| 251 } // namespace ssl_errors | 261 } // namespace ssl_errors |
| OLD | NEW |