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 NSSCKFWT_H
6 #define NSSCKFWT_H
7 
8 /*
9  * nssckfwt.h
10  *
11  * This file declares the public types used by the NSS Cryptoki Framework.
12  */
13 
14 /*
15  * NSSCKFWInstance
16  *
17  */
18 
19 struct NSSCKFWInstanceStr;
20 typedef struct NSSCKFWInstanceStr NSSCKFWInstance;
21 
22 /*
23  * NSSCKFWSlot
24  *
25  */
26 
27 struct NSSCKFWSlotStr;
28 typedef struct NSSCKFWSlotStr NSSCKFWSlot;
29 
30 /*
31  * NSSCKFWToken
32  *
33  */
34 
35 struct NSSCKFWTokenStr;
36 typedef struct NSSCKFWTokenStr NSSCKFWToken;
37 
38 /*
39  * NSSCKFWMechanism
40  *
41  */
42 
43 struct NSSCKFWMechanismStr;
44 typedef struct NSSCKFWMechanismStr NSSCKFWMechanism;
45 
46 /*
47  * NSSCKFWCryptoOperation
48  *
49  */
50 
51 struct NSSCKFWCryptoOperationStr;
52 typedef struct NSSCKFWCryptoOperationStr NSSCKFWCryptoOperation;
53 
54 /*
55  * NSSCKFWSession
56  *
57  */
58 
59 struct NSSCKFWSessionStr;
60 typedef struct NSSCKFWSessionStr NSSCKFWSession;
61 
62 /*
63  * NSSCKFWObject
64  *
65  */
66 
67 struct NSSCKFWObjectStr;
68 typedef struct NSSCKFWObjectStr NSSCKFWObject;
69 
70 /*
71  * NSSCKFWFindObjects
72  *
73  */
74 
75 struct NSSCKFWFindObjectsStr;
76 typedef struct NSSCKFWFindObjectsStr NSSCKFWFindObjects;
77 
78 /*
79  * NSSCKFWMutex
80  *
81  */
82 
83 struct NSSCKFWMutexStr;
84 typedef struct NSSCKFWMutexStr NSSCKFWMutex;
85 
86 typedef enum {
87     SingleThreaded,
88     MultiThreaded
89 } CryptokiLockingState;
90 
91 /* used as an index into an array, make sure it starts at '0' */
92 typedef enum {
93     NSSCKFWCryptoOperationState_EncryptDecrypt = 0,
94     NSSCKFWCryptoOperationState_SignVerify,
95     NSSCKFWCryptoOperationState_Digest,
96     NSSCKFWCryptoOperationState_Max
97 } NSSCKFWCryptoOperationState;
98 
99 typedef enum {
100     NSSCKFWCryptoOperationType_Encrypt,
101     NSSCKFWCryptoOperationType_Decrypt,
102     NSSCKFWCryptoOperationType_Digest,
103     NSSCKFWCryptoOperationType_Sign,
104     NSSCKFWCryptoOperationType_Verify,
105     NSSCKFWCryptoOperationType_SignRecover,
106     NSSCKFWCryptoOperationType_VerifyRecover
107 } NSSCKFWCryptoOperationType;
108 
109 #endif /* NSSCKFWT_H */
110