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 "ckcapi.h"
6
7 /*
8 * ckcapi/cslot.c
9 *
10 * This file implements the NSSCKMDSlot object for the
11 * "nss to capi" cryptoki module.
12 */
13
14 static NSSUTF8 *
ckcapi_mdSlot_GetSlotDescription(NSSCKMDSlot * mdSlot,NSSCKFWSlot * fwSlot,NSSCKMDInstance * mdInstance,NSSCKFWInstance * fwInstance,CK_RV * pError)15 ckcapi_mdSlot_GetSlotDescription(
16 NSSCKMDSlot *mdSlot,
17 NSSCKFWSlot *fwSlot,
18 NSSCKMDInstance *mdInstance,
19 NSSCKFWInstance *fwInstance,
20 CK_RV *pError)
21 {
22 return (NSSUTF8 *)nss_ckcapi_SlotDescription;
23 }
24
25 static NSSUTF8 *
ckcapi_mdSlot_GetManufacturerID(NSSCKMDSlot * mdSlot,NSSCKFWSlot * fwSlot,NSSCKMDInstance * mdInstance,NSSCKFWInstance * fwInstance,CK_RV * pError)26 ckcapi_mdSlot_GetManufacturerID(
27 NSSCKMDSlot *mdSlot,
28 NSSCKFWSlot *fwSlot,
29 NSSCKMDInstance *mdInstance,
30 NSSCKFWInstance *fwInstance,
31 CK_RV *pError)
32 {
33 return (NSSUTF8 *)nss_ckcapi_ManufacturerID;
34 }
35
36 static CK_VERSION
ckcapi_mdSlot_GetHardwareVersion(NSSCKMDSlot * mdSlot,NSSCKFWSlot * fwSlot,NSSCKMDInstance * mdInstance,NSSCKFWInstance * fwInstance)37 ckcapi_mdSlot_GetHardwareVersion(
38 NSSCKMDSlot *mdSlot,
39 NSSCKFWSlot *fwSlot,
40 NSSCKMDInstance *mdInstance,
41 NSSCKFWInstance *fwInstance)
42 {
43 return nss_ckcapi_HardwareVersion;
44 }
45
46 static CK_VERSION
ckcapi_mdSlot_GetFirmwareVersion(NSSCKMDSlot * mdSlot,NSSCKFWSlot * fwSlot,NSSCKMDInstance * mdInstance,NSSCKFWInstance * fwInstance)47 ckcapi_mdSlot_GetFirmwareVersion(
48 NSSCKMDSlot *mdSlot,
49 NSSCKFWSlot *fwSlot,
50 NSSCKMDInstance *mdInstance,
51 NSSCKFWInstance *fwInstance)
52 {
53 return nss_ckcapi_FirmwareVersion;
54 }
55
56 static NSSCKMDToken *
ckcapi_mdSlot_GetToken(NSSCKMDSlot * mdSlot,NSSCKFWSlot * fwSlot,NSSCKMDInstance * mdInstance,NSSCKFWInstance * fwInstance,CK_RV * pError)57 ckcapi_mdSlot_GetToken(
58 NSSCKMDSlot *mdSlot,
59 NSSCKFWSlot *fwSlot,
60 NSSCKMDInstance *mdInstance,
61 NSSCKFWInstance *fwInstance,
62 CK_RV *pError)
63 {
64 return (NSSCKMDToken *)&nss_ckcapi_mdToken;
65 }
66
67 NSS_IMPLEMENT_DATA const NSSCKMDSlot
68 nss_ckcapi_mdSlot = {
69 (void *)NULL, /* etc */
70 NULL, /* Initialize */
71 NULL, /* Destroy */
72 ckcapi_mdSlot_GetSlotDescription,
73 ckcapi_mdSlot_GetManufacturerID,
74 NULL, /* GetTokenPresent -- defaults to true */
75 NULL, /* GetRemovableDevice -- defaults to false */
76 NULL, /* GetHardwareSlot -- defaults to false */
77 ckcapi_mdSlot_GetHardwareVersion,
78 ckcapi_mdSlot_GetFirmwareVersion,
79 ckcapi_mdSlot_GetToken,
80 (void *)NULL /* null terminator */
81 };
82