andre@0: /* This Source Code Form is subject to the terms of the Mozilla Public andre@0: * License, v. 2.0. If a copy of the MPL was not distributed with this andre@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ andre@0: andre@0: #include "builtins.h" andre@0: andre@0: /* andre@0: * builtins/token.c andre@0: * andre@0: * This file implements the NSSCKMDToken object for the andre@0: * "builtin objects" cryptoki module. andre@0: */ andre@0: andre@0: static NSSUTF8 * andre@0: builtins_mdToken_GetLabel andre@0: ( andre@0: NSSCKMDToken *mdToken, andre@0: NSSCKFWToken *fwToken, andre@0: NSSCKMDInstance *mdInstance, andre@0: NSSCKFWInstance *fwInstance, andre@0: CK_RV *pError andre@0: ) andre@0: { andre@0: return (NSSUTF8 *)nss_builtins_TokenLabel; andre@0: } andre@0: andre@0: static NSSUTF8 * andre@0: builtins_mdToken_GetManufacturerID andre@0: ( andre@0: NSSCKMDToken *mdToken, andre@0: NSSCKFWToken *fwToken, andre@0: NSSCKMDInstance *mdInstance, andre@0: NSSCKFWInstance *fwInstance, andre@0: CK_RV *pError andre@0: ) andre@0: { andre@0: return (NSSUTF8 *)nss_builtins_ManufacturerID; andre@0: } andre@0: andre@0: static NSSUTF8 * andre@0: builtins_mdToken_GetModel andre@0: ( andre@0: NSSCKMDToken *mdToken, andre@0: NSSCKFWToken *fwToken, andre@0: NSSCKMDInstance *mdInstance, andre@0: NSSCKFWInstance *fwInstance, andre@0: CK_RV *pError andre@0: ) andre@0: { andre@0: return (NSSUTF8 *)nss_builtins_TokenModel; andre@0: } andre@0: andre@0: static NSSUTF8 * andre@0: builtins_mdToken_GetSerialNumber andre@0: ( andre@0: NSSCKMDToken *mdToken, andre@0: NSSCKFWToken *fwToken, andre@0: NSSCKMDInstance *mdInstance, andre@0: NSSCKFWInstance *fwInstance, andre@0: CK_RV *pError andre@0: ) andre@0: { andre@0: return (NSSUTF8 *)nss_builtins_TokenSerialNumber; andre@0: } andre@0: andre@0: static CK_BBOOL andre@0: builtins_mdToken_GetIsWriteProtected andre@0: ( andre@0: NSSCKMDToken *mdToken, andre@0: NSSCKFWToken *fwToken, andre@0: NSSCKMDInstance *mdInstance, andre@0: NSSCKFWInstance *fwInstance andre@0: ) andre@0: { andre@0: return CK_TRUE; andre@0: } andre@0: andre@0: static CK_VERSION andre@0: builtins_mdToken_GetHardwareVersion andre@0: ( andre@0: NSSCKMDToken *mdToken, andre@0: NSSCKFWToken *fwToken, andre@0: NSSCKMDInstance *mdInstance, andre@0: NSSCKFWInstance *fwInstance andre@0: ) andre@0: { andre@0: return nss_builtins_HardwareVersion; andre@0: } andre@0: andre@0: static CK_VERSION andre@0: builtins_mdToken_GetFirmwareVersion andre@0: ( andre@0: NSSCKMDToken *mdToken, andre@0: NSSCKFWToken *fwToken, andre@0: NSSCKMDInstance *mdInstance, andre@0: NSSCKFWInstance *fwInstance andre@0: ) andre@0: { andre@0: return nss_builtins_FirmwareVersion; andre@0: } andre@0: andre@0: static NSSCKMDSession * andre@0: builtins_mdToken_OpenSession andre@0: ( andre@0: NSSCKMDToken *mdToken, andre@0: NSSCKFWToken *fwToken, andre@0: NSSCKMDInstance *mdInstance, andre@0: NSSCKFWInstance *fwInstance, andre@0: NSSCKFWSession *fwSession, andre@0: CK_BBOOL rw, andre@0: CK_RV *pError andre@0: ) andre@0: { andre@0: return nss_builtins_CreateSession(fwSession, pError); andre@0: } andre@0: andre@0: const NSSCKMDToken andre@0: nss_builtins_mdToken = { andre@0: (void *)NULL, /* etc */ andre@0: NULL, /* Setup */ andre@0: NULL, /* Invalidate */ andre@0: NULL, /* InitToken -- default errs */ andre@0: builtins_mdToken_GetLabel, andre@0: builtins_mdToken_GetManufacturerID, andre@0: builtins_mdToken_GetModel, andre@0: builtins_mdToken_GetSerialNumber, andre@0: NULL, /* GetHasRNG -- default is false */ andre@0: builtins_mdToken_GetIsWriteProtected, andre@0: NULL, /* GetLoginRequired -- default is false */ andre@0: NULL, /* GetUserPinInitialized -- default is false */ andre@0: NULL, /* GetRestoreKeyNotNeeded -- irrelevant */ andre@0: NULL, /* GetHasClockOnToken -- default is false */ andre@0: NULL, /* GetHasProtectedAuthenticationPath -- default is false */ andre@0: NULL, /* GetSupportsDualCryptoOperations -- default is false */ andre@0: NULL, /* GetMaxSessionCount -- default is CK_UNAVAILABLE_INFORMATION */ andre@0: NULL, /* GetMaxRwSessionCount -- default is CK_UNAVAILABLE_INFORMATION */ andre@0: NULL, /* GetMaxPinLen -- irrelevant */ andre@0: NULL, /* GetMinPinLen -- irrelevant */ andre@0: NULL, /* GetTotalPublicMemory -- default is CK_UNAVAILABLE_INFORMATION */ andre@0: NULL, /* GetFreePublicMemory -- default is CK_UNAVAILABLE_INFORMATION */ andre@0: NULL, /* GetTotalPrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */ andre@0: NULL, /* GetFreePrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */ andre@0: builtins_mdToken_GetHardwareVersion, andre@0: builtins_mdToken_GetFirmwareVersion, andre@0: NULL, /* GetUTCTime -- no clock */ andre@0: builtins_mdToken_OpenSession, andre@0: NULL, /* GetMechanismCount -- default is zero */ andre@0: NULL, /* GetMechanismTypes -- irrelevant */ andre@0: NULL, /* GetMechanism -- irrelevant */ andre@0: (void *)NULL /* null terminator */ andre@0: };