1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/security/nss/lib/ckfw/builtins/btoken.c Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,151 @@ 1.4 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.5 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.6 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.7 + 1.8 +#include "builtins.h" 1.9 + 1.10 +/* 1.11 + * builtins/token.c 1.12 + * 1.13 + * This file implements the NSSCKMDToken object for the 1.14 + * "builtin objects" cryptoki module. 1.15 + */ 1.16 + 1.17 +static NSSUTF8 * 1.18 +builtins_mdToken_GetLabel 1.19 +( 1.20 + NSSCKMDToken *mdToken, 1.21 + NSSCKFWToken *fwToken, 1.22 + NSSCKMDInstance *mdInstance, 1.23 + NSSCKFWInstance *fwInstance, 1.24 + CK_RV *pError 1.25 +) 1.26 +{ 1.27 + return (NSSUTF8 *)nss_builtins_TokenLabel; 1.28 +} 1.29 + 1.30 +static NSSUTF8 * 1.31 +builtins_mdToken_GetManufacturerID 1.32 +( 1.33 + NSSCKMDToken *mdToken, 1.34 + NSSCKFWToken *fwToken, 1.35 + NSSCKMDInstance *mdInstance, 1.36 + NSSCKFWInstance *fwInstance, 1.37 + CK_RV *pError 1.38 +) 1.39 +{ 1.40 + return (NSSUTF8 *)nss_builtins_ManufacturerID; 1.41 +} 1.42 + 1.43 +static NSSUTF8 * 1.44 +builtins_mdToken_GetModel 1.45 +( 1.46 + NSSCKMDToken *mdToken, 1.47 + NSSCKFWToken *fwToken, 1.48 + NSSCKMDInstance *mdInstance, 1.49 + NSSCKFWInstance *fwInstance, 1.50 + CK_RV *pError 1.51 +) 1.52 +{ 1.53 + return (NSSUTF8 *)nss_builtins_TokenModel; 1.54 +} 1.55 + 1.56 +static NSSUTF8 * 1.57 +builtins_mdToken_GetSerialNumber 1.58 +( 1.59 + NSSCKMDToken *mdToken, 1.60 + NSSCKFWToken *fwToken, 1.61 + NSSCKMDInstance *mdInstance, 1.62 + NSSCKFWInstance *fwInstance, 1.63 + CK_RV *pError 1.64 +) 1.65 +{ 1.66 + return (NSSUTF8 *)nss_builtins_TokenSerialNumber; 1.67 +} 1.68 + 1.69 +static CK_BBOOL 1.70 +builtins_mdToken_GetIsWriteProtected 1.71 +( 1.72 + NSSCKMDToken *mdToken, 1.73 + NSSCKFWToken *fwToken, 1.74 + NSSCKMDInstance *mdInstance, 1.75 + NSSCKFWInstance *fwInstance 1.76 +) 1.77 +{ 1.78 + return CK_TRUE; 1.79 +} 1.80 + 1.81 +static CK_VERSION 1.82 +builtins_mdToken_GetHardwareVersion 1.83 +( 1.84 + NSSCKMDToken *mdToken, 1.85 + NSSCKFWToken *fwToken, 1.86 + NSSCKMDInstance *mdInstance, 1.87 + NSSCKFWInstance *fwInstance 1.88 +) 1.89 +{ 1.90 + return nss_builtins_HardwareVersion; 1.91 +} 1.92 + 1.93 +static CK_VERSION 1.94 +builtins_mdToken_GetFirmwareVersion 1.95 +( 1.96 + NSSCKMDToken *mdToken, 1.97 + NSSCKFWToken *fwToken, 1.98 + NSSCKMDInstance *mdInstance, 1.99 + NSSCKFWInstance *fwInstance 1.100 +) 1.101 +{ 1.102 + return nss_builtins_FirmwareVersion; 1.103 +} 1.104 + 1.105 +static NSSCKMDSession * 1.106 +builtins_mdToken_OpenSession 1.107 +( 1.108 + NSSCKMDToken *mdToken, 1.109 + NSSCKFWToken *fwToken, 1.110 + NSSCKMDInstance *mdInstance, 1.111 + NSSCKFWInstance *fwInstance, 1.112 + NSSCKFWSession *fwSession, 1.113 + CK_BBOOL rw, 1.114 + CK_RV *pError 1.115 +) 1.116 +{ 1.117 + return nss_builtins_CreateSession(fwSession, pError); 1.118 +} 1.119 + 1.120 +const NSSCKMDToken 1.121 +nss_builtins_mdToken = { 1.122 + (void *)NULL, /* etc */ 1.123 + NULL, /* Setup */ 1.124 + NULL, /* Invalidate */ 1.125 + NULL, /* InitToken -- default errs */ 1.126 + builtins_mdToken_GetLabel, 1.127 + builtins_mdToken_GetManufacturerID, 1.128 + builtins_mdToken_GetModel, 1.129 + builtins_mdToken_GetSerialNumber, 1.130 + NULL, /* GetHasRNG -- default is false */ 1.131 + builtins_mdToken_GetIsWriteProtected, 1.132 + NULL, /* GetLoginRequired -- default is false */ 1.133 + NULL, /* GetUserPinInitialized -- default is false */ 1.134 + NULL, /* GetRestoreKeyNotNeeded -- irrelevant */ 1.135 + NULL, /* GetHasClockOnToken -- default is false */ 1.136 + NULL, /* GetHasProtectedAuthenticationPath -- default is false */ 1.137 + NULL, /* GetSupportsDualCryptoOperations -- default is false */ 1.138 + NULL, /* GetMaxSessionCount -- default is CK_UNAVAILABLE_INFORMATION */ 1.139 + NULL, /* GetMaxRwSessionCount -- default is CK_UNAVAILABLE_INFORMATION */ 1.140 + NULL, /* GetMaxPinLen -- irrelevant */ 1.141 + NULL, /* GetMinPinLen -- irrelevant */ 1.142 + NULL, /* GetTotalPublicMemory -- default is CK_UNAVAILABLE_INFORMATION */ 1.143 + NULL, /* GetFreePublicMemory -- default is CK_UNAVAILABLE_INFORMATION */ 1.144 + NULL, /* GetTotalPrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */ 1.145 + NULL, /* GetFreePrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */ 1.146 + builtins_mdToken_GetHardwareVersion, 1.147 + builtins_mdToken_GetFirmwareVersion, 1.148 + NULL, /* GetUTCTime -- no clock */ 1.149 + builtins_mdToken_OpenSession, 1.150 + NULL, /* GetMechanismCount -- default is zero */ 1.151 + NULL, /* GetMechanismTypes -- irrelevant */ 1.152 + NULL, /* GetMechanism -- irrelevant */ 1.153 + (void *)NULL /* null terminator */ 1.154 +};