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 #include "nssckmdt.h"
6 #include "nssckfw.h"
7 
8 /*
9  * I'm including this for access to the arena functions.
10  * Looks like we should publish that API.
11  */
12 #ifndef BASE_H
13 #include "base.h"
14 #endif /* BASE_H */
15 
16 /*
17  * This is where the Netscape extensions live, at least for now.
18  */
19 #ifndef CKT_H
20 #include "ckt.h"
21 #endif /* CKT_H */
22 
23 struct builtinsInternalObjectStr {
24     CK_ULONG n;
25     const CK_ATTRIBUTE_TYPE *types;
26     const NSSItem *items;
27     NSSCKMDObject mdObject;
28 };
29 typedef struct builtinsInternalObjectStr builtinsInternalObject;
30 
31 extern builtinsInternalObject nss_builtins_data[];
32 extern const PRUint32 nss_builtins_nObjects;
33 
34 extern const CK_VERSION nss_builtins_CryptokiVersion;
35 extern const CK_VERSION nss_builtins_LibraryVersion;
36 extern const CK_VERSION nss_builtins_HardwareVersion;
37 extern const CK_VERSION nss_builtins_FirmwareVersion;
38 
39 extern const NSSUTF8 nss_builtins_ManufacturerID[];
40 extern const NSSUTF8 nss_builtins_LibraryDescription[];
41 extern const NSSUTF8 nss_builtins_SlotDescription[];
42 extern const NSSUTF8 nss_builtins_TokenLabel[];
43 extern const NSSUTF8 nss_builtins_TokenModel[];
44 extern const NSSUTF8 nss_builtins_TokenSerialNumber[];
45 
46 extern const NSSCKMDInstance nss_builtins_mdInstance;
47 extern const NSSCKMDSlot nss_builtins_mdSlot;
48 extern const NSSCKMDToken nss_builtins_mdToken;
49 
50 NSS_EXTERN NSSCKMDSession *
51 nss_builtins_CreateSession(
52     NSSCKFWSession *fwSession,
53     CK_RV *pError);
54 
55 NSS_EXTERN NSSCKMDFindObjects *
56 nss_builtins_FindObjectsInit(
57     NSSCKFWSession *fwSession,
58     CK_ATTRIBUTE_PTR pTemplate,
59     CK_ULONG ulAttributeCount,
60     CK_RV *pError);
61 
62 NSS_EXTERN NSSCKMDObject *
63 nss_builtins_CreateMDObject(
64     NSSArena *arena,
65     builtinsInternalObject *io,
66     CK_RV *pError);
67