OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/chromeos/net/cert_verify_proc_chromeos.h" | 5 #include "chrome/browser/chromeos/net/cert_verify_proc_chromeos.h" |
6 | 6 |
7 #include "net/cert/test_root_certs.h" | 7 #include "net/cert/test_root_certs.h" |
8 #include "net/cert/x509_certificate.h" | 8 #include "net/cert/x509_certificate.h" |
9 | 9 |
10 // NSS doesn't currently define CERT_LIST_TAIL. | 10 // NSS doesn't currently define CERT_LIST_TAIL. |
(...skipping 22 matching lines...) Expand all Loading... |
33 // trust settings are stored. | 33 // trust settings are stored. |
34 profile_filter_.Init( | 34 profile_filter_.Init( |
35 public_slot.Pass(), crypto::ScopedPK11Slot(), crypto::ScopedPK11Slot()); | 35 public_slot.Pass(), crypto::ScopedPK11Slot(), crypto::ScopedPK11Slot()); |
36 } | 36 } |
37 | 37 |
38 CertVerifyProcChromeOS::~CertVerifyProcChromeOS() {} | 38 CertVerifyProcChromeOS::~CertVerifyProcChromeOS() {} |
39 | 39 |
40 int CertVerifyProcChromeOS::VerifyInternal( | 40 int CertVerifyProcChromeOS::VerifyInternal( |
41 net::X509Certificate* cert, | 41 net::X509Certificate* cert, |
42 const std::string& hostname, | 42 const std::string& hostname, |
| 43 const std::string& ocsp_response, |
43 int flags, | 44 int flags, |
44 net::CRLSet* crl_set, | 45 net::CRLSet* crl_set, |
45 const net::CertificateList& additional_trust_anchors, | 46 const net::CertificateList& additional_trust_anchors, |
46 net::CertVerifyResult* verify_result) { | 47 net::CertVerifyResult* verify_result) { |
47 ChainVerifyArgs chain_verify_args = {this, additional_trust_anchors}; | 48 ChainVerifyArgs chain_verify_args = {this, additional_trust_anchors}; |
48 | 49 |
49 CERTChainVerifyCallback chain_verify_callback; | 50 CERTChainVerifyCallback chain_verify_callback; |
50 chain_verify_callback.isChainValid = | 51 chain_verify_callback.isChainValid = |
51 &CertVerifyProcChromeOS::IsChainValidFunc; | 52 &CertVerifyProcChromeOS::IsChainValidFunc; |
52 chain_verify_callback.isChainValidArg = | 53 chain_verify_callback.isChainValidArg = |
53 static_cast<void*>(&chain_verify_args); | 54 static_cast<void*>(&chain_verify_args); |
54 | 55 |
55 return VerifyInternalImpl(cert, | 56 return VerifyInternalImpl(cert, hostname, ocsp_response, flags, crl_set, |
56 hostname, | 57 additional_trust_anchors, &chain_verify_callback, |
57 flags, | |
58 crl_set, | |
59 additional_trust_anchors, | |
60 &chain_verify_callback, | |
61 verify_result); | 58 verify_result); |
62 } | 59 } |
63 | 60 |
64 // static | 61 // static |
65 SECStatus CertVerifyProcChromeOS::IsChainValidFunc( | 62 SECStatus CertVerifyProcChromeOS::IsChainValidFunc( |
66 void* is_chain_valid_arg, | 63 void* is_chain_valid_arg, |
67 const CERTCertList* current_chain, | 64 const CERTCertList* current_chain, |
68 PRBool* chain_ok) { | 65 PRBool* chain_ok) { |
69 ChainVerifyArgs* args = static_cast<ChainVerifyArgs*>(is_chain_valid_arg); | 66 ChainVerifyArgs* args = static_cast<ChainVerifyArgs*>(is_chain_valid_arg); |
70 CERTCertificate* cert = CERT_LIST_TAIL(current_chain)->cert; | 67 CERTCertificate* cert = CERT_LIST_TAIL(current_chain)->cert; |
(...skipping 26 matching lines...) Expand all Loading... |
97 // properly when the same cert is in multiple slots, this would also need | 94 // properly when the same cert is in multiple slots, this would also need |
98 // updating to check the per-slot trust values. | 95 // updating to check the per-slot trust values. |
99 *chain_ok = args->cert_verify_proc->profile_filter_.IsCertAllowed(cert) | 96 *chain_ok = args->cert_verify_proc->profile_filter_.IsCertAllowed(cert) |
100 ? PR_TRUE | 97 ? PR_TRUE |
101 : PR_FALSE; | 98 : PR_FALSE; |
102 DVLOG(3) << cert->subjectName << " is " << (*chain_ok ? "ok" : "not ok"); | 99 DVLOG(3) << cert->subjectName << " is " << (*chain_ok ? "ok" : "not ok"); |
103 return SECSuccess; | 100 return SECSuccess; |
104 } | 101 } |
105 | 102 |
106 } // namespace chromeos | 103 } // namespace chromeos |
OLD | NEW |