/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "ckcapi.h" /* * ckcapi/cinstance.c * * This file implements the NSSCKMDInstance object for the * "capi" cryptoki module. */ /* * NSSCKMDInstance methods */ static CK_ULONG ckcapi_mdInstance_GetNSlots( NSSCKMDInstance *mdInstance, NSSCKFWInstance *fwInstance, CK_RV *pError) { return (CK_ULONG)1; } static CK_VERSION ckcapi_mdInstance_GetCryptokiVersion( NSSCKMDInstance *mdInstance, NSSCKFWInstance *fwInstance) { return nss_ckcapi_CryptokiVersion; } static NSSUTF8 * ckcapi_mdInstance_GetManufacturerID( NSSCKMDInstance *mdInstance, NSSCKFWInstance *fwInstance, CK_RV *pError) { return (NSSUTF8 *)nss_ckcapi_ManufacturerID; } static NSSUTF8 * ckcapi_mdInstance_GetLibraryDescription( NSSCKMDInstance *mdInstance, NSSCKFWInstance *fwInstance, CK_RV *pError) { return (NSSUTF8 *)nss_ckcapi_LibraryDescription; } static CK_VERSION ckcapi_mdInstance_GetLibraryVersion( NSSCKMDInstance *mdInstance, NSSCKFWInstance *fwInstance) { return nss_ckcapi_LibraryVersion; } static CK_RV ckcapi_mdInstance_GetSlots( NSSCKMDInstance *mdInstance, NSSCKFWInstance *fwInstance, NSSCKMDSlot *slots[]) { slots[0] = (NSSCKMDSlot *)&nss_ckcapi_mdSlot; return CKR_OK; } static CK_BBOOL ckcapi_mdInstance_ModuleHandlesSessionObjects( NSSCKMDInstance *mdInstance, NSSCKFWInstance *fwInstance) { /* we don't want to allow any session object creation, at least * until we can investigate whether or not we can use those objects */ return CK_TRUE; } NSS_IMPLEMENT_DATA const NSSCKMDInstance nss_ckcapi_mdInstance = { (void *)NULL, /* etc */ NULL, /* Initialize */ NULL, /* Finalize */ ckcapi_mdInstance_GetNSlots, ckcapi_mdInstance_GetCryptokiVersion, ckcapi_mdInstance_GetManufacturerID, ckcapi_mdInstance_GetLibraryDescription, ckcapi_mdInstance_GetLibraryVersion, ckcapi_mdInstance_ModuleHandlesSessionObjects, /*NULL, /* HandleSessionObjects */ ckcapi_mdInstance_GetSlots, NULL, /* WaitForSlotEvent */ (void *)NULL /* null terminator */ };