OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/ssl/ssl_error_info.h" | 5 #include "chrome/browser/ssl/ssl_error_info.h" |
6 | 6 |
7 #include "base/i18n/time_formatting.h" | 7 #include "base/i18n/time_formatting.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "chrome/common/time_format.h" | 9 #include "chrome/common/time_format.h" |
10 #include "content/public/browser/cert_store.h" | 10 #include "content/public/browser/cert_store.h" |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 details = l10n_util::GetStringFUTF16( | 192 details = l10n_util::GetStringFUTF16( |
193 IDS_CERT_ERROR_WEAK_KEY_DETAILS, UTF8ToUTF16(request_url.host())); | 193 IDS_CERT_ERROR_WEAK_KEY_DETAILS, UTF8ToUTF16(request_url.host())); |
194 short_description = l10n_util::GetStringUTF16( | 194 short_description = l10n_util::GetStringUTF16( |
195 IDS_CERT_ERROR_WEAK_KEY_DESCRIPTION); | 195 IDS_CERT_ERROR_WEAK_KEY_DESCRIPTION); |
196 extra_info.push_back( | 196 extra_info.push_back( |
197 l10n_util::GetStringUTF16(IDS_CERT_ERROR_EXTRA_INFO_1)); | 197 l10n_util::GetStringUTF16(IDS_CERT_ERROR_EXTRA_INFO_1)); |
198 extra_info.push_back( | 198 extra_info.push_back( |
199 l10n_util::GetStringUTF16( | 199 l10n_util::GetStringUTF16( |
200 IDS_CERT_ERROR_WEAK_KEY_EXTRA_INFO_2)); | 200 IDS_CERT_ERROR_WEAK_KEY_EXTRA_INFO_2)); |
201 break; | 201 break; |
| 202 case CERT_TOO_LONG_VALIDITY: |
| 203 title = l10n_util::GetStringUTF16(IDS_CERT_ERROR_TOO_LONG_VALIDITY_TITLE); |
| 204 details = l10n_util::GetStringFUTF16( |
| 205 IDS_CERT_ERROR_TOO_LONG_VALIDITY_DETAILS, |
| 206 UTF8ToUTF16(request_url.host())); |
| 207 short_description = l10n_util::GetStringUTF16( |
| 208 IDS_CERT_ERROR_TOO_LONG_VALIDITY_DESCRIPTION); |
| 209 extra_info.push_back( |
| 210 l10n_util::GetStringUTF16(IDS_CERT_ERROR_EXTRA_INFO_1)); |
| 211 extra_info.push_back( |
| 212 l10n_util::GetStringUTF16( |
| 213 IDS_CERT_ERROR_TOO_LONG_VALIDITY_EXTRA_INFO_2)); |
| 214 break; |
202 case UNKNOWN: | 215 case UNKNOWN: |
203 title = l10n_util::GetStringUTF16(IDS_CERT_ERROR_UNKNOWN_ERROR_TITLE); | 216 title = l10n_util::GetStringUTF16(IDS_CERT_ERROR_UNKNOWN_ERROR_TITLE); |
204 details = l10n_util::GetStringUTF16(IDS_CERT_ERROR_UNKNOWN_ERROR_DETAILS); | 217 details = l10n_util::GetStringUTF16(IDS_CERT_ERROR_UNKNOWN_ERROR_DETAILS); |
205 short_description = | 218 short_description = |
206 l10n_util::GetStringUTF16(IDS_CERT_ERROR_UNKNOWN_ERROR_DESCRIPTION); | 219 l10n_util::GetStringUTF16(IDS_CERT_ERROR_UNKNOWN_ERROR_DESCRIPTION); |
207 break; | 220 break; |
208 default: | 221 default: |
209 NOTREACHED(); | 222 NOTREACHED(); |
210 } | 223 } |
211 return SSLErrorInfo(title, details, short_description, extra_info); | 224 return SSLErrorInfo(title, details, short_description, extra_info); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 std::vector<SSLErrorInfo>* errors) { | 263 std::vector<SSLErrorInfo>* errors) { |
251 const net::CertStatus kErrorFlags[] = { | 264 const net::CertStatus kErrorFlags[] = { |
252 net::CERT_STATUS_COMMON_NAME_INVALID, | 265 net::CERT_STATUS_COMMON_NAME_INVALID, |
253 net::CERT_STATUS_DATE_INVALID, | 266 net::CERT_STATUS_DATE_INVALID, |
254 net::CERT_STATUS_AUTHORITY_INVALID, | 267 net::CERT_STATUS_AUTHORITY_INVALID, |
255 net::CERT_STATUS_NO_REVOCATION_MECHANISM, | 268 net::CERT_STATUS_NO_REVOCATION_MECHANISM, |
256 net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION, | 269 net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION, |
257 net::CERT_STATUS_REVOKED, | 270 net::CERT_STATUS_REVOKED, |
258 net::CERT_STATUS_INVALID, | 271 net::CERT_STATUS_INVALID, |
259 net::CERT_STATUS_WEAK_SIGNATURE_ALGORITHM, | 272 net::CERT_STATUS_WEAK_SIGNATURE_ALGORITHM, |
260 net::CERT_STATUS_WEAK_KEY | 273 net::CERT_STATUS_WEAK_KEY, |
| 274 net::CERT_STATUS_TOO_LONG_VALIDITY |
261 }; | 275 }; |
262 | 276 |
263 const ErrorType kErrorTypes[] = { | 277 const ErrorType kErrorTypes[] = { |
264 CERT_COMMON_NAME_INVALID, | 278 CERT_COMMON_NAME_INVALID, |
265 CERT_DATE_INVALID, | 279 CERT_DATE_INVALID, |
266 CERT_AUTHORITY_INVALID, | 280 CERT_AUTHORITY_INVALID, |
267 CERT_NO_REVOCATION_MECHANISM, | 281 CERT_NO_REVOCATION_MECHANISM, |
268 CERT_UNABLE_TO_CHECK_REVOCATION, | 282 CERT_UNABLE_TO_CHECK_REVOCATION, |
269 CERT_REVOKED, | 283 CERT_REVOKED, |
270 CERT_INVALID, | 284 CERT_INVALID, |
271 CERT_WEAK_SIGNATURE_ALGORITHM, | 285 CERT_WEAK_SIGNATURE_ALGORITHM, |
272 CERT_WEAK_KEY | 286 CERT_WEAK_KEY, |
| 287 CERT_TOO_LONG_VALIDITY |
273 }; | 288 }; |
274 DCHECK(arraysize(kErrorFlags) == arraysize(kErrorTypes)); | 289 DCHECK(arraysize(kErrorFlags) == arraysize(kErrorTypes)); |
275 | 290 |
276 scoped_refptr<net::X509Certificate> cert = NULL; | 291 scoped_refptr<net::X509Certificate> cert = NULL; |
277 int count = 0; | 292 int count = 0; |
278 for (size_t i = 0; i < arraysize(kErrorFlags); ++i) { | 293 for (size_t i = 0; i < arraysize(kErrorFlags); ++i) { |
279 if (cert_status & kErrorFlags[i]) { | 294 if (cert_status & kErrorFlags[i]) { |
280 count++; | 295 count++; |
281 if (!cert.get()) { | 296 if (!cert.get()) { |
282 bool r = content::CertStore::GetInstance()->RetrieveCert( | 297 bool r = content::CertStore::GetInstance()->RetrieveCert( |
283 cert_id, &cert); | 298 cert_id, &cert); |
284 DCHECK(r); | 299 DCHECK(r); |
285 } | 300 } |
286 if (errors) | 301 if (errors) { |
287 errors->push_back( | 302 errors->push_back( |
288 SSLErrorInfo::CreateError(kErrorTypes[i], cert.get(), url)); | 303 SSLErrorInfo::CreateError(kErrorTypes[i], cert.get(), url)); |
| 304 } |
289 } | 305 } |
290 } | 306 } |
291 return count; | 307 return count; |
292 } | 308 } |
OLD | NEW |