| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
| 8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
| 9 #include "chrome/browser/cert_store.h" | 9 #include "chrome/browser/cert_store.h" |
| 10 #include "chrome/common/time_format.h" | 10 #include "chrome/common/time_format.h" |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 l10n_util::GetString(IDS_CERT_ERROR_EXTRA_INFO_1)); | 146 l10n_util::GetString(IDS_CERT_ERROR_EXTRA_INFO_1)); |
| 147 extra_info.push_back( | 147 extra_info.push_back( |
| 148 l10n_util::GetString(IDS_CERT_ERROR_REVOKED_CERT_EXTRA_INFO_2)); | 148 l10n_util::GetString(IDS_CERT_ERROR_REVOKED_CERT_EXTRA_INFO_2)); |
| 149 break; | 149 break; |
| 150 case CERT_INVALID: | 150 case CERT_INVALID: |
| 151 title = l10n_util::GetString(IDS_CERT_ERROR_INVALID_CERT_TITLE); | 151 title = l10n_util::GetString(IDS_CERT_ERROR_INVALID_CERT_TITLE); |
| 152 details = l10n_util::GetString(IDS_CERT_ERROR_INVALID_CERT_DETAILS); | 152 details = l10n_util::GetString(IDS_CERT_ERROR_INVALID_CERT_DETAILS); |
| 153 short_description = | 153 short_description = |
| 154 l10n_util::GetString(IDS_CERT_ERROR_INVALID_CERT_DESCRIPTION); | 154 l10n_util::GetString(IDS_CERT_ERROR_INVALID_CERT_DESCRIPTION); |
| 155 break; | 155 break; |
| 156 case CERT_WEAK_SIGNATURE_ALGORITHM: |
| 157 title = |
| 158 l10n_util::GetString(IDS_CERT_ERROR_WEAK_SIGNATURE_ALGORITHM_TITLE); |
| 159 details = l10n_util::GetStringF( |
| 160 IDS_CERT_ERROR_WEAK_SIGNATURE_ALGORITHM_DETAILS, |
| 161 UTF8ToWide(request_url.host())); |
| 162 short_description = l10n_util::GetString( |
| 163 IDS_CERT_ERROR_WEAK_SIGNATURE_ALGORITHM_DESCRIPTION); |
| 164 extra_info.push_back( |
| 165 l10n_util::GetString(IDS_CERT_ERROR_EXTRA_INFO_1)); |
| 166 extra_info.push_back( |
| 167 l10n_util::GetString( |
| 168 IDS_CERT_ERROR_WEAK_SIGNATURE_ALGORITHM_EXTRA_INFO_2)); |
| 169 break; |
| 156 case MIXED_CONTENTS: | 170 case MIXED_CONTENTS: |
| 157 title = l10n_util::GetString(IDS_SSL_MIXED_CONTENT_TITLE); | 171 title = l10n_util::GetString(IDS_SSL_MIXED_CONTENT_TITLE); |
| 158 details = l10n_util::GetString(IDS_SSL_MIXED_CONTENT_DETAILS); | 172 details = l10n_util::GetString(IDS_SSL_MIXED_CONTENT_DETAILS); |
| 159 short_description = | 173 short_description = |
| 160 l10n_util::GetString(IDS_SSL_MIXED_CONTENT_DESCRIPTION); | 174 l10n_util::GetString(IDS_SSL_MIXED_CONTENT_DESCRIPTION); |
| 161 break; | 175 break; |
| 162 case UNSAFE_CONTENTS: | 176 case UNSAFE_CONTENTS: |
| 163 title = l10n_util::GetString(IDS_SSL_UNSAFE_CONTENT_TITLE); | 177 title = l10n_util::GetString(IDS_SSL_UNSAFE_CONTENT_TITLE); |
| 164 details = l10n_util::GetString(IDS_SSL_UNSAFE_CONTENT_DETAILS); | 178 details = l10n_util::GetString(IDS_SSL_UNSAFE_CONTENT_DETAILS); |
| 165 short_description = | 179 short_description = |
| (...skipping 26 matching lines...) Expand all Loading... |
| 192 case net::ERR_CERT_CONTAINS_ERRORS: | 206 case net::ERR_CERT_CONTAINS_ERRORS: |
| 193 return CERT_CONTAINS_ERRORS; | 207 return CERT_CONTAINS_ERRORS; |
| 194 case net::ERR_CERT_NO_REVOCATION_MECHANISM: | 208 case net::ERR_CERT_NO_REVOCATION_MECHANISM: |
| 195 return CERT_NO_REVOCATION_MECHANISM; | 209 return CERT_NO_REVOCATION_MECHANISM; |
| 196 case net::ERR_CERT_UNABLE_TO_CHECK_REVOCATION: | 210 case net::ERR_CERT_UNABLE_TO_CHECK_REVOCATION: |
| 197 return CERT_UNABLE_TO_CHECK_REVOCATION; | 211 return CERT_UNABLE_TO_CHECK_REVOCATION; |
| 198 case net::ERR_CERT_REVOKED: | 212 case net::ERR_CERT_REVOKED: |
| 199 return CERT_REVOKED; | 213 return CERT_REVOKED; |
| 200 case net::ERR_CERT_INVALID: | 214 case net::ERR_CERT_INVALID: |
| 201 return CERT_INVALID; | 215 return CERT_INVALID; |
| 216 case net::ERR_CERT_WEAK_SIGNATURE_ALGORITHM: |
| 217 return CERT_WEAK_SIGNATURE_ALGORITHM; |
| 202 default: | 218 default: |
| 203 NOTREACHED(); | 219 NOTREACHED(); |
| 204 return UNKNOWN; | 220 return UNKNOWN; |
| 205 } | 221 } |
| 206 } | 222 } |
| 207 | 223 |
| 208 // static | 224 // static |
| 209 int SSLErrorInfo::GetErrorsForCertStatus(int cert_id, | 225 int SSLErrorInfo::GetErrorsForCertStatus(int cert_id, |
| 210 int cert_status, | 226 int cert_status, |
| 211 const GURL& url, | 227 const GURL& url, |
| 212 std::vector<SSLErrorInfo>* errors) { | 228 std::vector<SSLErrorInfo>* errors) { |
| 213 const int kErrorFlags[] = { | 229 const int kErrorFlags[] = { |
| 214 net::CERT_STATUS_COMMON_NAME_INVALID, | 230 net::CERT_STATUS_COMMON_NAME_INVALID, |
| 215 net::CERT_STATUS_DATE_INVALID, | 231 net::CERT_STATUS_DATE_INVALID, |
| 216 net::CERT_STATUS_AUTHORITY_INVALID, | 232 net::CERT_STATUS_AUTHORITY_INVALID, |
| 217 net::CERT_STATUS_NO_REVOCATION_MECHANISM, | 233 net::CERT_STATUS_NO_REVOCATION_MECHANISM, |
| 218 net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION, | 234 net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION, |
| 219 net::CERT_STATUS_REVOKED, | 235 net::CERT_STATUS_REVOKED, |
| 220 net::CERT_STATUS_INVALID | 236 net::CERT_STATUS_INVALID, |
| 237 net::CERT_STATUS_WEAK_SIGNATURE_ALGORITHM |
| 221 }; | 238 }; |
| 222 | 239 |
| 223 const ErrorType kErrorTypes[] = { | 240 const ErrorType kErrorTypes[] = { |
| 224 CERT_COMMON_NAME_INVALID, | 241 CERT_COMMON_NAME_INVALID, |
| 225 CERT_DATE_INVALID, | 242 CERT_DATE_INVALID, |
| 226 CERT_AUTHORITY_INVALID, | 243 CERT_AUTHORITY_INVALID, |
| 227 CERT_NO_REVOCATION_MECHANISM, | 244 CERT_NO_REVOCATION_MECHANISM, |
| 228 CERT_UNABLE_TO_CHECK_REVOCATION, | 245 CERT_UNABLE_TO_CHECK_REVOCATION, |
| 229 CERT_REVOKED, | 246 CERT_REVOKED, |
| 230 CERT_INVALID | 247 CERT_INVALID, |
| 248 CERT_WEAK_SIGNATURE_ALGORITHM |
| 231 }; | 249 }; |
| 232 DCHECK(arraysize(kErrorFlags) == arraysize(kErrorTypes)); | 250 DCHECK(arraysize(kErrorFlags) == arraysize(kErrorTypes)); |
| 233 | 251 |
| 234 scoped_refptr<net::X509Certificate> cert = NULL; | 252 scoped_refptr<net::X509Certificate> cert = NULL; |
| 235 int count = 0; | 253 int count = 0; |
| 236 for (size_t i = 0; i < arraysize(kErrorFlags); ++i) { | 254 for (size_t i = 0; i < arraysize(kErrorFlags); ++i) { |
| 237 if (cert_status & kErrorFlags[i]) { | 255 if (cert_status & kErrorFlags[i]) { |
| 238 count++; | 256 count++; |
| 239 if (!cert.get()) { | 257 if (!cert.get()) { |
| 240 bool r = CertStore::GetSharedInstance()->RetrieveCert(cert_id, &cert); | 258 bool r = CertStore::GetSharedInstance()->RetrieveCert(cert_id, &cert); |
| 241 DCHECK(r); | 259 DCHECK(r); |
| 242 } | 260 } |
| 243 if (errors) | 261 if (errors) |
| 244 errors->push_back(SSLErrorInfo::CreateError(kErrorTypes[i], cert, url)); | 262 errors->push_back(SSLErrorInfo::CreateError(kErrorTypes[i], cert, url)); |
| 245 } | 263 } |
| 246 } | 264 } |
| 247 return count; | 265 return count; |
| 248 } | 266 } |
| OLD | NEW |