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 #ifndef CHROME_BROWSER_CHROMEOS_NET_CERT_VERIFY_PROC_CHROMEOS_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_NET_CERT_VERIFY_PROC_CHROMEOS_H_ |
6 #define CHROME_BROWSER_CHROMEOS_NET_CERT_VERIFY_PROC_CHROMEOS_H_ | 6 #define CHROME_BROWSER_CHROMEOS_NET_CERT_VERIFY_PROC_CHROMEOS_H_ |
7 | 7 |
8 #include "crypto/scoped_nss_types.h" | 8 #include "crypto/scoped_nss_types.h" |
9 #include "net/cert/cert_verify_proc_nss.h" | 9 #include "net/cert/cert_verify_proc_nss.h" |
10 #include "net/cert/nss_profile_filter_chromeos.h" | 10 #include "net/cert/nss_profile_filter_chromeos.h" |
(...skipping 10 matching lines...) Expand all Loading... |
21 class CertVerifyProcChromeOS : public net::CertVerifyProcNSS { | 21 class CertVerifyProcChromeOS : public net::CertVerifyProcNSS { |
22 public: | 22 public: |
23 // Creates a CertVerifyProc that doesn't allow any user-provided trust roots. | 23 // Creates a CertVerifyProc that doesn't allow any user-provided trust roots. |
24 CertVerifyProcChromeOS(); | 24 CertVerifyProcChromeOS(); |
25 | 25 |
26 // Creates a CertVerifyProc that doesn't allow trust roots provided by | 26 // Creates a CertVerifyProc that doesn't allow trust roots provided by |
27 // users other than the specified slot. | 27 // users other than the specified slot. |
28 explicit CertVerifyProcChromeOS(crypto::ScopedPK11Slot public_slot); | 28 explicit CertVerifyProcChromeOS(crypto::ScopedPK11Slot public_slot); |
29 | 29 |
30 protected: | 30 protected: |
31 virtual ~CertVerifyProcChromeOS(); | 31 ~CertVerifyProcChromeOS() override; |
32 | 32 |
33 private: | 33 private: |
34 // net::CertVerifyProcNSS implementation: | 34 // net::CertVerifyProcNSS implementation: |
35 virtual int VerifyInternal( | 35 int VerifyInternal(net::X509Certificate* cert, |
36 net::X509Certificate* cert, | 36 const std::string& hostname, |
37 const std::string& hostname, | 37 int flags, |
38 int flags, | 38 net::CRLSet* crl_set, |
39 net::CRLSet* crl_set, | 39 const net::CertificateList& additional_trust_anchors, |
40 const net::CertificateList& additional_trust_anchors, | 40 net::CertVerifyResult* verify_result) override; |
41 net::CertVerifyResult* verify_result) override; | |
42 | 41 |
43 // Check if the trust root of |current_chain| is allowed. | 42 // Check if the trust root of |current_chain| is allowed. |
44 // |is_chain_valid_arg| is actually a ChainVerifyArgs*, which is used to pass | 43 // |is_chain_valid_arg| is actually a ChainVerifyArgs*, which is used to pass |
45 // state through the NSS CERTChainVerifyCallback.isChainValidArg parameter. | 44 // state through the NSS CERTChainVerifyCallback.isChainValidArg parameter. |
46 // If the chain is allowed, |*chain_ok| will be set to PR_TRUE. | 45 // If the chain is allowed, |*chain_ok| will be set to PR_TRUE. |
47 // If the chain is not allowed, |*chain_ok| is set to PR_FALSE, and this | 46 // If the chain is not allowed, |*chain_ok| is set to PR_FALSE, and this |
48 // function may be called again during a single certificate verification if | 47 // function may be called again during a single certificate verification if |
49 // there are multiple possible valid chains. | 48 // there are multiple possible valid chains. |
50 static SECStatus IsChainValidFunc(void* is_chain_valid_arg, | 49 static SECStatus IsChainValidFunc(void* is_chain_valid_arg, |
51 const CERTCertList* current_chain, | 50 const CERTCertList* current_chain, |
52 PRBool* chain_ok); | 51 PRBool* chain_ok); |
53 | 52 |
54 net::NSSProfileFilterChromeOS profile_filter_; | 53 net::NSSProfileFilterChromeOS profile_filter_; |
55 }; | 54 }; |
56 | 55 |
57 } // namespace chromeos | 56 } // namespace chromeos |
58 | 57 |
59 #endif // CHROME_BROWSER_CHROMEOS_NET_CERT_VERIFY_PROC_CHROMEOS_H_ | 58 #endif // CHROME_BROWSER_CHROMEOS_NET_CERT_VERIFY_PROC_CHROMEOS_H_ |
OLD | NEW |