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 |