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

Side by Side Diff: net/cert/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: expanded test, found one problem Created 6 years, 11 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 NET_CERT_CERT_VERIFY_PROC_CHROMEOS_H_
6 #define NET_CERT_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 net {
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 CertVerifyProcNSS {
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 CertVerifyProcChromeOS(crypto::ScopedPK11Slot public_slot,
32 crypto::ScopedPK11Slot private_slot);
Ryan Sleevi 2014/01/25 01:50:17 Why take a private slot? This doesn't make sense f
mattm 2014/01/28 04:36:44 Oops, yeah. Didn't finish an earlier change to onl
33
34 protected:
35 virtual ~CertVerifyProcChromeOS();
36
37 private:
38 CERTChainVerifyCallback* InitializeCERTChainVerifyCallback();
39
40 static SECStatus IsChainValidFunc(void* is_chain_valid_arg,
41 const CERTCertList* current_chain,
42 PRBool* chain_ok);
43
44 // A pointer to this object is passed to CertVerifyProcNSS.
45 CERTChainVerifyCallback chain_verify_callback_;
46
47 NSSProfileFilterChromeOS profile_filter_;
48 };
49
50 } // namespace net
51
52 #endif // NET_CERT_CERT_VERIFY_PROC_CHROMEOS_H_
53
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698