Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Side by Side Diff: chrome/browser/chromeos/net/cert_verify_proc_chromeos.h

Issue 137553004: NSS Cros multiprofile: trust roots added by a profile shouldn't apply to other profiles. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: handle additional trust roots, add TestRootCertsTest.Contains, remove instantiated certtests from c… Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_CHROMEOS_NET_CERT_VERIFY_PROC_CHROMEOS_H_
6 #define CHROME_BROWSER_CHROMEOS_NET_CERT_VERIFY_PROC_CHROMEOS_H_
7
8 #include "crypto/scoped_nss_types.h"
9 #include "net/base/net_export.h"
10 #include "net/cert/cert_verify_proc_nss.h"
11 #include "net/cert/nss_profile_filter_chromeos.h"
12
13 namespace chromeos {
14
15 // Wrapper around CertVerifyProcNSS which allows filtering trust decisions on a
16 // per-slot basis. Unlike the other CertVerifyProc implementations, this one is
17 // publicly exported, so that the non-default constructor can be used to specify
18 // the slots to use.
19 //
20 // Note that only the simple case is currently handled (if a slot contains a new
21 // trust root, that root should not be trusted by CertVerifyProcChromeOS
22 // instances using other slots). More complicated cases are not handled (like
23 // two slots adding the same root cert but with different trust values).
24 class NET_EXPORT CertVerifyProcChromeOS : public net::CertVerifyProcNSS {
Ryan Sleevi 2014/01/30 05:27:40 Update comment, remove net_export (and related inc
mattm 2014/02/04 05:31:21 Done.
25 public:
26 // Creates a CertVerifyProc that doesn't allow any user-provided trust roots.
27 CertVerifyProcChromeOS();
28
29 // Creates a CertVerifyProc that doesn't allow trust roots provided by
30 // users other than the specified slot.
31 explicit CertVerifyProcChromeOS(crypto::ScopedPK11Slot public_slot);
32
33 protected:
34 virtual ~CertVerifyProcChromeOS();
35
36 private:
37 CERTChainVerifyCallback* InitializeCERTChainVerifyCallback();
Ryan Sleevi 2014/01/30 05:27:40 No longer used
mattm 2014/02/04 05:31:21 Done.
38
39 virtual int VerifyInternal(
40 net::X509Certificate* cert,
41 const std::string& hostname,
42 int flags,
43 net::CRLSet* crl_set,
44 const net::CertificateList& additional_trust_anchors,
45 net::CertVerifyResult* verify_result) OVERRIDE;
46
47 static SECStatus IsChainValidFunc(void* is_chain_valid_arg,
48 const CERTCertList* current_chain,
49 PRBool* chain_ok);
50
51 net::NSSProfileFilterChromeOS profile_filter_;
52 };
53
54 } // namespace chromeos
55
56 #endif // CHROME_BROWSER_CHROMEOS_NET_CERT_VERIFY_PROC_CHROMEOS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698