Chromium Code Reviews| 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 "net/base/x509_certificate.h" | 5 #include "net/base/x509_certificate.h" |
| 6 | 6 |
| 7 #include <CommonCrypto/CommonDigest.h> | 7 #include <CommonCrypto/CommonDigest.h> |
| 8 #include <Security/Security.h> | 8 #include <Security/Security.h> |
| 9 #include <time.h> | 9 #include <time.h> |
| 10 | 10 |
| (...skipping 843 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 854 // Check all the certs in the chain for a match. | 854 // Check all the certs in the chain for a match. |
| 855 int n = CFArrayGetCount(cert_chain); | 855 int n = CFArrayGetCount(cert_chain); |
| 856 for (int i = 0; i < n; ++i) { | 856 for (int i = 0; i < n; ++i) { |
| 857 SecCertificateRef cert_handle = reinterpret_cast<SecCertificateRef>( | 857 SecCertificateRef cert_handle = reinterpret_cast<SecCertificateRef>( |
| 858 const_cast<void*>(CFArrayGetValueAtIndex(cert_chain, i))); | 858 const_cast<void*>(CFArrayGetValueAtIndex(cert_chain, i))); |
| 859 scoped_refptr<X509Certificate> cert = X509Certificate::CreateFromHandle( | 859 scoped_refptr<X509Certificate> cert = X509Certificate::CreateFromHandle( |
| 860 cert_handle, | 860 cert_handle, |
| 861 X509Certificate::SOURCE_LONE_CERT_IMPORT, | 861 X509Certificate::SOURCE_LONE_CERT_IMPORT, |
| 862 X509Certificate::OSCertHandles()); | 862 X509Certificate::OSCertHandles()); |
| 863 for (unsigned j = 0; j < valid_issuers.size(); j++) { | 863 for (unsigned j = 0; j < valid_issuers.size(); j++) { |
| 864 if (cert->subject().Matches(valid_issuers[j])) | 864 if (cert->issuer().Matches(valid_issuers[j])) |
|
wtc
2010/08/03 03:25:54
No wonder this bug looks familiar to me.
I noted
| |
| 865 return true; | 865 return true; |
| 866 } | 866 } |
| 867 } | 867 } |
| 868 return false; | 868 return false; |
| 869 } | 869 } |
| 870 | 870 |
| 871 // static | 871 // static |
| 872 OSStatus X509Certificate::CreateSSLClientPolicy(SecPolicyRef* out_policy) { | 872 OSStatus X509Certificate::CreateSSLClientPolicy(SecPolicyRef* out_policy) { |
| 873 CSSM_APPLE_TP_SSL_OPTIONS tp_ssl_options = { | 873 CSSM_APPLE_TP_SSL_OPTIONS tp_ssl_options = { |
| 874 CSSM_APPLE_TP_SSL_OPTS_VERSION, | 874 CSSM_APPLE_TP_SSL_OPTS_VERSION, |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 987 } | 987 } |
| 988 CFRelease(cert_chain); | 988 CFRelease(cert_chain); |
| 989 } | 989 } |
| 990 exit: | 990 exit: |
| 991 if (result) | 991 if (result) |
| 992 LOG(ERROR) << "CreateIdentityCertificateChain error " << result; | 992 LOG(ERROR) << "CreateIdentityCertificateChain error " << result; |
| 993 return chain.release(); | 993 return chain.release(); |
| 994 } | 994 } |
| 995 | 995 |
| 996 } // namespace net | 996 } // namespace net |
| OLD | NEW |