binst.c (2174B)
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 "builtins.h" 6 7 /* 8 * builtins/instance.c 9 * 10 * This file implements the NSSCKMDInstance object for the 11 * "builtin objects" cryptoki module. 12 */ 13 14 /* 15 * NSSCKMDInstance methods 16 */ 17 18 static CK_ULONG 19 builtins_mdInstance_GetNSlots( 20 NSSCKMDInstance *mdInstance, 21 NSSCKFWInstance *fwInstance, 22 CK_RV *pError) 23 { 24 return (CK_ULONG)1; 25 } 26 27 static CK_VERSION 28 builtins_mdInstance_GetCryptokiVersion( 29 NSSCKMDInstance *mdInstance, 30 NSSCKFWInstance *fwInstance) 31 { 32 return nss_builtins_CryptokiVersion; 33 } 34 35 static NSSUTF8 * 36 builtins_mdInstance_GetManufacturerID( 37 NSSCKMDInstance *mdInstance, 38 NSSCKFWInstance *fwInstance, 39 CK_RV *pError) 40 { 41 return (NSSUTF8 *)nss_builtins_ManufacturerID; 42 } 43 44 static NSSUTF8 * 45 builtins_mdInstance_GetLibraryDescription( 46 NSSCKMDInstance *mdInstance, 47 NSSCKFWInstance *fwInstance, 48 CK_RV *pError) 49 { 50 return (NSSUTF8 *)nss_builtins_LibraryDescription; 51 } 52 53 static CK_VERSION 54 builtins_mdInstance_GetLibraryVersion( 55 NSSCKMDInstance *mdInstance, 56 NSSCKFWInstance *fwInstance) 57 { 58 #define NSS_VERSION_VARIABLE __nss_builtins_version 59 #include "verref.h" 60 return nss_builtins_LibraryVersion; 61 } 62 63 static CK_RV 64 builtins_mdInstance_GetSlots( 65 NSSCKMDInstance *mdInstance, 66 NSSCKFWInstance *fwInstance, 67 NSSCKMDSlot *slots[]) 68 { 69 slots[0] = (NSSCKMDSlot *)&nss_builtins_mdSlot; 70 return CKR_OK; 71 } 72 73 const NSSCKMDInstance 74 nss_builtins_mdInstance = { 75 (void *)NULL, /* etc */ 76 NULL, /* Initialize */ 77 NULL, /* Finalize */ 78 builtins_mdInstance_GetNSlots, 79 builtins_mdInstance_GetCryptokiVersion, 80 builtins_mdInstance_GetManufacturerID, 81 builtins_mdInstance_GetLibraryDescription, 82 builtins_mdInstance_GetLibraryVersion, 83 NULL, /* ModuleHandlesSessionObjects -- defaults to false */ 84 builtins_mdInstance_GetSlots, 85 NULL, /* WaitForSlotEvent */ 86 (void *)NULL /* null terminator */ 87 };