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 |