Line data Source code
1 : /* This Source Code Form is subject to the terms of the Mozilla Public
2 : * License, v. 2.0. If a copy of the MPL was not distributed with this
3 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 :
5 : #ifndef nsKeyModule_h
6 : #define nsKeyModule_h
7 :
8 : #include "ScopedNSSTypes.h"
9 : #include "nsIKeyModule.h"
10 : #include "nsNSSShutDown.h"
11 : #include "pk11pub.h"
12 :
13 : #define NS_KEYMODULEOBJECT_CID \
14 : { 0x9d383ddd, 0x6856, 0x4187, {0x84, 0x85, 0xf3, 0x61, 0x95, 0xb2, 0x9a, 0x0e} }
15 : #define NS_KEYMODULEOBJECT_CONTRACTID "@mozilla.org/security/keyobject;1"
16 :
17 : #define NS_KEYMODULEOBJECTFACTORY_CID \
18 : { 0x2a35dd47, 0xb026, 0x4e8d, {0xb6, 0xb7, 0x57, 0x40, 0xf6, 0x1a, 0xb9, 0x02} }
19 : #define NS_KEYMODULEOBJECTFACTORY_CONTRACTID \
20 : "@mozilla.org/security/keyobjectfactory;1"
21 :
22 : class nsKeyObject final : public nsIKeyObject
23 : , public nsNSSShutDownObject
24 : {
25 : public:
26 : nsKeyObject();
27 :
28 : NS_DECL_ISUPPORTS
29 : NS_DECL_NSIKEYOBJECT
30 :
31 : private:
32 : ~nsKeyObject();
33 :
34 : // Disallow copy constructor
35 : nsKeyObject(nsKeyObject&);
36 :
37 : UniquePK11SymKey mSymKey;
38 :
39 : virtual void virtualDestroyNSSReference() override;
40 : void destructorSafeDestroyNSSReference();
41 : };
42 :
43 :
44 : class nsKeyObjectFactory final : public nsIKeyObjectFactory
45 : , public nsNSSShutDownObject
46 : {
47 : public:
48 : nsKeyObjectFactory();
49 :
50 : NS_DECL_THREADSAFE_ISUPPORTS
51 : NS_DECL_NSIKEYOBJECTFACTORY
52 :
53 : private:
54 : ~nsKeyObjectFactory();
55 :
56 : // Disallow copy constructor
57 : nsKeyObjectFactory(nsKeyObjectFactory&);
58 :
59 : // No NSS resources to release.
60 0 : virtual void virtualDestroyNSSReference() override {}
61 : };
62 :
63 : #endif // nsKeyModule_h
|