| 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 "net/base/cert_verify_proc_openssl.h" | 5 #include "net/base/cert_verify_proc_openssl.h" |
| 6 | 6 |
| 7 #include <openssl/x509v3.h> | 7 #include <openssl/x509v3.h> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/sha1.h" | 10 #include "base/sha1.h" |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 hashes->push_back(hash); | 152 hashes->push_back(hash); |
| 153 } | 153 } |
| 154 } | 154 } |
| 155 | 155 |
| 156 #if defined(OS_ANDROID) | 156 #if defined(OS_ANDROID) |
| 157 // Returns true if we have verification result in |verify_result| from Android | 157 // Returns true if we have verification result in |verify_result| from Android |
| 158 // Trust Manager. Otherwise returns false. | 158 // Trust Manager. Otherwise returns false. |
| 159 bool VerifyFromAndroidTrustManager(const std::vector<std::string>& cert_bytes, | 159 bool VerifyFromAndroidTrustManager(const std::vector<std::string>& cert_bytes, |
| 160 CertVerifyResult* verify_result) { | 160 CertVerifyResult* verify_result) { |
| 161 // TODO(joth): Fetch the authentication type from SSL rather than hardcode. | 161 // TODO(joth): Fetch the authentication type from SSL rather than hardcode. |
| 162 // TODO(jnd): Remove unused |hostname| from net::android::VerifyX509CertChain. | |
| 163 bool verified = true; | 162 bool verified = true; |
| 164 #if 0 | |
| 165 android::VerifyResult result = | 163 android::VerifyResult result = |
| 166 android::VerifyX509CertChain(cert_bytes, hostname, "RSA"); | 164 android::VerifyX509CertChain(cert_bytes, "RSA"); |
| 167 #else | |
| 168 // TODO(jingzhao): Recover the original implementation once we support JNI. | |
| 169 android::VerifyResult result = android::VERIFY_INVOCATION_ERROR; | |
| 170 NOTIMPLEMENTED(); | |
| 171 #endif | |
| 172 switch (result) { | 165 switch (result) { |
| 173 case android::VERIFY_OK: | 166 case android::VERIFY_OK: |
| 174 break; | 167 break; |
| 175 case android::VERIFY_BAD_HOSTNAME: | |
| 176 verify_result->cert_status |= CERT_STATUS_COMMON_NAME_INVALID; | |
| 177 break; | |
| 178 case android::VERIFY_NO_TRUSTED_ROOT: | 168 case android::VERIFY_NO_TRUSTED_ROOT: |
| 179 verify_result->cert_status |= CERT_STATUS_AUTHORITY_INVALID; | 169 verify_result->cert_status |= CERT_STATUS_AUTHORITY_INVALID; |
| 180 break; | 170 break; |
| 181 case android::VERIFY_INVOCATION_ERROR: | 171 case android::VERIFY_INVOCATION_ERROR: |
| 182 verified = false; | 172 verified = false; |
| 183 break; | 173 break; |
| 184 default: | 174 default: |
| 185 verify_result->cert_status |= CERT_STATUS_INVALID; | 175 verify_result->cert_status |= CERT_STATUS_INVALID; |
| 186 break; | 176 break; |
| 187 } | 177 } |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 // TODO(joth): if the motivations described in | 269 // TODO(joth): if the motivations described in |
| 280 // http://src.chromium.org/viewvc/chrome?view=rev&revision=80778 become an | 270 // http://src.chromium.org/viewvc/chrome?view=rev&revision=80778 become an |
| 281 // issue on OpenSSL builds, we will need to embed a hardcoded list of well | 271 // issue on OpenSSL builds, we will need to embed a hardcoded list of well |
| 282 // known root CAs, as per the _mac and _win versions. | 272 // known root CAs, as per the _mac and _win versions. |
| 283 verify_result->is_issued_by_known_root = true; | 273 verify_result->is_issued_by_known_root = true; |
| 284 | 274 |
| 285 return OK; | 275 return OK; |
| 286 } | 276 } |
| 287 | 277 |
| 288 } // namespace net | 278 } // namespace net |
| OLD | NEW |