michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "builtins.h" michael@0: michael@0: /* michael@0: * builtins/instance.c michael@0: * michael@0: * This file implements the NSSCKMDInstance object for the michael@0: * "builtin objects" cryptoki module. michael@0: */ michael@0: michael@0: /* michael@0: * NSSCKMDInstance methods michael@0: */ michael@0: michael@0: static CK_ULONG michael@0: builtins_mdInstance_GetNSlots michael@0: ( michael@0: NSSCKMDInstance *mdInstance, michael@0: NSSCKFWInstance *fwInstance, michael@0: CK_RV *pError michael@0: ) michael@0: { michael@0: return (CK_ULONG)1; michael@0: } michael@0: michael@0: static CK_VERSION michael@0: builtins_mdInstance_GetCryptokiVersion michael@0: ( michael@0: NSSCKMDInstance *mdInstance, michael@0: NSSCKFWInstance *fwInstance michael@0: ) michael@0: { michael@0: return nss_builtins_CryptokiVersion; michael@0: } michael@0: michael@0: static NSSUTF8 * michael@0: builtins_mdInstance_GetManufacturerID michael@0: ( michael@0: NSSCKMDInstance *mdInstance, michael@0: NSSCKFWInstance *fwInstance, michael@0: CK_RV *pError michael@0: ) michael@0: { michael@0: return (NSSUTF8 *)nss_builtins_ManufacturerID; michael@0: } michael@0: michael@0: static NSSUTF8 * michael@0: builtins_mdInstance_GetLibraryDescription michael@0: ( michael@0: NSSCKMDInstance *mdInstance, michael@0: NSSCKFWInstance *fwInstance, michael@0: CK_RV *pError michael@0: ) michael@0: { michael@0: return (NSSUTF8 *)nss_builtins_LibraryDescription; michael@0: } michael@0: michael@0: static CK_VERSION michael@0: builtins_mdInstance_GetLibraryVersion michael@0: ( michael@0: NSSCKMDInstance *mdInstance, michael@0: NSSCKFWInstance *fwInstance michael@0: ) michael@0: { michael@0: extern const char __nss_builtins_rcsid[]; michael@0: extern const char __nss_builtins_sccsid[]; michael@0: volatile char c; /* force a reference that won't get optimized away */ michael@0: michael@0: c = __nss_builtins_rcsid[0] + __nss_builtins_sccsid[0]; michael@0: return nss_builtins_LibraryVersion; michael@0: } michael@0: michael@0: static CK_RV michael@0: builtins_mdInstance_GetSlots michael@0: ( michael@0: NSSCKMDInstance *mdInstance, michael@0: NSSCKFWInstance *fwInstance, michael@0: NSSCKMDSlot *slots[] michael@0: ) michael@0: { michael@0: slots[0] = (NSSCKMDSlot *)&nss_builtins_mdSlot; michael@0: return CKR_OK; michael@0: } michael@0: michael@0: const NSSCKMDInstance michael@0: nss_builtins_mdInstance = { michael@0: (void *)NULL, /* etc */ michael@0: NULL, /* Initialize */ michael@0: NULL, /* Finalize */ michael@0: builtins_mdInstance_GetNSlots, michael@0: builtins_mdInstance_GetCryptokiVersion, michael@0: builtins_mdInstance_GetManufacturerID, michael@0: builtins_mdInstance_GetLibraryDescription, michael@0: builtins_mdInstance_GetLibraryVersion, michael@0: NULL, /* ModuleHandlesSessionObjects -- defaults to false */ michael@0: builtins_mdInstance_GetSlots, michael@0: NULL, /* WaitForSlotEvent */ michael@0: (void *)NULL /* null terminator */ michael@0: };