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/token.c michael@0: * michael@0: * This file implements the NSSCKMDToken object for the michael@0: * "builtin objects" cryptoki module. michael@0: */ michael@0: michael@0: static NSSUTF8 * michael@0: builtins_mdToken_GetLabel michael@0: ( michael@0: NSSCKMDToken *mdToken, michael@0: NSSCKFWToken *fwToken, michael@0: NSSCKMDInstance *mdInstance, michael@0: NSSCKFWInstance *fwInstance, michael@0: CK_RV *pError michael@0: ) michael@0: { michael@0: return (NSSUTF8 *)nss_builtins_TokenLabel; michael@0: } michael@0: michael@0: static NSSUTF8 * michael@0: builtins_mdToken_GetManufacturerID michael@0: ( michael@0: NSSCKMDToken *mdToken, michael@0: NSSCKFWToken *fwToken, 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_mdToken_GetModel michael@0: ( michael@0: NSSCKMDToken *mdToken, michael@0: NSSCKFWToken *fwToken, michael@0: NSSCKMDInstance *mdInstance, michael@0: NSSCKFWInstance *fwInstance, michael@0: CK_RV *pError michael@0: ) michael@0: { michael@0: return (NSSUTF8 *)nss_builtins_TokenModel; michael@0: } michael@0: michael@0: static NSSUTF8 * michael@0: builtins_mdToken_GetSerialNumber michael@0: ( michael@0: NSSCKMDToken *mdToken, michael@0: NSSCKFWToken *fwToken, michael@0: NSSCKMDInstance *mdInstance, michael@0: NSSCKFWInstance *fwInstance, michael@0: CK_RV *pError michael@0: ) michael@0: { michael@0: return (NSSUTF8 *)nss_builtins_TokenSerialNumber; michael@0: } michael@0: michael@0: static CK_BBOOL michael@0: builtins_mdToken_GetIsWriteProtected michael@0: ( michael@0: NSSCKMDToken *mdToken, michael@0: NSSCKFWToken *fwToken, michael@0: NSSCKMDInstance *mdInstance, michael@0: NSSCKFWInstance *fwInstance michael@0: ) michael@0: { michael@0: return CK_TRUE; michael@0: } michael@0: michael@0: static CK_VERSION michael@0: builtins_mdToken_GetHardwareVersion michael@0: ( michael@0: NSSCKMDToken *mdToken, michael@0: NSSCKFWToken *fwToken, michael@0: NSSCKMDInstance *mdInstance, michael@0: NSSCKFWInstance *fwInstance michael@0: ) michael@0: { michael@0: return nss_builtins_HardwareVersion; michael@0: } michael@0: michael@0: static CK_VERSION michael@0: builtins_mdToken_GetFirmwareVersion michael@0: ( michael@0: NSSCKMDToken *mdToken, michael@0: NSSCKFWToken *fwToken, michael@0: NSSCKMDInstance *mdInstance, michael@0: NSSCKFWInstance *fwInstance michael@0: ) michael@0: { michael@0: return nss_builtins_FirmwareVersion; michael@0: } michael@0: michael@0: static NSSCKMDSession * michael@0: builtins_mdToken_OpenSession michael@0: ( michael@0: NSSCKMDToken *mdToken, michael@0: NSSCKFWToken *fwToken, michael@0: NSSCKMDInstance *mdInstance, michael@0: NSSCKFWInstance *fwInstance, michael@0: NSSCKFWSession *fwSession, michael@0: CK_BBOOL rw, michael@0: CK_RV *pError michael@0: ) michael@0: { michael@0: return nss_builtins_CreateSession(fwSession, pError); michael@0: } michael@0: michael@0: const NSSCKMDToken michael@0: nss_builtins_mdToken = { michael@0: (void *)NULL, /* etc */ michael@0: NULL, /* Setup */ michael@0: NULL, /* Invalidate */ michael@0: NULL, /* InitToken -- default errs */ michael@0: builtins_mdToken_GetLabel, michael@0: builtins_mdToken_GetManufacturerID, michael@0: builtins_mdToken_GetModel, michael@0: builtins_mdToken_GetSerialNumber, michael@0: NULL, /* GetHasRNG -- default is false */ michael@0: builtins_mdToken_GetIsWriteProtected, michael@0: NULL, /* GetLoginRequired -- default is false */ michael@0: NULL, /* GetUserPinInitialized -- default is false */ michael@0: NULL, /* GetRestoreKeyNotNeeded -- irrelevant */ michael@0: NULL, /* GetHasClockOnToken -- default is false */ michael@0: NULL, /* GetHasProtectedAuthenticationPath -- default is false */ michael@0: NULL, /* GetSupportsDualCryptoOperations -- default is false */ michael@0: NULL, /* GetMaxSessionCount -- default is CK_UNAVAILABLE_INFORMATION */ michael@0: NULL, /* GetMaxRwSessionCount -- default is CK_UNAVAILABLE_INFORMATION */ michael@0: NULL, /* GetMaxPinLen -- irrelevant */ michael@0: NULL, /* GetMinPinLen -- irrelevant */ michael@0: NULL, /* GetTotalPublicMemory -- default is CK_UNAVAILABLE_INFORMATION */ michael@0: NULL, /* GetFreePublicMemory -- default is CK_UNAVAILABLE_INFORMATION */ michael@0: NULL, /* GetTotalPrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */ michael@0: NULL, /* GetFreePrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */ michael@0: builtins_mdToken_GetHardwareVersion, michael@0: builtins_mdToken_GetFirmwareVersion, michael@0: NULL, /* GetUTCTime -- no clock */ michael@0: builtins_mdToken_OpenSession, michael@0: NULL, /* GetMechanismCount -- default is zero */ michael@0: NULL, /* GetMechanismTypes -- irrelevant */ michael@0: NULL, /* GetMechanism -- irrelevant */ michael@0: (void *)NULL /* null terminator */ michael@0: };