Bug Summary

File:root/firefox-clang/security/nss/lib/pk11wrap/debug_module.c
Warning:line 3454, column 1
Opened stream never closed. Potential resource leak

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple x86_64-pc-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name pk11load.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -analyzer-config-compatibility-mode=true -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=all -relaxed-aliasing -ffp-contract=off -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/root/firefox-clang/obj-x86_64-pc-linux-gnu/security/nss/lib/pk11wrap/pk11wrap_pk11wrap -fcoverage-compilation-dir=/root/firefox-clang/obj-x86_64-pc-linux-gnu/security/nss/lib/pk11wrap/pk11wrap_pk11wrap -resource-dir /usr/lib/llvm-21/lib/clang/21 -include /root/firefox-clang/obj-x86_64-pc-linux-gnu/mozilla-config.h -U _FORTIFY_SOURCE -D _FORTIFY_SOURCE=2 -D _GLIBCXX_ASSERTIONS -D DEBUG -D SHLIB_SUFFIX="so" -D SHLIB_PREFIX="lib" -D NSS_SHLIB_VERSION="3" -D SOFTOKEN_SHLIB_VERSION="3" -D NSS_FIPS_DISABLED -D NSS_NO_INIT_SUPPORT -D NSS_X86_OR_X64 -D NSS_X64 -D NSS_USE_64 -D USE_UTIL_DIRECTLY -D NO_NSPR_10_SUPPORT -D SSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -D LINUX2_1 -D LINUX -D linux -D _DEFAULT_SOURCE -D _BSD_SOURCE -D _POSIX_SOURCE -D SDB_MEASURE_USE_TEMP_DIR -D HAVE_STRERROR -D XP_UNIX -D _REENTRANT -D NSS_DISABLE_DBM -D NSS_DISABLE_LIBPKIX -I /root/firefox-clang/security/nss/lib/pk11wrap -I /root/firefox-clang/obj-x86_64-pc-linux-gnu/security/nss/lib/pk11wrap/pk11wrap_pk11wrap -I /root/firefox-clang/obj-x86_64-pc-linux-gnu/dist/include/nspr -I /root/firefox-clang/obj-x86_64-pc-linux-gnu/dist/include/private/nss -I /root/firefox-clang/obj-x86_64-pc-linux-gnu/dist/include/nss -I /root/firefox-clang/obj-x86_64-pc-linux-gnu/dist/include -D MOZILLA_CLIENT -internal-isystem /usr/lib/llvm-21/lib/clang/21/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/14/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O2 -Wno-error=tautological-type-limit-compare -Wno-range-loop-analysis -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=atomic-alignment -Wno-error=deprecated-builtins -Wno-psabi -Wno-error=builtin-macro-redefined -Wno-unknown-warning-option -ferror-limit 19 -fstrict-flex-arrays=1 -stack-protector 2 -fstack-clash-protection -ftrivial-auto-var-init=pattern -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -vectorize-loops -vectorize-slp -analyzer-checker optin.performance.Padding -analyzer-output=html -analyzer-config stable-report-filename=true -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/scan-build-2025-06-27-100320-3286336-1 -x c /root/firefox-clang/security/nss/lib/pk11wrap/pk11load.c

/root/firefox-clang/security/nss/lib/pk11wrap/pk11load.c

1/* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4/*
5 * The following handles the loading, unloading and management of
6 * various PCKS #11 modules
7 */
8#define FORCE_PR_LOG1 1
9#include "base.h"
10#include "seccomon.h"
11#include "pkcs11.h"
12#include "secmod.h"
13#include "prlink.h"
14#include "pk11func.h"
15#include "secmodi.h"
16#include "secmodti.h"
17#include "nssilock.h"
18#include "secerr.h"
19#include "prenv.h"
20#include "utilpars.h"
21#include "prio.h"
22#include "prprf.h"
23#include <stdio.h>
24#include "prsystem.h"
25
26#define DEBUG_MODULE1 1
27
28#ifdef DEBUG_MODULE1
29static char *modToDBG = NULL((void*)0);
30
31#include "debug_module.c"
32#endif
33
34/* build the PKCS #11 2.01 lock files */
35CK_RV PR_CALLBACK
36secmodCreateMutext(CK_VOID_PTR_PTR pmutex)
37{
38 *pmutex = (CK_VOID_PTR)PZ_NewLock(nssILockOther)PR_NewLock();
39 if (*pmutex)
40 return CKR_OK0x00000000UL;
41 return CKR_HOST_MEMORY0x00000002UL;
42}
43
44CK_RV PR_CALLBACK
45secmodDestroyMutext(CK_VOID_PTR mutext)
46{
47 PZ_DestroyLock((PZLock *)mutext)PR_DestroyLock(((PRLock *)mutext));
48 return CKR_OK0x00000000UL;
49}
50
51CK_RV PR_CALLBACK
52secmodLockMutext(CK_VOID_PTR mutext)
53{
54 PZ_Lock((PZLock *)mutext)PR_Lock(((PRLock *)mutext));
55 return CKR_OK0x00000000UL;
56}
57
58CK_RV PR_CALLBACK
59secmodUnlockMutext(CK_VOID_PTR mutext)
60{
61 PZ_Unlock((PZLock *)mutext)PR_Unlock(((PRLock *)mutext));
62 return CKR_OK0x00000000UL;
63}
64
65static SECMODModuleID nextModuleID = 1;
66static const CK_C_INITIALIZE_ARGS secmodLockFunctions = {
67 secmodCreateMutext, secmodDestroyMutext, secmodLockMutext,
68 secmodUnlockMutext, CKF_LIBRARY_CANT_CREATE_OS_THREADS0x00000001UL | CKF_OS_LOCKING_OK0x00000002UL,
69 NULL((void*)0)
70};
71static const CK_C_INITIALIZE_ARGS secmodNoLockArgs = {
72 NULL((void*)0), NULL((void*)0), NULL((void*)0), NULL((void*)0),
73 CKF_LIBRARY_CANT_CREATE_OS_THREADS0x00000001UL, NULL((void*)0)
74};
75
76static PRBool loadSingleThreadedModules = PR_TRUE1;
77static PRBool enforceAlreadyInitializedError = PR_TRUE1;
78static PRBool finalizeModules = PR_TRUE1;
79
80/* set global options for NSS PKCS#11 module loader */
81SECStatus
82pk11_setGlobalOptions(PRBool noSingleThreadedModules,
83 PRBool allowAlreadyInitializedModules,
84 PRBool dontFinalizeModules)
85{
86 if (noSingleThreadedModules) {
87 loadSingleThreadedModules = PR_FALSE0;
88 } else {
89 loadSingleThreadedModules = PR_TRUE1;
90 }
91 if (allowAlreadyInitializedModules) {
92 enforceAlreadyInitializedError = PR_FALSE0;
93 } else {
94 enforceAlreadyInitializedError = PR_TRUE1;
95 }
96 if (dontFinalizeModules) {
97 finalizeModules = PR_FALSE0;
98 } else {
99 finalizeModules = PR_TRUE1;
100 }
101 return SECSuccess;
102}
103
104PRBool
105pk11_getFinalizeModulesOption(void)
106{
107 return finalizeModules;
108}
109
110/*
111 * Allow specification loading the same module more than once at init time.
112 * This enables 2 things.
113 *
114 * 1) we can load additional databases by manipulating secmod.db/pkcs11.txt.
115 * 2) we can handle the case where some library has already initialized NSS
116 * before the main application.
117 *
118 * oldModule is the module we have already initialized.
119 * char *modulespec is the full module spec for the library we want to
120 * initialize.
121 */
122static SECStatus
123secmod_handleReload(SECMODModule *oldModule, SECMODModule *newModule)
124{
125 PK11SlotInfo *slot;
126 char *modulespec;
127 char *newModuleSpec;
128 char **children;
129 CK_SLOT_ID *ids;
130 SECMODConfigList *conflist = NULL((void*)0);
131 SECStatus rv = SECFailure;
132 int count = 0;
133
134 /* first look for tokens= key words from the module spec */
135 modulespec = newModule->libraryParams;
136 newModuleSpec = secmod_ParseModuleSpecForTokens(PR_TRUE1,
137 newModule->isFIPS, modulespec, &children, &ids);
138 if (!newModuleSpec) {
139 return SECFailure;
140 }
141
142 /*
143 * We are now trying to open a new slot on an already loaded module.
144 * If that slot represents a cert/key database, we don't want to open
145 * multiple copies of that same database. Unfortunately we understand
146 * the softoken flags well enough to be able to do this, so we can only get
147 * the list of already loaded databases if we are trying to open another
148 * internal module.
149 */
150 if (oldModule->internal) {
151 conflist = secmod_GetConfigList(oldModule->isFIPS,
152 oldModule->libraryParams, &count);
153 }
154
155 /* don't open multiple of the same db */
156 if (conflist && secmod_MatchConfigList(newModuleSpec, conflist, count)) {
157 rv = SECSuccess;
158 goto loser;
159 }
160 slot = SECMOD_OpenNewSlot(oldModule, newModuleSpec);
161 if (slot) {
162 int newID;
163 char **thisChild;
164 CK_SLOT_ID *thisID;
165 char *oldModuleSpec;
166
167 if (secmod_IsInternalKeySlot(newModule)) {
168 pk11_SetInternalKeySlotIfFirst(slot);
169 }
170 newID = slot->slotID;
171 PK11_FreeSlot(slot);
172 for (thisChild = children, thisID = ids; thisChild && *thisChild;
173 thisChild++, thisID++) {
174 if (conflist &&
175 secmod_MatchConfigList(*thisChild, conflist, count)) {
176 *thisID = (CK_SLOT_ID)-1;
177 continue;
178 }
179 slot = SECMOD_OpenNewSlot(oldModule, *thisChild);
180 if (slot) {
181 *thisID = slot->slotID;
182 PK11_FreeSlot(slot);
183 } else {
184 *thisID = (CK_SLOT_ID)-1;
185 }
186 }
187
188 /* update the old module initialization string in case we need to
189 * shutdown and reinit the whole mess (this is rare, but can happen
190 * when trying to stop smart card insertion/removal threads)... */
191 oldModuleSpec = secmod_MkAppendTokensList(oldModule->arena,
192 oldModule->libraryParams, newModuleSpec, newID,
193 children, ids);
194 if (oldModuleSpec) {
195 oldModule->libraryParams = oldModuleSpec;
196 }
197
198 rv = SECSuccess;
199 }
200
201loser:
202 secmod_FreeChildren(children, ids);
203 PORT_FreePORT_Free_Util(newModuleSpec);
204 if (conflist) {
205 secmod_FreeConfigList(conflist, count);
206 }
207 return rv;
208}
209
210/*
211 * collect the steps we need to initialize a module in a single function
212 */
213SECStatus
214secmod_ModuleInit(SECMODModule *mod, SECMODModule **reload,
215 PRBool *alreadyLoaded)
216{
217 CK_C_INITIALIZE_ARGS moduleArgs;
218 CK_VOID_PTR pInitArgs;
219 CK_RV crv;
220
221 if (reload) {
222 *reload = NULL((void*)0);
223 }
224
225 if (!mod || !alreadyLoaded) {
226 PORT_SetErrorPORT_SetError_Util(SEC_ERROR_INVALID_ARGS);
227 return SECFailure;
228 }
229
230 if (mod->libraryParams == NULL((void*)0)) {
231 if (mod->isThreadSafe) {
232 pInitArgs = (void *)&secmodLockFunctions;
233 } else {
234 pInitArgs = NULL((void*)0);
235 }
236 } else {
237 if (mod->isThreadSafe) {
238 moduleArgs = secmodLockFunctions;
239 } else {
240 moduleArgs = secmodNoLockArgs;
241 }
242 moduleArgs.LibraryParameters = (void *)mod->libraryParams;
243 pInitArgs = &moduleArgs;
244 }
245 crv = PK11_GETTAB(mod)((CK_FUNCTION_LIST_3_0_PTR)((mod)->functionList))->C_Initialize(pInitArgs);
246 if (CKR_CRYPTOKI_ALREADY_INITIALIZED0x00000191UL == crv) {
247 SECMODModule *oldModule = NULL((void*)0);
248
249 /* Library has already been loaded once, if caller expects it, and it
250 * has additional configuration, try reloading it as well. */
251 if (reload != NULL((void*)0) && mod->libraryParams) {
252 oldModule = secmod_FindModuleByFuncPtr(mod->functionList);
253 }
254 /* Library has been loaded by NSS. It means it may be capable of
255 * reloading */
256 if (oldModule) {
257 SECStatus rv;
258 rv = secmod_handleReload(oldModule, mod);
259 if (rv == SECSuccess) {
260 /* This module should go away soon, since we've
261 * simply expanded the slots on the old module.
262 * When it goes away, it should not Finalize since
263 * that will close our old module as well. Setting
264 * the function list to NULL will prevent that close */
265 mod->functionList = NULL((void*)0);
266 *reload = oldModule;
267 return SECSuccess;
268 }
269 SECMOD_DestroyModule(oldModule);
270 }
271 /* reload not possible, fall back to old semantics */
272 if (!enforceAlreadyInitializedError) {
273 *alreadyLoaded = PR_TRUE1;
274 return SECSuccess;
275 }
276 }
277 if (crv != CKR_OK0x00000000UL) {
278 if (!mod->isThreadSafe ||
279 crv == CKR_NSS_CERTDB_FAILED((0x80000000UL | 0x4E534350) + 1) ||
280 crv == CKR_NSS_KEYDB_FAILED((0x80000000UL | 0x4E534350) + 2)) {
281 PORT_SetErrorPORT_SetError_Util(PK11_MapError(crv));
282 return SECFailure;
283 }
284 /* If we had attempted to init a single threaded module "with"
285 * parameters and it failed, should we retry "without" parameters?
286 * (currently we don't retry in this scenario) */
287
288 if (!loadSingleThreadedModules) {
289 PORT_SetErrorPORT_SetError_Util(SEC_ERROR_INCOMPATIBLE_PKCS11);
290 return SECFailure;
291 }
292 /* If we arrive here, the module failed a ThreadSafe init. */
293 mod->isThreadSafe = PR_FALSE0;
294 if (!mod->libraryParams) {
295 pInitArgs = NULL((void*)0);
296 } else {
297 moduleArgs = secmodNoLockArgs;
298 moduleArgs.LibraryParameters = (void *)mod->libraryParams;
299 pInitArgs = &moduleArgs;
300 }
301 crv = PK11_GETTAB(mod)((CK_FUNCTION_LIST_3_0_PTR)((mod)->functionList))->C_Initialize(pInitArgs);
302 if ((CKR_CRYPTOKI_ALREADY_INITIALIZED0x00000191UL == crv) &&
303 (!enforceAlreadyInitializedError)) {
304 *alreadyLoaded = PR_TRUE1;
305 return SECSuccess;
306 }
307 if (crv != CKR_OK0x00000000UL) {
308 PORT_SetErrorPORT_SetError_Util(PK11_MapError(crv));
309 return SECFailure;
310 }
311 }
312 return SECSuccess;
313}
314
315/*
316 * set the hasRootCerts flags in the module so it can be stored back
317 * into the database.
318 */
319void
320SECMOD_SetRootCerts(PK11SlotInfo *slot, SECMODModule *mod)
321{
322 PK11PreSlotInfo *psi = NULL((void*)0);
323 int i;
324
325 if (slot->hasRootCerts) {
326 for (i = 0; i < mod->slotInfoCount; i++) {
327 if (slot->slotID == mod->slotInfo[i].slotID) {
328 psi = &mod->slotInfo[i];
329 break;
330 }
331 }
332 if (psi == NULL((void*)0)) {
333 /* allocate more slots */
334 PK11PreSlotInfo *psi_list = (PK11PreSlotInfo *)
335 PORT_ArenaAllocPORT_ArenaAlloc_Util(mod->arena,
336 (mod->slotInfoCount + 1) * sizeof(PK11PreSlotInfo));
337 /* copy the old ones */
338 if (mod->slotInfoCount > 0) {
339 PORT_Memcpymemcpy(psi_list, mod->slotInfo,
340 (mod->slotInfoCount) * sizeof(PK11PreSlotInfo));
341 }
342 /* assign psi to the last new slot */
343 psi = &psi_list[mod->slotInfoCount];
344 psi->slotID = slot->slotID;
345 psi->askpw = 0;
346 psi->timeout = 0;
347 psi->defaultFlags = 0;
348
349 /* increment module count & store new list */
350 mod->slotInfo = psi_list;
351 mod->slotInfoCount++;
352 }
353 psi->hasRootCerts = 1;
354 }
355}
356
357#ifndef NSS_STATIC_SOFTOKEN
358static const char *my_shlib_name =
359 SHLIB_PREFIX"lib" "nss" NSS_SHLIB_VERSION"3" "." SHLIB_SUFFIX"so";
360static const char *softoken_shlib_name =
361 SHLIB_PREFIX"lib" "softokn" SOFTOKEN_SHLIB_VERSION"3" "." SHLIB_SUFFIX"so";
362static const PRCallOnceType pristineCallOnce;
363static PRCallOnceType loadSoftokenOnce;
364static PRLibrary *softokenLib;
365static PRInt32 softokenLoadCount;
366
367/* This function must be run only once. */
368/* determine if hybrid platform, then actually load the DSO. */
369static PRStatus
370softoken_LoadDSO(void)
371{
372 PRLibrary *handle;
373
374 handle = PORT_LoadLibraryFromOrigin(my_shlib_name,
375 (PRFuncPtr)&softoken_LoadDSO,
376 softoken_shlib_name);
377 if (handle) {
378 softokenLib = handle;
379 return PR_SUCCESS;
380 }
381 return PR_FAILURE;
382}
383#else
384CK_RV NSC_GetInterface(CK_UTF8CHAR_PTR pInterfaceName,
385 CK_VERSION_PTR pVersion,
386 CK_INTERFACE_PTR_PTR *ppInterface, CK_FLAGS flags);
387char **NSC_ModuleDBFunc(unsigned long function, char *parameters, void *args);
388#endif
389
390SECStatus
391secmod_DetermineModuleFunctionList(SECMODModule *mod)
392{
393 PRLibrary *library = NULL((void*)0);
394 CK_C_GetInterface ientry = NULL((void*)0);
395 CK_C_GetFunctionList fentry = NULL((void*)0);
396 char *disableUnload = NULL((void*)0);
397#ifndef NSS_STATIC_SOFTOKEN
398 const char *nss_interface;
399 const char *nss_function;
400#endif
401 CK_INTERFACE_PTR interface;
402
403 /* internal modules get loaded from their internal list */
404 if (mod->internal && (mod->dllName == NULL((void*)0))) {
405#ifdef NSS_STATIC_SOFTOKEN
406 ientry = (CK_C_GetInterface)NSC_GetInterface;
407#else
408 /*
409 * Loads softoken as a dynamic library,
410 * even though the rest of NSS assumes this as the "internal" module.
411 */
412 if (!softokenLib &&
413 PR_SUCCESS != PR_CallOnce(&loadSoftokenOnce, &softoken_LoadDSO))
414 return SECFailure;
415
416 PR_ATOMIC_INCREMENT(&softokenLoadCount)__sync_add_and_fetch(&softokenLoadCount, 1);
417
418 if (mod->isFIPS) {
419 nss_interface = "FC_GetInterface";
420 nss_function = "FC_GetFunctionList";
421 } else {
422 nss_interface = "NSC_GetInterface";
423 nss_function = "NSC_GetFunctionList";
424 }
425
426 ientry = (CK_C_GetInterface)
427 PR_FindSymbol(softokenLib, nss_interface);
428 if (!ientry) {
429 fentry = (CK_C_GetFunctionList)
430 PR_FindSymbol(softokenLib, nss_function);
431 if (!fentry) {
432 return SECFailure;
433 }
434 }
435#endif
436
437 if (mod->isModuleDB) {
438 mod->moduleDBFunc = (CK_C_GetFunctionList)
439#ifdef NSS_STATIC_SOFTOKEN
440 NSC_ModuleDBFunc;
441#else
442 PR_FindSymbol(softokenLib, "NSC_ModuleDBFunc");
443#endif
444 }
445
446 if (mod->moduleDBOnly) {
447 mod->loaded = PR_TRUE1;
448 return SECSuccess;
449 }
450 } else {
451 /* Not internal, load the DLL and look up C_GetFunctionList */
452 if (mod->dllName == NULL((void*)0)) {
453 return SECFailure;
454 }
455
456/* load the library. If this succeeds, then we have to remember to
457 * unload the library if anything goes wrong from here on out...
458 */
459#if defined(_WIN32)
460 if (nssUTF8_Length(mod->dllName, NULL((void*)0))) {
461 wchar_t *dllNameWide = _NSSUTIL_UTF8ToWide(mod->dllName);
462 if (dllNameWide) {
463 PRLibSpec libSpec;
464 libSpec.type = PR_LibSpec_PathnameU;
465 libSpec.value.pathname_u = dllNameWide;
466 library = PR_LoadLibraryWithFlags(libSpec, 0);
467 PORT_FreePORT_Free_Util(dllNameWide);
468 }
469 }
470 if (library == NULL((void*)0)) {
471 // fallback to system code page
472 library = PR_LoadLibrary(mod->dllName);
473 }
474#else
475 library = PR_LoadLibrary(mod->dllName);
476#endif // defined(_WIN32)
477 mod->library = (void *)library;
478
479 if (library == NULL((void*)0)) {
480 return SECFailure;
481 }
482
483 /*
484 * now we need to get the entry point to find the function pointers
485 */
486 if (!mod->moduleDBOnly) {
487 ientry = (CK_C_GetInterface)
488 PR_FindSymbol(library, "C_GetInterface");
489 if (!ientry) {
490 fentry = (CK_C_GetFunctionList)
491 PR_FindSymbol(library, "C_GetFunctionList");
492 }
493 }
494 if (mod->isModuleDB) {
495 mod->moduleDBFunc = (void *)
496 PR_FindSymbol(library, "NSS_ReturnModuleSpecData");
497 }
498 if (mod->moduleDBFunc == NULL((void*)0))
499 mod->isModuleDB = PR_FALSE0;
500 if ((ientry == NULL((void*)0)) && (fentry == NULL((void*)0))) {
501 if (mod->isModuleDB) {
502 mod->loaded = PR_TRUE1;
503 mod->moduleDBOnly = PR_TRUE1;
504 return SECSuccess;
505 }
506 PR_UnloadLibrary(library);
507 return SECFailure;
508 }
509 }
510
511 /*
512 * We need to get the function list
513 */
514 if (ientry) {
515 /* we first try to get a FORK_SAFE interface */
516 if ((*ientry)((CK_UTF8CHAR_PTR) "PKCS 11", NULL((void*)0), &interface,
517 CKF_INTERFACE_FORK_SAFE0x00000001UL) != CKR_OK0x00000000UL) {
518 /* one is not appearantly available, get a non-fork safe version */
519 if ((*ientry)((CK_UTF8CHAR_PTR) "PKCS 11", NULL((void*)0), &interface, 0) != CKR_OK0x00000000UL) {
520 goto fail;
521 }
522 }
523 mod->functionList = interface->pFunctionList;
524 mod->flags = interface->flags;
525 /* if we have a fips indicator, grab it */
526 if ((*ientry)((CK_UTF8CHAR_PTR) "Vendor NSS FIPS Interface", NULL((void*)0),
527 &interface, 0) == CKR_OK0x00000000UL) {
528 mod->fipsIndicator = ((CK_NSS_FIPS_FUNCTIONS *)(interface->pFunctionList))->NSC_NSSGetFIPSStatus;
529 }
530 } else {
531 if ((*fentry)((CK_FUNCTION_LIST_PTR *)&mod->functionList) != CKR_OK0x00000000UL)
532 goto fail;
533 mod->flags = 0;
534 }
535
536#ifdef DEBUG_MODULE1
537 modToDBG = PR_GetEnvSecure("NSS_DEBUG_PKCS11_MODULE");
538 if (modToDBG && strcmp(mod->commonName, modToDBG) == 0) {
539 mod->functionList = (void *)nss_InsertDeviceLog(
540 (CK_FUNCTION_LIST_3_0_PTR)mod->functionList);
541 }
542#endif
543
544 return SECSuccess;
545
546fail:
547 mod->functionList = NULL((void*)0);
548 disableUnload = PR_GetEnvSecure("NSS_DISABLE_UNLOAD");
549 if (library && !disableUnload) {
550 PR_UnloadLibrary(library);
551 }
552 return SECFailure;
553}
554
555SECStatus
556secmod_InitializeModuleAndGetSlotInfo(SECMODModule *mod, SECMODModule **oldModule)
557{
558 CK_INFO info;
559 CK_ULONG slotCount = 0;
560 SECStatus rv;
561 PRBool alreadyLoaded = PR_FALSE0;
562
563 /* This test operation makes sure our locking system is
564 * consistent even if we are using non-thread safe tokens by
565 * simulating unsafe tokens with safe ones. */
566 mod->isThreadSafe = !PR_GetEnvSecure("NSS_FORCE_TOKEN_LOCK");
567
568 /* Now we initialize the module */
569 rv = secmod_ModuleInit(mod, oldModule, &alreadyLoaded);
570 if (rv != SECSuccess) {
571 goto fail;
572 }
573
574 /* module has been reloaded, this module itself is done,
575 * return to the caller */
576 if (mod->functionList == NULL((void*)0)) {
577 mod->loaded = PR_TRUE1; /* technically the module is loaded.. */
578 return SECSuccess;
579 }
580
581 /* check the version number */
582 if (PK11_GETTAB(mod)((CK_FUNCTION_LIST_3_0_PTR)((mod)->functionList))->C_GetInfo(&info) != CKR_OK0x00000000UL)
583 goto fail2;
584 if (info.cryptokiVersion.major < 2)
585 goto fail2;
586 /* all 2.0 are a priori *not* thread safe */
587 if ((info.cryptokiVersion.major == 2) && (info.cryptokiVersion.minor < 1)) {
588 if (!loadSingleThreadedModules) {
589 PORT_SetErrorPORT_SetError_Util(SEC_ERROR_INCOMPATIBLE_PKCS11);
590 goto fail2;
591 } else {
592 mod->isThreadSafe = PR_FALSE0;
593 }
594 }
595 mod->cryptokiVersion = info.cryptokiVersion;
596
597 /* If we don't have a common name, get it from the PKCS 11 module */
598 if ((mod->commonName == NULL((void*)0)) || (mod->commonName[0] == 0)) {
599 mod->commonName = PK11_MakeString(mod->arena, NULL((void*)0),
600 (char *)info.libraryDescription, sizeof(info.libraryDescription));
601 if (mod->commonName == NULL((void*)0))
602 goto fail2;
603 }
604
605 /* initialize the Slots */
606 if (PK11_GETTAB(mod)((CK_FUNCTION_LIST_3_0_PTR)((mod)->functionList))->C_GetSlotList(CK_FALSE0, NULL((void*)0), &slotCount) == CKR_OK0x00000000UL) {
607 CK_SLOT_ID *slotIDs;
608 int i;
609 CK_RV crv;
610
611 mod->slots = (PK11SlotInfo **)PORT_ArenaAllocPORT_ArenaAlloc_Util(mod->arena,
612 sizeof(PK11SlotInfo *) * slotCount);
613 if (mod->slots == NULL((void*)0))
614 goto fail2;
615
616 slotIDs = (CK_SLOT_ID *)PORT_AllocPORT_Alloc_Util(sizeof(CK_SLOT_ID) * slotCount);
617 if (slotIDs == NULL((void*)0)) {
618 goto fail2;
619 }
620 crv = PK11_GETTAB(mod)((CK_FUNCTION_LIST_3_0_PTR)((mod)->functionList))->C_GetSlotList(CK_FALSE0, slotIDs, &slotCount);
621 if (crv != CKR_OK0x00000000UL) {
622 PORT_FreePORT_Free_Util(slotIDs);
623 goto fail2;
624 }
625
626 /* Initialize each slot */
627 for (i = 0; i < (int)slotCount; i++) {
628 mod->slots[i] = PK11_NewSlotInfo(mod);
629 PK11_InitSlot(mod, slotIDs[i], mod->slots[i]);
630 /* look down the slot info table */
631 PK11_LoadSlotList(mod->slots[i], mod->slotInfo, mod->slotInfoCount);
632 SECMOD_SetRootCerts(mod->slots[i], mod);
633 /* explicitly mark the internal slot as such if IsInternalKeySlot()
634 * is set */
635 if (secmod_IsInternalKeySlot(mod) && (i == (mod->isFIPS ? 0 : 1))) {
636 pk11_SetInternalKeySlotIfFirst(mod->slots[i]);
637 }
638 }
639 mod->slotCount = slotCount;
640 mod->slotInfoCount = 0;
641 PORT_FreePORT_Free_Util(slotIDs);
642 }
643
644 mod->loaded = PR_TRUE1;
645 mod->moduleID = nextModuleID++;
646 return SECSuccess;
647fail2:
648 if (enforceAlreadyInitializedError || (!alreadyLoaded)) {
649 PK11_GETTAB(mod)((CK_FUNCTION_LIST_3_0_PTR)((mod)->functionList))->C_Finalize(NULL((void*)0));
650 }
651fail:
652 mod->functionList = NULL((void*)0);
653 return SECFailure;
654}
655
656/*
657 * load a new module into our address space and initialize it.
658 */
659SECStatus
660secmod_LoadPKCS11Module(SECMODModule *mod, SECMODModule **oldModule)
661{
662 SECStatus rv = SECFailure;
663 if (mod->loaded) {
664 return SECSuccess;
665 }
666
667 mod->fipsIndicator = NULL((void*)0);
668
669 rv = secmod_DetermineModuleFunctionList(mod);
670 if (rv != SECSuccess) { // The error code is set up by secmod_DetermineModuleFunctionList.
671 return rv;
672 }
673
674 if (mod->loaded == PR_TRUE1) {
675 return SECSuccess;
676 }
677
678 rv = secmod_InitializeModuleAndGetSlotInfo(mod, oldModule);
679 if (rv != SECSuccess) { // The error code is set up by secmod_InitializeModuleAndGetSlotInfo
680 return rv;
681 }
682
683 return SECSuccess;
684}
685
686/*
687 * load a new module using provided fentry function
688 */
689SECStatus
690secmod_LoadPKCS11ModuleFromFunction(SECMODModule *mod, SECMODModule **oldModule,
691 CK_C_GetFunctionList fentry)
692{
693 SECStatus rv = SECFailure;
694 CK_RV crv;
695 if (mod->loaded) {
696 return SECSuccess;
697 }
698
699 mod->fipsIndicator = NULL((void*)0);
700
701 if (!fentry) {
702 PORT_SetErrorPORT_SetError_Util(SEC_ERROR_INVALID_ARGS);
703 return SECFailure;
704 }
705
706 crv = fentry((CK_FUNCTION_LIST_PTR *)&mod->functionList);
707 if (crv != CKR_OK0x00000000UL) {
708 mod->functionList = NULL((void*)0);
709 PORT_SetErrorPORT_SetError_Util(PK11_MapError(crv));
710 return SECFailure;
711 }
712
713 if (mod->functionList == NULL((void*)0)) {
714 PORT_SetErrorPORT_SetError_Util(SEC_ERROR_LIBRARY_FAILURE);
715 return SECFailure;
716 }
717
718 mod->flags = 0;
719 rv = secmod_InitializeModuleAndGetSlotInfo(mod, oldModule);
720 if (rv != SECSuccess) {
721 return rv;
722 }
723
724 return SECSuccess;
725}
726
727SECStatus
728SECMOD_UnloadModule(SECMODModule *mod)
729{
730 PRLibrary *library;
731 char *disableUnload = NULL((void*)0);
732
733 if (!mod->loaded) {
734 return SECFailure;
735 }
736 if (finalizeModules) {
737 if (mod->functionList && !mod->moduleDBOnly) {
738 PK11_GETTAB(mod)((CK_FUNCTION_LIST_3_0_PTR)((mod)->functionList))->C_Finalize(NULL((void*)0));
739 }
740 }
741 mod->moduleID = 0;
742 mod->loaded = PR_FALSE0;
743
744 /* do we want the semantics to allow unloading the internal library?
745 * if not, we should change this to SECFailure and move it above the
746 * mod->loaded = PR_FALSE; */
747 if (mod->internal && (mod->dllName == NULL((void*)0))) {
748#ifndef NSS_STATIC_SOFTOKEN
749 if (0 == PR_ATOMIC_DECREMENT(&softokenLoadCount)__sync_sub_and_fetch(&softokenLoadCount, 1)) {
750 if (softokenLib) {
751 disableUnload = PR_GetEnvSecure("NSS_DISABLE_UNLOAD");
752 if (!disableUnload) {
753#ifdef DEBUG1
754 PRStatus status = PR_UnloadLibrary(softokenLib);
755 PORT_Assert(PR_SUCCESS == status)((PR_SUCCESS == status)?((void)0):PR_Assert("PR_SUCCESS == status"
,"/root/firefox-clang/security/nss/lib/pk11wrap/pk11load.c",755
))
;
756#else
757 PR_UnloadLibrary(softokenLib);
758#endif
759 }
760 softokenLib = NULL((void*)0);
761 }
762 loadSoftokenOnce = pristineCallOnce;
763 }
764#endif
765 return SECSuccess;
766 }
767
768 library = (PRLibrary *)mod->library;
769 /* if no library, then we should not unload it */
770 if (library == NULL((void*)0)) {
771 return SECSuccess;
772 }
773
774 disableUnload = PR_GetEnvSecure("NSS_DISABLE_UNLOAD");
775 if (!disableUnload) {
776 PR_UnloadLibrary(library);
777 }
778 return SECSuccess;
779}
780
781void
782nss_DumpModuleLog(void)
783{
784#ifdef DEBUG_MODULE1
785 if (modToDBG) {
1
Assuming 'modToDBG' is non-null
2
Taking true branch
786 print_final_statistics();
3
Calling 'print_final_statistics'
787 }
788#endif
789}

/root/firefox-clang/security/nss/lib/pk11wrap/debug_module.c

1/* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4#include "prlog.h"
5#include <stdio.h>
6#include "cert.h" /* for CERT_DerNameToAscii & CERT_Hexify */
7
8static PRLogModuleInfo *modlog = NULL((void*)0);
9
10static CK_FUNCTION_LIST_3_0_PTR module_functions;
11
12static CK_FUNCTION_LIST_3_0 debug_functions;
13
14static void print_final_statistics(void);
15
16#define STRINGstatic const char static const char
17STRINGstatic const char fmt_flags[] = " flags = 0x%x";
18STRINGstatic const char fmt_hKey[] = " hKey = 0x%x";
19STRINGstatic const char fmt_hObject[] = " hObject = 0x%x";
20STRINGstatic const char fmt_hSession[] = " hSession = 0x%x";
21STRINGstatic const char fmt_manufacturerID[] = " manufacturerID = \"%.32s\"";
22STRINGstatic const char fmt_pAssociatedData[] = " pAssociatedData = 0x%p";
23STRINGstatic const char fmt_pCiphertext[] = " pCiphertext = 0x%p";
24STRINGstatic const char fmt_pCiphertextPart[] = " pCiphertextPart = 0x%p";
25STRINGstatic const char fmt_pData[] = " pData = 0x%p";
26STRINGstatic const char fmt_pDigest[] = " pDigest = 0x%p";
27STRINGstatic const char fmt_pEncryptedData[] = " pEncryptedData = 0x%p";
28STRINGstatic const char fmt_pEncryptedPart[] = " pEncryptedPart = 0x%p";
29STRINGstatic const char fmt_pInfo[] = " pInfo = 0x%p";
30STRINGstatic const char fmt_pMechanism[] = " pMechanism = 0x%p";
31STRINGstatic const char fmt_pOperationState[] = " pOperationState = 0x%p";
32STRINGstatic const char fmt_pParameter[] = " pParameter = 0x%p";
33STRINGstatic const char fmt_pPart[] = " pPart = 0x%p";
34STRINGstatic const char fmt_pPlaintext[] = " pPlaintext = 0x%p";
35STRINGstatic const char fmt_pPlaintextPart[] = " pPlaintextPart = 0x%p";
36STRINGstatic const char fmt_pPin[] = " pPin = 0x%p";
37STRINGstatic const char fmt_pSignature[] = " pSignature = 0x%p";
38STRINGstatic const char fmt_pTemplate[] = " pTemplate = 0x%p";
39STRINGstatic const char fmt_pWrappedKey[] = " pWrappedKey = 0x%p";
40STRINGstatic const char fmt_phKey[] = " phKey = 0x%p";
41STRINGstatic const char fmt_phObject[] = " phObject = 0x%p";
42STRINGstatic const char fmt_pulCount[] = " pulCount = 0x%p";
43STRINGstatic const char fmt_pulCiphertextLen[] = " pulCiphertextLen = 0x%p";
44STRINGstatic const char fmt_pulCiphertextPartLen[] = " pulCiphertextPartLen = 0x%p";
45STRINGstatic const char fmt_pulDataLen[] = " pulDataLen = 0x%p";
46STRINGstatic const char fmt_pulDigestLen[] = " pulDigestLen = 0x%p";
47STRINGstatic const char fmt_pulEncryptedPartLen[] = " pulEncryptedPartLen = 0x%p";
48STRINGstatic const char fmt_pulPartLen[] = " pulPartLen = 0x%p";
49STRINGstatic const char fmt_pulPlaintextLen[] = " pulPlaintextLen = 0x%p";
50STRINGstatic const char fmt_pulPlaintextPartLen[] = " pulPlaintextPartLen = 0x%p";
51STRINGstatic const char fmt_pulSignatureLen[] = " pulSignatureLen = 0x%p";
52STRINGstatic const char fmt_slotID[] = " slotID = 0x%x";
53STRINGstatic const char fmt_sphKey[] = " *phKey = 0x%x";
54STRINGstatic const char fmt_spulCount[] = " *pulCount = 0x%x";
55STRINGstatic const char fmt_spulDataLen[] = " *pulDataLen = 0x%x";
56STRINGstatic const char fmt_spulDigestLen[] = " *pulDigestLen = 0x%x";
57STRINGstatic const char fmt_spulEncryptedPartLen[] = " *pulEncryptedPartLen = 0x%x";
58STRINGstatic const char fmt_spulPartLen[] = " *pulPartLen = 0x%x";
59STRINGstatic const char fmt_spulSignatureLen[] = " *pulSignatureLen = 0x%x";
60STRINGstatic const char fmt_ulAttributeCount[] = " ulAttributeCount = %d";
61STRINGstatic const char fmt_ulCiphertextLen[] = " ulCiphertextLen = %d";
62STRINGstatic const char fmt_ulCiphertextPartLen[] = " ulCiphertextPartLen = %d";
63STRINGstatic const char fmt_ulCount[] = " ulCount = %d";
64STRINGstatic const char fmt_ulDataLen[] = " ulDataLen = %d";
65STRINGstatic const char fmt_ulEncryptedPartLen[] = " ulEncryptedPartLen = %d";
66STRINGstatic const char fmt_ulAssociatedDataLen[] = " ulAssociatedDataLen = 0x%p";
67STRINGstatic const char fmt_ulParameterLen[] = " ulParameterLen = 0x%p";
68STRINGstatic const char fmt_ulPartLen[] = " ulPartLen = %d";
69STRINGstatic const char fmt_ulPlaintextLen[] = " ulPlaintextLen = 0x%p";
70STRINGstatic const char fmt_ulPlaintextPartLen[] = " ulPlaintextPartLen = 0x%p";
71STRINGstatic const char fmt_ulPinLen[] = " ulPinLen = %d";
72STRINGstatic const char fmt_ulSignatureLen[] = " ulSignatureLen = %d";
73
74STRINGstatic const char fmt_fwVersion[] = " firmware version: %d.%d";
75STRINGstatic const char fmt_hwVersion[] = " hardware version: %d.%d";
76STRINGstatic const char fmt_s_qsq_d[] = " %s = \"%s\" [%d]";
77STRINGstatic const char fmt_s_s_d[] = " %s = %s [%d]";
78STRINGstatic const char fmt_s_lu[] = " %s = %lu";
79STRINGstatic const char fmt_invalid_handle[] = " (CK_INVALID_HANDLE)";
80
81static void
82get_attr_type_str(CK_ATTRIBUTE_TYPE atype, char *str, int len)
83{
84#define CASE(attr)case attr: a = "attr"; break \
85 case attr: \
86 a = #attr; \
87 break
88
89 const char *a = NULL((void*)0);
90
91 switch (atype) {
92 CASE(CKA_CLASS)case 0x00000000UL: a = "CKA_CLASS"; break;
93 CASE(CKA_TOKEN)case 0x00000001UL: a = "CKA_TOKEN"; break;
94 CASE(CKA_PRIVATE)case 0x00000002UL: a = "CKA_PRIVATE"; break;
95 CASE(CKA_LABEL)case 0x00000003UL: a = "CKA_LABEL"; break;
96 CASE(CKA_APPLICATION)case 0x00000010UL: a = "CKA_APPLICATION"; break;
97 CASE(CKA_VALUE)case 0x00000011UL: a = "CKA_VALUE"; break;
98 CASE(CKA_OBJECT_ID)case 0x00000012UL: a = "CKA_OBJECT_ID"; break;
99 CASE(CKA_CERTIFICATE_TYPE)case 0x00000080UL: a = "CKA_CERTIFICATE_TYPE"; break;
100 CASE(CKA_CERTIFICATE_CATEGORY)case 0x00000087UL: a = "CKA_CERTIFICATE_CATEGORY"; break;
101 CASE(CKA_ISSUER)case 0x00000081UL: a = "CKA_ISSUER"; break;
102 CASE(CKA_SERIAL_NUMBER)case 0x00000082UL: a = "CKA_SERIAL_NUMBER"; break;
103 CASE(CKA_AC_ISSUER)case 0x00000083UL: a = "CKA_AC_ISSUER"; break;
104 CASE(CKA_OWNER)case 0x00000084UL: a = "CKA_OWNER"; break;
105 CASE(CKA_ATTR_TYPES)case 0x00000085UL: a = "CKA_ATTR_TYPES"; break;
106 CASE(CKA_TRUSTED)case 0x00000086UL: a = "CKA_TRUSTED"; break;
107 CASE(CKA_KEY_TYPE)case 0x00000100UL: a = "CKA_KEY_TYPE"; break;
108 CASE(CKA_SUBJECT)case 0x00000101UL: a = "CKA_SUBJECT"; break;
109 CASE(CKA_ID)case 0x00000102UL: a = "CKA_ID"; break;
110 CASE(CKA_SENSITIVE)case 0x00000103UL: a = "CKA_SENSITIVE"; break;
111 CASE(CKA_ENCRYPT)case 0x00000104UL: a = "CKA_ENCRYPT"; break;
112 CASE(CKA_DECRYPT)case 0x00000105UL: a = "CKA_DECRYPT"; break;
113 CASE(CKA_WRAP)case 0x00000106UL: a = "CKA_WRAP"; break;
114 CASE(CKA_UNWRAP)case 0x00000107UL: a = "CKA_UNWRAP"; break;
115 CASE(CKA_SIGN)case 0x00000108UL: a = "CKA_SIGN"; break;
116 CASE(CKA_SIGN_RECOVER)case 0x00000109UL: a = "CKA_SIGN_RECOVER"; break;
117 CASE(CKA_VERIFY)case 0x0000010AUL: a = "CKA_VERIFY"; break;
118 CASE(CKA_VERIFY_RECOVER)case 0x0000010BUL: a = "CKA_VERIFY_RECOVER"; break;
119 CASE(CKA_DERIVE)case 0x0000010CUL: a = "CKA_DERIVE"; break;
120 CASE(CKA_START_DATE)case 0x00000110UL: a = "CKA_START_DATE"; break;
121 CASE(CKA_END_DATE)case 0x00000111UL: a = "CKA_END_DATE"; break;
122 CASE(CKA_MODULUS)case 0x00000120UL: a = "CKA_MODULUS"; break;
123 CASE(CKA_MODULUS_BITS)case 0x00000121UL: a = "CKA_MODULUS_BITS"; break;
124 CASE(CKA_PUBLIC_EXPONENT)case 0x00000122UL: a = "CKA_PUBLIC_EXPONENT"; break;
125 CASE(CKA_PRIVATE_EXPONENT)case 0x00000123UL: a = "CKA_PRIVATE_EXPONENT"; break;
126 CASE(CKA_PRIME_1)case 0x00000124UL: a = "CKA_PRIME_1"; break;
127 CASE(CKA_PRIME_2)case 0x00000125UL: a = "CKA_PRIME_2"; break;
128 CASE(CKA_EXPONENT_1)case 0x00000126UL: a = "CKA_EXPONENT_1"; break;
129 CASE(CKA_EXPONENT_2)case 0x00000127UL: a = "CKA_EXPONENT_2"; break;
130 CASE(CKA_COEFFICIENT)case 0x00000128UL: a = "CKA_COEFFICIENT"; break;
131 CASE(CKA_PRIME)case 0x00000130UL: a = "CKA_PRIME"; break;
132 CASE(CKA_SUBPRIME)case 0x00000131UL: a = "CKA_SUBPRIME"; break;
133 CASE(CKA_BASE)case 0x00000132UL: a = "CKA_BASE"; break;
134 CASE(CKA_PRIME_BITS)case 0x00000133UL: a = "CKA_PRIME_BITS"; break;
135 CASE(CKA_SUBPRIME_BITS)case 0x00000134UL: a = "CKA_SUBPRIME_BITS"; break;
136 CASE(CKA_VALUE_BITS)case 0x00000160UL: a = "CKA_VALUE_BITS"; break;
137 CASE(CKA_VALUE_LEN)case 0x00000161UL: a = "CKA_VALUE_LEN"; break;
138 CASE(CKA_EXTRACTABLE)case 0x00000162UL: a = "CKA_EXTRACTABLE"; break;
139 CASE(CKA_LOCAL)case 0x00000163UL: a = "CKA_LOCAL"; break;
140 CASE(CKA_NEVER_EXTRACTABLE)case 0x00000164UL: a = "CKA_NEVER_EXTRACTABLE"; break;
141 CASE(CKA_ALWAYS_SENSITIVE)case 0x00000165UL: a = "CKA_ALWAYS_SENSITIVE"; break;
142 CASE(CKA_KEY_GEN_MECHANISM)case 0x00000166UL: a = "CKA_KEY_GEN_MECHANISM"; break;
143 CASE(CKA_MODIFIABLE)case 0x00000170UL: a = "CKA_MODIFIABLE"; break;
144 CASE(CKA_ECDSA_PARAMS)case 0x00000180UL: a = "CKA_ECDSA_PARAMS"; break;
145 CASE(CKA_EC_POINT)case 0x00000181UL: a = "CKA_EC_POINT"; break;
146 CASE(CKA_SECONDARY_AUTH)case 0x00000200UL: a = "CKA_SECONDARY_AUTH"; break;
147 CASE(CKA_AUTH_PIN_FLAGS)case 0x00000201UL: a = "CKA_AUTH_PIN_FLAGS"; break;
148 CASE(CKA_HW_FEATURE_TYPE)case 0x00000300UL: a = "CKA_HW_FEATURE_TYPE"; break;
149 CASE(CKA_RESET_ON_INIT)case 0x00000301UL: a = "CKA_RESET_ON_INIT"; break;
150 CASE(CKA_HAS_RESET)case 0x00000302UL: a = "CKA_HAS_RESET"; break;
151 CASE(CKA_VENDOR_DEFINED)case 0x80000000UL: a = "CKA_VENDOR_DEFINED"; break;
152 CASE(CKA_PROFILE_ID)case 0x00000601UL: a = "CKA_PROFILE_ID"; break;
153 CASE(CKA_NSS_URL)case ((0x80000000UL | 0x4E534350) + 1): a = "CKA_NSS_URL"; break;
154 CASE(CKA_NSS_EMAIL)case ((0x80000000UL | 0x4E534350) + 2): a = "CKA_NSS_EMAIL"; break;
155 CASE(CKA_NSS_SMIME_INFO)case ((0x80000000UL | 0x4E534350) + 3): a = "CKA_NSS_SMIME_INFO"
; break
;
156 CASE(CKA_NSS_SMIME_TIMESTAMP)case ((0x80000000UL | 0x4E534350) + 4): a = "CKA_NSS_SMIME_TIMESTAMP"
; break
;
157 CASE(CKA_NSS_PKCS8_SALT)case ((0x80000000UL | 0x4E534350) + 5): a = "CKA_NSS_PKCS8_SALT"
; break
;
158 CASE(CKA_NSS_PASSWORD_CHECK)case ((0x80000000UL | 0x4E534350) + 6): a = "CKA_NSS_PASSWORD_CHECK"
; break
;
159 CASE(CKA_NSS_EXPIRES)case ((0x80000000UL | 0x4E534350) + 7): a = "CKA_NSS_EXPIRES"
; break
;
160 CASE(CKA_NSS_KRL)case ((0x80000000UL | 0x4E534350) + 8): a = "CKA_NSS_KRL"; break;
161 CASE(CKA_NSS_PQG_COUNTER)case ((0x80000000UL | 0x4E534350) + 20): a = "CKA_NSS_PQG_COUNTER"
; break
;
162 CASE(CKA_NSS_PQG_SEED)case ((0x80000000UL | 0x4E534350) + 21): a = "CKA_NSS_PQG_SEED"
; break
;
163 CASE(CKA_NSS_PQG_H)case ((0x80000000UL | 0x4E534350) + 22): a = "CKA_NSS_PQG_H";
break
;
164 CASE(CKA_NSS_PQG_SEED_BITS)case ((0x80000000UL | 0x4E534350) + 23): a = "CKA_NSS_PQG_SEED_BITS"
; break
;
165 CASE(CKA_TRUST)case ((0x80000000UL | 0x4E534350) + 0x2000): a = "CKA_TRUST";
break
;
166 CASE(CKA_TRUST_DIGITAL_SIGNATURE)case (((0x80000000UL | 0x4E534350) + 0x2000) + 1): a = "CKA_TRUST_DIGITAL_SIGNATURE"
; break
;
167 CASE(CKA_TRUST_NON_REPUDIATION)case (((0x80000000UL | 0x4E534350) + 0x2000) + 2): a = "CKA_TRUST_NON_REPUDIATION"
; break
;
168 CASE(CKA_TRUST_KEY_ENCIPHERMENT)case (((0x80000000UL | 0x4E534350) + 0x2000) + 3): a = "CKA_TRUST_KEY_ENCIPHERMENT"
; break
;
169 CASE(CKA_TRUST_DATA_ENCIPHERMENT)case (((0x80000000UL | 0x4E534350) + 0x2000) + 4): a = "CKA_TRUST_DATA_ENCIPHERMENT"
; break
;
170 CASE(CKA_TRUST_KEY_AGREEMENT)case (((0x80000000UL | 0x4E534350) + 0x2000) + 5): a = "CKA_TRUST_KEY_AGREEMENT"
; break
;
171 CASE(CKA_TRUST_KEY_CERT_SIGN)case (((0x80000000UL | 0x4E534350) + 0x2000) + 6): a = "CKA_TRUST_KEY_CERT_SIGN"
; break
;
172 CASE(CKA_TRUST_CRL_SIGN)case (((0x80000000UL | 0x4E534350) + 0x2000) + 7): a = "CKA_TRUST_CRL_SIGN"
; break
;
173 CASE(CKA_TRUST_SERVER_AUTH)case (((0x80000000UL | 0x4E534350) + 0x2000) + 8): a = "CKA_TRUST_SERVER_AUTH"
; break
;
174 CASE(CKA_TRUST_CLIENT_AUTH)case (((0x80000000UL | 0x4E534350) + 0x2000) + 9): a = "CKA_TRUST_CLIENT_AUTH"
; break
;
175 CASE(CKA_TRUST_CODE_SIGNING)case (((0x80000000UL | 0x4E534350) + 0x2000) + 10): a = "CKA_TRUST_CODE_SIGNING"
; break
;
176 CASE(CKA_TRUST_EMAIL_PROTECTION)case (((0x80000000UL | 0x4E534350) + 0x2000) + 11): a = "CKA_TRUST_EMAIL_PROTECTION"
; break
;
177 CASE(CKA_TRUST_IPSEC_END_SYSTEM)case (((0x80000000UL | 0x4E534350) + 0x2000) + 12): a = "CKA_TRUST_IPSEC_END_SYSTEM"
; break
;
178 CASE(CKA_TRUST_IPSEC_TUNNEL)case (((0x80000000UL | 0x4E534350) + 0x2000) + 13): a = "CKA_TRUST_IPSEC_TUNNEL"
; break
;
179 CASE(CKA_TRUST_IPSEC_USER)case (((0x80000000UL | 0x4E534350) + 0x2000) + 14): a = "CKA_TRUST_IPSEC_USER"
; break
;
180 CASE(CKA_TRUST_TIME_STAMPING)case (((0x80000000UL | 0x4E534350) + 0x2000) + 15): a = "CKA_TRUST_TIME_STAMPING"
; break
;
181 CASE(CKA_CERT_SHA1_HASH)case (((0x80000000UL | 0x4E534350) + 0x2000) + 100): a = "CKA_CERT_SHA1_HASH"
; break
;
182 CASE(CKA_CERT_MD5_HASH)case (((0x80000000UL | 0x4E534350) + 0x2000) + 101): a = "CKA_CERT_MD5_HASH"
; break
;
183 CASE(CKA_NSS_DB)case 0xD5A0DB00L: a = "CKA_NSS_DB"; break;
184 CASE(CKA_NSS_TRUST)case 0x80000001L: a = "CKA_NSS_TRUST"; break;
185 default:
186 break;
187 }
188 if (a)
189 PR_snprintf(str, len, "%s", a);
190 else
191 PR_snprintf(str, len, "0x%p", atype);
192}
193
194static void
195get_obj_class(CK_OBJECT_CLASS objClass, char *str, int len)
196{
197
198 const char *a = NULL((void*)0);
199
200 switch (objClass) {
201 CASE(CKO_DATA)case 0x00000000UL: a = "CKO_DATA"; break;
202 CASE(CKO_CERTIFICATE)case 0x00000001UL: a = "CKO_CERTIFICATE"; break;
203 CASE(CKO_PUBLIC_KEY)case 0x00000002UL: a = "CKO_PUBLIC_KEY"; break;
204 CASE(CKO_PRIVATE_KEY)case 0x00000003UL: a = "CKO_PRIVATE_KEY"; break;
205 CASE(CKO_SECRET_KEY)case 0x00000004UL: a = "CKO_SECRET_KEY"; break;
206 CASE(CKO_HW_FEATURE)case 0x00000005UL: a = "CKO_HW_FEATURE"; break;
207 CASE(CKO_DOMAIN_PARAMETERS)case 0x00000006UL: a = "CKO_DOMAIN_PARAMETERS"; break;
208 CASE(CKO_PROFILE)case 0x00000009UL: a = "CKO_PROFILE"; break;
209 CASE(CKO_NSS_CRL)case ((0x80000000UL | 0x4E534350) + 1): a = "CKO_NSS_CRL"; break;
210 CASE(CKO_NSS_SMIME)case ((0x80000000UL | 0x4E534350) + 2): a = "CKO_NSS_SMIME"; break;
211 CASE(CKO_NSS_TRUST)case ((0x80000000UL | 0x4E534350) + 3): a = "CKO_NSS_TRUST"; break;
212 CASE(CKO_NSS_BUILTIN_ROOT_LIST)case ((0x80000000UL | 0x4E534350) + 4): a = "CKO_NSS_BUILTIN_ROOT_LIST"
; break
;
213 default:
214 break;
215 }
216 if (a)
217 PR_snprintf(str, len, "%s", a);
218 else
219 PR_snprintf(str, len, "0x%p", objClass);
220}
221
222static void
223get_profile_val(CK_PROFILE_ID profile, char *str, int len)
224{
225
226 const char *a = NULL((void*)0);
227
228 switch (profile) {
229 CASE(CKP_INVALID_ID)case 0x00000000UL: a = "CKP_INVALID_ID"; break;
230 CASE(CKP_BASELINE_PROVIDER)case 0x00000001UL: a = "CKP_BASELINE_PROVIDER"; break;
231 CASE(CKP_EXTENDED_PROVIDER)case 0x00000002UL: a = "CKP_EXTENDED_PROVIDER"; break;
232 CASE(CKP_AUTHENTICATION_TOKEN)case 0x00000003UL: a = "CKP_AUTHENTICATION_TOKEN"; break;
233 CASE(CKP_PUBLIC_CERTIFICATES_TOKEN)case 0x00000004UL: a = "CKP_PUBLIC_CERTIFICATES_TOKEN"; break;
234 default:
235 break;
236 }
237 if (a)
238 PR_snprintf(str, len, "%s", a);
239 else
240 PR_snprintf(str, len, "0x%p", profile);
241}
242
243static void
244get_trust_val(CK_TRUST trust, char *str, int len)
245{
246 const char *a = NULL((void*)0);
247
248 switch (trust) {
249 CASE(CKT_NSS_TRUSTED)case ((0x80000000 | 0x4E534350) + 1): a = "CKT_NSS_TRUSTED"; break;
250 CASE(CKT_NSS_TRUSTED_DELEGATOR)case ((0x80000000 | 0x4E534350) + 2): a = "CKT_NSS_TRUSTED_DELEGATOR"
; break
;
251 CASE(CKT_NSS_NOT_TRUSTED)case ((0x80000000 | 0x4E534350) + 10): a = "CKT_NSS_NOT_TRUSTED"
; break
;
252 CASE(CKT_NSS_MUST_VERIFY_TRUST)case ((0x80000000 | 0x4E534350) + 3): a = "CKT_NSS_MUST_VERIFY_TRUST"
; break
;
253 CASE(CKT_NSS_TRUST_UNKNOWN)case ((0x80000000 | 0x4E534350) + 5): a = "CKT_NSS_TRUST_UNKNOWN"
; break
;
254 CASE(CKT_NSS_VALID_DELEGATOR)case ((0x80000000 | 0x4E534350) + 11): a = "CKT_NSS_VALID_DELEGATOR"
; break
;
255 default:
256 break;
257 }
258 if (a)
259 PR_snprintf(str, len, "%s", a);
260 else
261 PR_snprintf(str, len, "0x%p", trust);
262}
263
264static void
265log_rv(CK_RV rv)
266{
267 const char *a = NULL((void*)0);
268
269 switch (rv) {
270 CASE(CKR_OK)case 0x00000000UL: a = "CKR_OK"; break;
271 CASE(CKR_CANCEL)case 0x00000001UL: a = "CKR_CANCEL"; break;
272 CASE(CKR_HOST_MEMORY)case 0x00000002UL: a = "CKR_HOST_MEMORY"; break;
273 CASE(CKR_SLOT_ID_INVALID)case 0x00000003UL: a = "CKR_SLOT_ID_INVALID"; break;
274 CASE(CKR_GENERAL_ERROR)case 0x00000005UL: a = "CKR_GENERAL_ERROR"; break;
275 CASE(CKR_FUNCTION_FAILED)case 0x00000006UL: a = "CKR_FUNCTION_FAILED"; break;
276 CASE(CKR_ARGUMENTS_BAD)case 0x00000007UL: a = "CKR_ARGUMENTS_BAD"; break;
277 CASE(CKR_NO_EVENT)case 0x00000008UL: a = "CKR_NO_EVENT"; break;
278 CASE(CKR_NEED_TO_CREATE_THREADS)case 0x00000009UL: a = "CKR_NEED_TO_CREATE_THREADS"; break;
279 CASE(CKR_CANT_LOCK)case 0x0000000AUL: a = "CKR_CANT_LOCK"; break;
280 CASE(CKR_ATTRIBUTE_READ_ONLY)case 0x00000010UL: a = "CKR_ATTRIBUTE_READ_ONLY"; break;
281 CASE(CKR_ATTRIBUTE_SENSITIVE)case 0x00000011UL: a = "CKR_ATTRIBUTE_SENSITIVE"; break;
282 CASE(CKR_ATTRIBUTE_TYPE_INVALID)case 0x00000012UL: a = "CKR_ATTRIBUTE_TYPE_INVALID"; break;
283 CASE(CKR_ATTRIBUTE_VALUE_INVALID)case 0x00000013UL: a = "CKR_ATTRIBUTE_VALUE_INVALID"; break;
284 CASE(CKR_DATA_INVALID)case 0x00000020UL: a = "CKR_DATA_INVALID"; break;
285 CASE(CKR_DATA_LEN_RANGE)case 0x00000021UL: a = "CKR_DATA_LEN_RANGE"; break;
286 CASE(CKR_DEVICE_ERROR)case 0x00000030UL: a = "CKR_DEVICE_ERROR"; break;
287 CASE(CKR_DEVICE_MEMORY)case 0x00000031UL: a = "CKR_DEVICE_MEMORY"; break;
288 CASE(CKR_DEVICE_REMOVED)case 0x00000032UL: a = "CKR_DEVICE_REMOVED"; break;
289 CASE(CKR_ENCRYPTED_DATA_INVALID)case 0x00000040UL: a = "CKR_ENCRYPTED_DATA_INVALID"; break;
290 CASE(CKR_ENCRYPTED_DATA_LEN_RANGE)case 0x00000041UL: a = "CKR_ENCRYPTED_DATA_LEN_RANGE"; break;
291 CASE(CKR_FUNCTION_CANCELED)case 0x00000050UL: a = "CKR_FUNCTION_CANCELED"; break;
292 CASE(CKR_FUNCTION_NOT_PARALLEL)case 0x00000051UL: a = "CKR_FUNCTION_NOT_PARALLEL"; break;
293 CASE(CKR_FUNCTION_NOT_SUPPORTED)case 0x00000054UL: a = "CKR_FUNCTION_NOT_SUPPORTED"; break;
294 CASE(CKR_KEY_HANDLE_INVALID)case 0x00000060UL: a = "CKR_KEY_HANDLE_INVALID"; break;
295 CASE(CKR_KEY_SIZE_RANGE)case 0x00000062UL: a = "CKR_KEY_SIZE_RANGE"; break;
296 CASE(CKR_KEY_TYPE_INCONSISTENT)case 0x00000063UL: a = "CKR_KEY_TYPE_INCONSISTENT"; break;
297 CASE(CKR_KEY_NOT_NEEDED)case 0x00000064UL: a = "CKR_KEY_NOT_NEEDED"; break;
298 CASE(CKR_KEY_CHANGED)case 0x00000065UL: a = "CKR_KEY_CHANGED"; break;
299 CASE(CKR_KEY_NEEDED)case 0x00000066UL: a = "CKR_KEY_NEEDED"; break;
300 CASE(CKR_KEY_INDIGESTIBLE)case 0x00000067UL: a = "CKR_KEY_INDIGESTIBLE"; break;
301 CASE(CKR_KEY_FUNCTION_NOT_PERMITTED)case 0x00000068UL: a = "CKR_KEY_FUNCTION_NOT_PERMITTED"; break;
302 CASE(CKR_KEY_NOT_WRAPPABLE)case 0x00000069UL: a = "CKR_KEY_NOT_WRAPPABLE"; break;
303 CASE(CKR_KEY_UNEXTRACTABLE)case 0x0000006AUL: a = "CKR_KEY_UNEXTRACTABLE"; break;
304 CASE(CKR_MECHANISM_INVALID)case 0x00000070UL: a = "CKR_MECHANISM_INVALID"; break;
305 CASE(CKR_MECHANISM_PARAM_INVALID)case 0x00000071UL: a = "CKR_MECHANISM_PARAM_INVALID"; break;
306 CASE(CKR_OBJECT_HANDLE_INVALID)case 0x00000082UL: a = "CKR_OBJECT_HANDLE_INVALID"; break;
307 CASE(CKR_OPERATION_ACTIVE)case 0x00000090UL: a = "CKR_OPERATION_ACTIVE"; break;
308 CASE(CKR_OPERATION_NOT_INITIALIZED)case 0x00000091UL: a = "CKR_OPERATION_NOT_INITIALIZED"; break;
309 CASE(CKR_PIN_INCORRECT)case 0x000000A0UL: a = "CKR_PIN_INCORRECT"; break;
310 CASE(CKR_PIN_INVALID)case 0x000000A1UL: a = "CKR_PIN_INVALID"; break;
311 CASE(CKR_PIN_LEN_RANGE)case 0x000000A2UL: a = "CKR_PIN_LEN_RANGE"; break;
312 CASE(CKR_PIN_EXPIRED)case 0x000000A3UL: a = "CKR_PIN_EXPIRED"; break;
313 CASE(CKR_PIN_LOCKED)case 0x000000A4UL: a = "CKR_PIN_LOCKED"; break;
314 CASE(CKR_SESSION_CLOSED)case 0x000000B0UL: a = "CKR_SESSION_CLOSED"; break;
315 CASE(CKR_SESSION_COUNT)case 0x000000B1UL: a = "CKR_SESSION_COUNT"; break;
316 CASE(CKR_SESSION_HANDLE_INVALID)case 0x000000B3UL: a = "CKR_SESSION_HANDLE_INVALID"; break;
317 CASE(CKR_SESSION_PARALLEL_NOT_SUPPORTED)case 0x000000B4UL: a = "CKR_SESSION_PARALLEL_NOT_SUPPORTED"; break;
318 CASE(CKR_SESSION_READ_ONLY)case 0x000000B5UL: a = "CKR_SESSION_READ_ONLY"; break;
319 CASE(CKR_SESSION_EXISTS)case 0x000000B6UL: a = "CKR_SESSION_EXISTS"; break;
320 CASE(CKR_SESSION_READ_ONLY_EXISTS)case 0x000000B7UL: a = "CKR_SESSION_READ_ONLY_EXISTS"; break;
321 CASE(CKR_SESSION_READ_WRITE_SO_EXISTS)case 0x000000B8UL: a = "CKR_SESSION_READ_WRITE_SO_EXISTS"; break;
322 CASE(CKR_SIGNATURE_INVALID)case 0x000000C0UL: a = "CKR_SIGNATURE_INVALID"; break;
323 CASE(CKR_SIGNATURE_LEN_RANGE)case 0x000000C1UL: a = "CKR_SIGNATURE_LEN_RANGE"; break;
324 CASE(CKR_TEMPLATE_INCOMPLETE)case 0x000000D0UL: a = "CKR_TEMPLATE_INCOMPLETE"; break;
325 CASE(CKR_TEMPLATE_INCONSISTENT)case 0x000000D1UL: a = "CKR_TEMPLATE_INCONSISTENT"; break;
326 CASE(CKR_TOKEN_NOT_PRESENT)case 0x000000E0UL: a = "CKR_TOKEN_NOT_PRESENT"; break;
327 CASE(CKR_TOKEN_NOT_RECOGNIZED)case 0x000000E1UL: a = "CKR_TOKEN_NOT_RECOGNIZED"; break;
328 CASE(CKR_TOKEN_WRITE_PROTECTED)case 0x000000E2UL: a = "CKR_TOKEN_WRITE_PROTECTED"; break;
329 CASE(CKR_UNWRAPPING_KEY_HANDLE_INVALID)case 0x000000F0UL: a = "CKR_UNWRAPPING_KEY_HANDLE_INVALID"; break;
330 CASE(CKR_UNWRAPPING_KEY_SIZE_RANGE)case 0x000000F1UL: a = "CKR_UNWRAPPING_KEY_SIZE_RANGE"; break;
331 CASE(CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT)case 0x000000F2UL: a = "CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT"
; break
;
332 CASE(CKR_USER_ALREADY_LOGGED_IN)case 0x00000100UL: a = "CKR_USER_ALREADY_LOGGED_IN"; break;
333 CASE(CKR_USER_NOT_LOGGED_IN)case 0x00000101UL: a = "CKR_USER_NOT_LOGGED_IN"; break;
334 CASE(CKR_USER_PIN_NOT_INITIALIZED)case 0x00000102UL: a = "CKR_USER_PIN_NOT_INITIALIZED"; break;
335 CASE(CKR_USER_TYPE_INVALID)case 0x00000103UL: a = "CKR_USER_TYPE_INVALID"; break;
336 CASE(CKR_USER_ANOTHER_ALREADY_LOGGED_IN)case 0x00000104UL: a = "CKR_USER_ANOTHER_ALREADY_LOGGED_IN"; break;
337 CASE(CKR_USER_TOO_MANY_TYPES)case 0x00000105UL: a = "CKR_USER_TOO_MANY_TYPES"; break;
338 CASE(CKR_WRAPPED_KEY_INVALID)case 0x00000110UL: a = "CKR_WRAPPED_KEY_INVALID"; break;
339 CASE(CKR_WRAPPED_KEY_LEN_RANGE)case 0x00000112UL: a = "CKR_WRAPPED_KEY_LEN_RANGE"; break;
340 CASE(CKR_WRAPPING_KEY_HANDLE_INVALID)case 0x00000113UL: a = "CKR_WRAPPING_KEY_HANDLE_INVALID"; break;
341 CASE(CKR_WRAPPING_KEY_SIZE_RANGE)case 0x00000114UL: a = "CKR_WRAPPING_KEY_SIZE_RANGE"; break;
342 CASE(CKR_WRAPPING_KEY_TYPE_INCONSISTENT)case 0x00000115UL: a = "CKR_WRAPPING_KEY_TYPE_INCONSISTENT"; break;
343 CASE(CKR_RANDOM_SEED_NOT_SUPPORTED)case 0x00000120UL: a = "CKR_RANDOM_SEED_NOT_SUPPORTED"; break;
344 CASE(CKR_RANDOM_NO_RNG)case 0x00000121UL: a = "CKR_RANDOM_NO_RNG"; break;
345 CASE(CKR_DOMAIN_PARAMS_INVALID)case 0x00000130UL: a = "CKR_DOMAIN_PARAMS_INVALID"; break;
346 CASE(CKR_BUFFER_TOO_SMALL)case 0x00000150UL: a = "CKR_BUFFER_TOO_SMALL"; break;
347 CASE(CKR_SAVED_STATE_INVALID)case 0x00000160UL: a = "CKR_SAVED_STATE_INVALID"; break;
348 CASE(CKR_INFORMATION_SENSITIVE)case 0x00000170UL: a = "CKR_INFORMATION_SENSITIVE"; break;
349 CASE(CKR_STATE_UNSAVEABLE)case 0x00000180UL: a = "CKR_STATE_UNSAVEABLE"; break;
350 CASE(CKR_CRYPTOKI_NOT_INITIALIZED)case 0x00000190UL: a = "CKR_CRYPTOKI_NOT_INITIALIZED"; break;
351 CASE(CKR_CRYPTOKI_ALREADY_INITIALIZED)case 0x00000191UL: a = "CKR_CRYPTOKI_ALREADY_INITIALIZED"; break;
352 CASE(CKR_MUTEX_BAD)case 0x000001A0UL: a = "CKR_MUTEX_BAD"; break;
353 CASE(CKR_MUTEX_NOT_LOCKED)case 0x000001A1UL: a = "CKR_MUTEX_NOT_LOCKED"; break;
354 CASE(CKR_FUNCTION_REJECTED)case 0x00000200UL: a = "CKR_FUNCTION_REJECTED"; break;
355 CASE(CKR_ACTION_PROHIBITED)case 0x0000001BUL: a = "CKR_ACTION_PROHIBITED"; break;
356 CASE(CKR_CURVE_NOT_SUPPORTED)case 0x00000140UL: a = "CKR_CURVE_NOT_SUPPORTED"; break;
357 CASE(CKR_NEW_PIN_MODE)case 0x000001B0UL: a = "CKR_NEW_PIN_MODE"; break;
358 CASE(CKR_NEXT_OTP)case 0x000001B1UL: a = "CKR_NEXT_OTP"; break;
359 CASE(CKR_EXCEEDED_MAX_ITERATIONS)case 0x000001B5UL: a = "CKR_EXCEEDED_MAX_ITERATIONS"; break;
360 CASE(CKR_FIPS_SELF_TEST_FAILED)case 0x000001B6UL: a = "CKR_FIPS_SELF_TEST_FAILED"; break;
361 CASE(CKR_LIBRARY_LOAD_FAILED)case 0x000001B7UL: a = "CKR_LIBRARY_LOAD_FAILED"; break;
362 CASE(CKR_PIN_TOO_WEAK)case 0x000001B8UL: a = "CKR_PIN_TOO_WEAK"; break;
363 CASE(CKR_TOKEN_RESOURCE_EXCEEDED)case 0x00000201UL: a = "CKR_TOKEN_RESOURCE_EXCEEDED"; break;
364 CASE(CKR_OPERATION_CANCEL_FAILED)case 0x00000202UL: a = "CKR_OPERATION_CANCEL_FAILED"; break;
365 default:
366 break;
367 }
368 if (a)
369 PR_LOG(modlog, 1, (" rv = %s\n", a))do { if (((modlog)->level >= (1))) { PR_LogPrint (" rv = %s\n"
, a); } } while (0)
;
370 else
371 PR_LOG(modlog, 1, (" rv = 0x%x\n", rv))do { if (((modlog)->level >= (1))) { PR_LogPrint (" rv = 0x%x\n"
, rv); } } while (0)
;
372}
373
374static void
375log_state(CK_STATE state)
376{
377 const char *a = NULL((void*)0);
378
379 switch (state) {
380 CASE(CKS_RO_PUBLIC_SESSION)case 0: a = "CKS_RO_PUBLIC_SESSION"; break;
381 CASE(CKS_RO_USER_FUNCTIONS)case 1: a = "CKS_RO_USER_FUNCTIONS"; break;
382 CASE(CKS_RW_PUBLIC_SESSION)case 2: a = "CKS_RW_PUBLIC_SESSION"; break;
383 CASE(CKS_RW_USER_FUNCTIONS)case 3: a = "CKS_RW_USER_FUNCTIONS"; break;
384 CASE(CKS_RW_SO_FUNCTIONS)case 4: a = "CKS_RW_SO_FUNCTIONS"; break;
385 default:
386 break;
387 }
388 if (a)
389 PR_LOG(modlog, 1, (" state = %s\n", a))do { if (((modlog)->level >= (1))) { PR_LogPrint (" state = %s\n"
, a); } } while (0)
;
390 else
391 PR_LOG(modlog, 1, (" state = 0x%x\n", state))do { if (((modlog)->level >= (1))) { PR_LogPrint (" state = 0x%x\n"
, state); } } while (0)
;
392}
393
394static void
395log_handle(PRLogModuleLevel level, const char *format, CK_ULONG handle)
396{
397 char fmtBuf[80];
398 if (handle)
399 PR_LOG(modlog, level, (format, handle))do { if (((modlog)->level >= (level))) { PR_LogPrint (format
, handle); } } while (0)
;
400 else {
401 PL_strncpyz(fmtBuf, format, sizeof fmtBuf);
402 PL_strcatn(fmtBuf, sizeof fmtBuf, fmt_invalid_handle);
403 PR_LOG(modlog, level, (fmtBuf, handle))do { if (((modlog)->level >= (level))) { PR_LogPrint (fmtBuf
, handle); } } while (0)
;
404 }
405}
406
407static void
408print_mechanism(CK_MECHANISM_PTR m)
409{
410
411 const char *a = NULL((void*)0);
412
413 switch (m->mechanism) {
414 CASE(CKM_AES_CBC)case 0x00001082UL: a = "CKM_AES_CBC"; break;
415 CASE(CKM_AES_CBC_ENCRYPT_DATA)case 0x00001105UL: a = "CKM_AES_CBC_ENCRYPT_DATA"; break;
416 CASE(CKM_AES_CBC_PAD)case 0x00001085UL: a = "CKM_AES_CBC_PAD"; break;
417 CASE(CKM_AES_CCM)case 0x00001088UL: a = "CKM_AES_CCM"; break;
418 CASE(CKM_AES_CTR)case 0x00001086UL: a = "CKM_AES_CTR"; break;
419 CASE(CKM_AES_CTS)case 0x00001089UL: a = "CKM_AES_CTS"; break;
420 CASE(CKM_AES_GCM)case 0x00001087UL: a = "CKM_AES_GCM"; break;
421 CASE(CKM_AES_ECB)case 0x00001081UL: a = "CKM_AES_ECB"; break;
422 CASE(CKM_AES_ECB_ENCRYPT_DATA)case 0x00001104UL: a = "CKM_AES_ECB_ENCRYPT_DATA"; break;
423 CASE(CKM_AES_KEY_GEN)case 0x00001080UL: a = "CKM_AES_KEY_GEN"; break;
424 CASE(CKM_AES_MAC)case 0x00001083UL: a = "CKM_AES_MAC"; break;
425 CASE(CKM_AES_MAC_GENERAL)case 0x00001084UL: a = "CKM_AES_MAC_GENERAL"; break;
426 CASE(CKM_AES_CMAC)case 0x0000108AUL: a = "CKM_AES_CMAC"; break;
427 CASE(CKM_AES_CMAC_GENERAL)case 0x0000108BUL: a = "CKM_AES_CMAC_GENERAL"; break;
428 CASE(CKM_CAMELLIA_CBC)case 0x00000552UL: a = "CKM_CAMELLIA_CBC"; break;
429 CASE(CKM_CAMELLIA_CBC_ENCRYPT_DATA)case 0x00000557UL: a = "CKM_CAMELLIA_CBC_ENCRYPT_DATA"; break;
430 CASE(CKM_CAMELLIA_CBC_PAD)case 0x00000555UL: a = "CKM_CAMELLIA_CBC_PAD"; break;
431 CASE(CKM_CAMELLIA_ECB)case 0x00000551UL: a = "CKM_CAMELLIA_ECB"; break;
432 CASE(CKM_CAMELLIA_ECB_ENCRYPT_DATA)case 0x00000556UL: a = "CKM_CAMELLIA_ECB_ENCRYPT_DATA"; break;
433 CASE(CKM_CAMELLIA_KEY_GEN)case 0x00000550UL: a = "CKM_CAMELLIA_KEY_GEN"; break;
434 CASE(CKM_CAMELLIA_MAC)case 0x00000553UL: a = "CKM_CAMELLIA_MAC"; break;
435 CASE(CKM_CAMELLIA_MAC_GENERAL)case 0x00000554UL: a = "CKM_CAMELLIA_MAC_GENERAL"; break;
436 CASE(CKM_CHACHA20_KEY_GEN)case 0x00001225UL: a = "CKM_CHACHA20_KEY_GEN"; break;
437 CASE(CKM_CHACHA20)case 0x00001226UL: a = "CKM_CHACHA20"; break;
438 CASE(CKM_CDMF_CBC)case 0x00000142UL: a = "CKM_CDMF_CBC"; break;
439 CASE(CKM_CDMF_CBC_PAD)case 0x00000145UL: a = "CKM_CDMF_CBC_PAD"; break;
440 CASE(CKM_CDMF_ECB)case 0x00000141UL: a = "CKM_CDMF_ECB"; break;
441 CASE(CKM_CDMF_KEY_GEN)case 0x00000140UL: a = "CKM_CDMF_KEY_GEN"; break;
442 CASE(CKM_CDMF_MAC)case 0x00000143UL: a = "CKM_CDMF_MAC"; break;
443 CASE(CKM_CDMF_MAC_GENERAL)case 0x00000144UL: a = "CKM_CDMF_MAC_GENERAL"; break;
444 CASE(CKM_CMS_SIG)case 0x00000500UL: a = "CKM_CMS_SIG"; break;
445 CASE(CKM_CONCATENATE_BASE_AND_DATA)case 0x00000362UL: a = "CKM_CONCATENATE_BASE_AND_DATA"; break;
446 CASE(CKM_CONCATENATE_BASE_AND_KEY)case 0x00000360UL: a = "CKM_CONCATENATE_BASE_AND_KEY"; break;
447 CASE(CKM_CONCATENATE_DATA_AND_BASE)case 0x00000363UL: a = "CKM_CONCATENATE_DATA_AND_BASE"; break;
448 CASE(CKM_DES2_KEY_GEN)case 0x00000130UL: a = "CKM_DES2_KEY_GEN"; break;
449 CASE(CKM_DES3_CBC)case 0x00000133UL: a = "CKM_DES3_CBC"; break;
450 CASE(CKM_DES3_CBC_ENCRYPT_DATA)case 0x00001103UL: a = "CKM_DES3_CBC_ENCRYPT_DATA"; break;
451 CASE(CKM_DES3_CBC_PAD)case 0x00000136UL: a = "CKM_DES3_CBC_PAD"; break;
452 CASE(CKM_DES3_ECB)case 0x00000132UL: a = "CKM_DES3_ECB"; break;
453 CASE(CKM_DES3_ECB_ENCRYPT_DATA)case 0x00001102UL: a = "CKM_DES3_ECB_ENCRYPT_DATA"; break;
454 CASE(CKM_DES3_KEY_GEN)case 0x00000131UL: a = "CKM_DES3_KEY_GEN"; break;
455 CASE(CKM_DES3_MAC)case 0x00000134UL: a = "CKM_DES3_MAC"; break;
456 CASE(CKM_DES3_MAC_GENERAL)case 0x00000135UL: a = "CKM_DES3_MAC_GENERAL"; break;
457 CASE(CKM_DES_CBC)case 0x00000122UL: a = "CKM_DES_CBC"; break;
458 CASE(CKM_DES_CBC_ENCRYPT_DATA)case 0x00001101UL: a = "CKM_DES_CBC_ENCRYPT_DATA"; break;
459 CASE(CKM_DES_CBC_PAD)case 0x00000125UL: a = "CKM_DES_CBC_PAD"; break;
460 CASE(CKM_DES_CFB64)case 0x00000152UL: a = "CKM_DES_CFB64"; break;
461 CASE(CKM_DES_CFB8)case 0x00000153UL: a = "CKM_DES_CFB8"; break;
462 CASE(CKM_DES_ECB)case 0x00000121UL: a = "CKM_DES_ECB"; break;
463 CASE(CKM_DES_ECB_ENCRYPT_DATA)case 0x00001100UL: a = "CKM_DES_ECB_ENCRYPT_DATA"; break;
464 CASE(CKM_DES_KEY_GEN)case 0x00000120UL: a = "CKM_DES_KEY_GEN"; break;
465 CASE(CKM_DES_MAC)case 0x00000123UL: a = "CKM_DES_MAC"; break;
466 CASE(CKM_DES_MAC_GENERAL)case 0x00000124UL: a = "CKM_DES_MAC_GENERAL"; break;
467 CASE(CKM_DES_OFB64)case 0x00000150UL: a = "CKM_DES_OFB64"; break;
468 CASE(CKM_DES_OFB8)case 0x00000151UL: a = "CKM_DES_OFB8"; break;
469 CASE(CKM_DH_PKCS_DERIVE)case 0x00000021UL: a = "CKM_DH_PKCS_DERIVE"; break;
470 CASE(CKM_DH_PKCS_KEY_PAIR_GEN)case 0x00000020UL: a = "CKM_DH_PKCS_KEY_PAIR_GEN"; break;
471 CASE(CKM_DH_PKCS_PARAMETER_GEN)case 0x00002001UL: a = "CKM_DH_PKCS_PARAMETER_GEN"; break;
472 CASE(CKM_DSA)case 0x00000011UL: a = "CKM_DSA"; break;
473 CASE(CKM_DSA_KEY_PAIR_GEN)case 0x00000010UL: a = "CKM_DSA_KEY_PAIR_GEN"; break;
474 CASE(CKM_DSA_PARAMETER_GEN)case 0x00002000UL: a = "CKM_DSA_PARAMETER_GEN"; break;
475 CASE(CKM_DSA_SHA1)case 0x00000012UL: a = "CKM_DSA_SHA1"; break;
476 CASE(CKM_ECDH1_COFACTOR_DERIVE)case 0x00001051UL: a = "CKM_ECDH1_COFACTOR_DERIVE"; break;
477 CASE(CKM_ECDH1_DERIVE)case 0x00001050UL: a = "CKM_ECDH1_DERIVE"; break;
478 CASE(CKM_ECDSA)case 0x00001041UL: a = "CKM_ECDSA"; break;
479 CASE(CKM_ECDSA_SHA1)case 0x00001042UL: a = "CKM_ECDSA_SHA1"; break;
480 CASE(CKM_ECMQV_DERIVE)case 0x00001052UL: a = "CKM_ECMQV_DERIVE"; break;
481 CASE(CKM_EC_KEY_PAIR_GEN)case 0x00001040UL: a = "CKM_EC_KEY_PAIR_GEN"; break; /* also CASE(CKM_ECDSA_KEY_PAIR_GEN); */
482 CASE(CKM_EXTRACT_KEY_FROM_KEY)case 0x00000365UL: a = "CKM_EXTRACT_KEY_FROM_KEY"; break;
483 CASE(CKM_ECDSA_SHA224)case 0x00001043UL: a = "CKM_ECDSA_SHA224"; break;
484 CASE(CKM_ECDSA_SHA256)case 0x00001044UL: a = "CKM_ECDSA_SHA256"; break;
485 CASE(CKM_ECDSA_SHA384)case 0x00001045UL: a = "CKM_ECDSA_SHA384"; break;
486 CASE(CKM_ECDSA_SHA512)case 0x00001046UL: a = "CKM_ECDSA_SHA512"; break;
487 CASE(CKM_EC_KEY_PAIR_GEN_W_EXTRA_BITS)case 0x0000140BUL: a = "CKM_EC_KEY_PAIR_GEN_W_EXTRA_BITS"; break;
488 CASE(CKM_FASTHASH)case 0x00001070UL: a = "CKM_FASTHASH"; break;
489 CASE(CKM_FORTEZZA_TIMESTAMP)case 0x00001020UL: a = "CKM_FORTEZZA_TIMESTAMP"; break;
490 CASE(CKM_GENERIC_SECRET_KEY_GEN)case 0x00000350UL: a = "CKM_GENERIC_SECRET_KEY_GEN"; break;
491 CASE(CKM_IDEA_CBC)case 0x00000342UL: a = "CKM_IDEA_CBC"; break;
492 CASE(CKM_IDEA_CBC_PAD)case 0x00000345UL: a = "CKM_IDEA_CBC_PAD"; break;
493 CASE(CKM_IDEA_ECB)case 0x00000341UL: a = "CKM_IDEA_ECB"; break;
494 CASE(CKM_IDEA_KEY_GEN)case 0x00000340UL: a = "CKM_IDEA_KEY_GEN"; break;
495 CASE(CKM_IDEA_MAC)case 0x00000343UL: a = "CKM_IDEA_MAC"; break;
496 CASE(CKM_IDEA_MAC_GENERAL)case 0x00000344UL: a = "CKM_IDEA_MAC_GENERAL"; break;
497 CASE(CKM_KEA_KEY_DERIVE)case 0x00001011UL: a = "CKM_KEA_KEY_DERIVE"; break;
498 CASE(CKM_KEA_KEY_PAIR_GEN)case 0x00001010UL: a = "CKM_KEA_KEY_PAIR_GEN"; break;
499 CASE(CKM_KEY_WRAP_LYNKS)case 0x00000400UL: a = "CKM_KEY_WRAP_LYNKS"; break;
500 CASE(CKM_KEY_WRAP_SET_OAEP)case 0x00000401UL: a = "CKM_KEY_WRAP_SET_OAEP"; break;
501 CASE(CKM_MD2)case 0x00000200UL: a = "CKM_MD2"; break;
502 CASE(CKM_MD2_HMAC)case 0x00000201UL: a = "CKM_MD2_HMAC"; break;
503 CASE(CKM_MD2_HMAC_GENERAL)case 0x00000202UL: a = "CKM_MD2_HMAC_GENERAL"; break;
504 CASE(CKM_MD2_KEY_DERIVATION)case 0x00000391UL: a = "CKM_MD2_KEY_DERIVATION"; break;
505 CASE(CKM_MD2_RSA_PKCS)case 0x00000004UL: a = "CKM_MD2_RSA_PKCS"; break;
506 CASE(CKM_MD5)case 0x00000210UL: a = "CKM_MD5"; break;
507 CASE(CKM_MD5_HMAC)case 0x00000211UL: a = "CKM_MD5_HMAC"; break;
508 CASE(CKM_MD5_HMAC_GENERAL)case 0x00000212UL: a = "CKM_MD5_HMAC_GENERAL"; break;
509 CASE(CKM_MD5_KEY_DERIVATION)case 0x00000390UL: a = "CKM_MD5_KEY_DERIVATION"; break;
510 CASE(CKM_MD5_RSA_PKCS)case 0x00000005UL: a = "CKM_MD5_RSA_PKCS"; break;
511 CASE(CKM_PBA_SHA1_WITH_SHA1_HMAC)case 0x000003C0UL: a = "CKM_PBA_SHA1_WITH_SHA1_HMAC"; break;
512 CASE(CKM_PBE_MD2_DES_CBC)case 0x000003A0UL: a = "CKM_PBE_MD2_DES_CBC"; break;
513 CASE(CKM_PBE_MD5_DES_CBC)case 0x000003A1UL: a = "CKM_PBE_MD5_DES_CBC"; break;
514 CASE(CKM_PBE_SHA1_DES2_EDE_CBC)case 0x000003A9UL: a = "CKM_PBE_SHA1_DES2_EDE_CBC"; break;
515 CASE(CKM_PBE_SHA1_DES3_EDE_CBC)case 0x000003A8UL: a = "CKM_PBE_SHA1_DES3_EDE_CBC"; break;
516 CASE(CKM_PBE_SHA1_RC2_128_CBC)case 0x000003AAUL: a = "CKM_PBE_SHA1_RC2_128_CBC"; break;
517 CASE(CKM_PBE_SHA1_RC2_40_CBC)case 0x000003ABUL: a = "CKM_PBE_SHA1_RC2_40_CBC"; break;
518 CASE(CKM_PBE_SHA1_RC4_128)case 0x000003A6UL: a = "CKM_PBE_SHA1_RC4_128"; break;
519 CASE(CKM_PBE_SHA1_RC4_40)case 0x000003A7UL: a = "CKM_PBE_SHA1_RC4_40"; break;
520 CASE(CKM_PKCS5_PBKD2)case 0x000003B0UL: a = "CKM_PKCS5_PBKD2"; break;
521 CASE(CKM_POLY1305_KEY_GEN)case 0x00001227UL: a = "CKM_POLY1305_KEY_GEN"; break;
522 CASE(CKM_POLY1305)case 0x00001228UL: a = "CKM_POLY1305"; break;
523 CASE(CKM_RC2_CBC)case 0x00000102UL: a = "CKM_RC2_CBC"; break;
524 CASE(CKM_RC2_CBC_PAD)case 0x00000105UL: a = "CKM_RC2_CBC_PAD"; break;
525 CASE(CKM_RC2_ECB)case 0x00000101UL: a = "CKM_RC2_ECB"; break;
526 CASE(CKM_RC2_KEY_GEN)case 0x00000100UL: a = "CKM_RC2_KEY_GEN"; break;
527 CASE(CKM_RC2_MAC)case 0x00000103UL: a = "CKM_RC2_MAC"; break;
528 CASE(CKM_RC2_MAC_GENERAL)case 0x00000104UL: a = "CKM_RC2_MAC_GENERAL"; break;
529 CASE(CKM_RC4)case 0x00000111UL: a = "CKM_RC4"; break;
530 CASE(CKM_RC4_KEY_GEN)case 0x00000110UL: a = "CKM_RC4_KEY_GEN"; break;
531 CASE(CKM_RC5_CBC)case 0x00000332UL: a = "CKM_RC5_CBC"; break;
532 CASE(CKM_RC5_CBC_PAD)case 0x00000335UL: a = "CKM_RC5_CBC_PAD"; break;
533 CASE(CKM_RC5_ECB)case 0x00000331UL: a = "CKM_RC5_ECB"; break;
534 CASE(CKM_RC5_KEY_GEN)case 0x00000330UL: a = "CKM_RC5_KEY_GEN"; break;
535 CASE(CKM_RC5_MAC)case 0x00000333UL: a = "CKM_RC5_MAC"; break;
536 CASE(CKM_RC5_MAC_GENERAL)case 0x00000334UL: a = "CKM_RC5_MAC_GENERAL"; break;
537 CASE(CKM_RIPEMD128)case 0x00000230UL: a = "CKM_RIPEMD128"; break;
538 CASE(CKM_RIPEMD128_HMAC)case 0x00000231UL: a = "CKM_RIPEMD128_HMAC"; break;
539 CASE(CKM_RIPEMD128_HMAC_GENERAL)case 0x00000232UL: a = "CKM_RIPEMD128_HMAC_GENERAL"; break;
540 CASE(CKM_RIPEMD128_RSA_PKCS)case 0x00000007UL: a = "CKM_RIPEMD128_RSA_PKCS"; break;
541 CASE(CKM_RIPEMD160)case 0x00000240UL: a = "CKM_RIPEMD160"; break;
542 CASE(CKM_RIPEMD160_HMAC)case 0x00000241UL: a = "CKM_RIPEMD160_HMAC"; break;
543 CASE(CKM_RIPEMD160_HMAC_GENERAL)case 0x00000242UL: a = "CKM_RIPEMD160_HMAC_GENERAL"; break;
544 CASE(CKM_RIPEMD160_RSA_PKCS)case 0x00000008UL: a = "CKM_RIPEMD160_RSA_PKCS"; break;
545 CASE(CKM_RSA_9796)case 0x00000002UL: a = "CKM_RSA_9796"; break;
546 CASE(CKM_RSA_PKCS)case 0x00000001UL: a = "CKM_RSA_PKCS"; break;
547 CASE(CKM_RSA_PKCS_KEY_PAIR_GEN)case 0x00000000UL: a = "CKM_RSA_PKCS_KEY_PAIR_GEN"; break;
548 CASE(CKM_RSA_PKCS_OAEP)case 0x00000009UL: a = "CKM_RSA_PKCS_OAEP"; break;
549 CASE(CKM_RSA_PKCS_PSS)case 0x0000000DUL: a = "CKM_RSA_PKCS_PSS"; break;
550 CASE(CKM_RSA_X9_31)case 0x0000000BUL: a = "CKM_RSA_X9_31"; break;
551 CASE(CKM_RSA_X9_31_KEY_PAIR_GEN)case 0x0000000AUL: a = "CKM_RSA_X9_31_KEY_PAIR_GEN"; break;
552 CASE(CKM_RSA_X_509)case 0x00000003UL: a = "CKM_RSA_X_509"; break;
553 CASE(CKM_SHA1_KEY_DERIVATION)case 0x00000392UL: a = "CKM_SHA1_KEY_DERIVATION"; break;
554 CASE(CKM_SHA1_RSA_PKCS)case 0x00000006UL: a = "CKM_SHA1_RSA_PKCS"; break;
555 CASE(CKM_SHA1_RSA_PKCS_PSS)case 0x0000000EUL: a = "CKM_SHA1_RSA_PKCS_PSS"; break;
556 CASE(CKM_SHA1_RSA_X9_31)case 0x0000000CUL: a = "CKM_SHA1_RSA_X9_31"; break;
557 CASE(CKM_SHA224)case 0x00000255UL: a = "CKM_SHA224"; break;
558 CASE(CKM_SHA224_HMAC)case 0x00000256UL: a = "CKM_SHA224_HMAC"; break;
559 CASE(CKM_SHA224_HMAC_GENERAL)case 0x00000257UL: a = "CKM_SHA224_HMAC_GENERAL"; break;
560 CASE(CKM_SHA224_KEY_DERIVATION)case 0x00000396UL: a = "CKM_SHA224_KEY_DERIVATION"; break;
561 CASE(CKM_SHA224_RSA_PKCS)case 0x00000046UL: a = "CKM_SHA224_RSA_PKCS"; break;
562 CASE(CKM_SHA224_RSA_PKCS_PSS)case 0x00000047UL: a = "CKM_SHA224_RSA_PKCS_PSS"; break;
563 CASE(CKM_SHA256)case 0x00000250UL: a = "CKM_SHA256"; break;
564 CASE(CKM_SHA256_HMAC)case 0x00000251UL: a = "CKM_SHA256_HMAC"; break;
565 CASE(CKM_SHA256_HMAC_GENERAL)case 0x00000252UL: a = "CKM_SHA256_HMAC_GENERAL"; break;
566 CASE(CKM_SHA256_KEY_DERIVATION)case 0x00000393UL: a = "CKM_SHA256_KEY_DERIVATION"; break;
567 CASE(CKM_SHA256_RSA_PKCS)case 0x00000040UL: a = "CKM_SHA256_RSA_PKCS"; break;
568 CASE(CKM_SHA256_RSA_PKCS_PSS)case 0x00000043UL: a = "CKM_SHA256_RSA_PKCS_PSS"; break;
569 CASE(CKM_SHA384)case 0x00000260UL: a = "CKM_SHA384"; break;
570 CASE(CKM_SHA384_HMAC)case 0x00000261UL: a = "CKM_SHA384_HMAC"; break;
571 CASE(CKM_SHA384_HMAC_GENERAL)case 0x00000262UL: a = "CKM_SHA384_HMAC_GENERAL"; break;
572 CASE(CKM_SHA384_KEY_DERIVATION)case 0x00000394UL: a = "CKM_SHA384_KEY_DERIVATION"; break;
573 CASE(CKM_SHA384_RSA_PKCS)case 0x00000041UL: a = "CKM_SHA384_RSA_PKCS"; break;
574 CASE(CKM_SHA384_RSA_PKCS_PSS)case 0x00000044UL: a = "CKM_SHA384_RSA_PKCS_PSS"; break;
575 CASE(CKM_SHA512)case 0x00000270UL: a = "CKM_SHA512"; break;
576 CASE(CKM_SHA512_HMAC)case 0x00000271UL: a = "CKM_SHA512_HMAC"; break;
577 CASE(CKM_SHA512_HMAC_GENERAL)case 0x00000272UL: a = "CKM_SHA512_HMAC_GENERAL"; break;
578 CASE(CKM_SHA512_KEY_DERIVATION)case 0x00000395UL: a = "CKM_SHA512_KEY_DERIVATION"; break;
579 CASE(CKM_SHA512_RSA_PKCS)case 0x00000042UL: a = "CKM_SHA512_RSA_PKCS"; break;
580 CASE(CKM_SHA512_RSA_PKCS_PSS)case 0x00000045UL: a = "CKM_SHA512_RSA_PKCS_PSS"; break;
581 CASE(CKM_SHA_1)case 0x00000220UL: a = "CKM_SHA_1"; break;
582 CASE(CKM_SHA_1_HMAC)case 0x00000221UL: a = "CKM_SHA_1_HMAC"; break;
583 CASE(CKM_SHA_1_HMAC_GENERAL)case 0x00000222UL: a = "CKM_SHA_1_HMAC_GENERAL"; break;
584 CASE(CKM_SKIPJACK_CBC64)case 0x00001002UL: a = "CKM_SKIPJACK_CBC64"; break;
585 CASE(CKM_SKIPJACK_CFB16)case 0x00001006UL: a = "CKM_SKIPJACK_CFB16"; break;
586 CASE(CKM_SKIPJACK_CFB32)case 0x00001005UL: a = "CKM_SKIPJACK_CFB32"; break;
587 CASE(CKM_SKIPJACK_CFB64)case 0x00001004UL: a = "CKM_SKIPJACK_CFB64"; break;
588 CASE(CKM_SKIPJACK_CFB8)case 0x00001007UL: a = "CKM_SKIPJACK_CFB8"; break;
589 CASE(CKM_SKIPJACK_ECB64)case 0x00001001UL: a = "CKM_SKIPJACK_ECB64"; break;
590 CASE(CKM_SKIPJACK_KEY_GEN)case 0x00001000UL: a = "CKM_SKIPJACK_KEY_GEN"; break;
591 CASE(CKM_SKIPJACK_OFB64)case 0x00001003UL: a = "CKM_SKIPJACK_OFB64"; break;
592 CASE(CKM_SKIPJACK_PRIVATE_WRAP)case 0x00001009UL: a = "CKM_SKIPJACK_PRIVATE_WRAP"; break;
593 CASE(CKM_SKIPJACK_RELAYX)case 0x0000100aUL: a = "CKM_SKIPJACK_RELAYX"; break;
594 CASE(CKM_SKIPJACK_WRAP)case 0x00001008UL: a = "CKM_SKIPJACK_WRAP"; break;
595 CASE(CKM_SSL3_KEY_AND_MAC_DERIVE)case 0x00000372UL: a = "CKM_SSL3_KEY_AND_MAC_DERIVE"; break;
596 CASE(CKM_SSL3_MASTER_KEY_DERIVE)case 0x00000371UL: a = "CKM_SSL3_MASTER_KEY_DERIVE"; break;
597 CASE(CKM_SSL3_MASTER_KEY_DERIVE_DH)case 0x00000373UL: a = "CKM_SSL3_MASTER_KEY_DERIVE_DH"; break;
598 CASE(CKM_SSL3_MD5_MAC)case 0x00000380UL: a = "CKM_SSL3_MD5_MAC"; break;
599 CASE(CKM_SSL3_PRE_MASTER_KEY_GEN)case 0x00000370UL: a = "CKM_SSL3_PRE_MASTER_KEY_GEN"; break;
600 CASE(CKM_SSL3_SHA1_MAC)case 0x00000381UL: a = "CKM_SSL3_SHA1_MAC"; break;
601 CASE(CKM_TLS_KEY_AND_MAC_DERIVE)case 0x00000376UL: a = "CKM_TLS_KEY_AND_MAC_DERIVE"; break;
602 CASE(CKM_TLS_MASTER_KEY_DERIVE)case 0x00000375UL: a = "CKM_TLS_MASTER_KEY_DERIVE"; break;
603 CASE(CKM_TLS_MASTER_KEY_DERIVE_DH)case 0x00000377UL: a = "CKM_TLS_MASTER_KEY_DERIVE_DH"; break;
604 CASE(CKM_TLS_PRE_MASTER_KEY_GEN)case 0x00000374UL: a = "CKM_TLS_PRE_MASTER_KEY_GEN"; break;
605 CASE(CKM_TLS_PRF)case 0x00000378UL: a = "CKM_TLS_PRF"; break;
606 CASE(CKM_TWOFISH_CBC)case 0x00001093UL: a = "CKM_TWOFISH_CBC"; break;
607 CASE(CKM_TWOFISH_KEY_GEN)case 0x00001092UL: a = "CKM_TWOFISH_KEY_GEN"; break;
608 CASE(CKM_X9_42_DH_DERIVE)case 0x00000031UL: a = "CKM_X9_42_DH_DERIVE"; break;
609 CASE(CKM_X9_42_DH_HYBRID_DERIVE)case 0x00000032UL: a = "CKM_X9_42_DH_HYBRID_DERIVE"; break;
610 CASE(CKM_X9_42_DH_KEY_PAIR_GEN)case 0x00000030UL: a = "CKM_X9_42_DH_KEY_PAIR_GEN"; break;
611 CASE(CKM_X9_42_DH_PARAMETER_GEN)case 0x00002002UL: a = "CKM_X9_42_DH_PARAMETER_GEN"; break;
612 CASE(CKM_X9_42_MQV_DERIVE)case 0x00000033UL: a = "CKM_X9_42_MQV_DERIVE"; break;
613 CASE(CKM_XOR_BASE_AND_DATA)case 0x00000364UL: a = "CKM_XOR_BASE_AND_DATA"; break;
614 default:
615 break;
616 }
617 if (a)
618 PR_LOG(modlog, 4, (" mechanism = %s", a))do { if (((modlog)->level >= (4))) { PR_LogPrint (" mechanism = %s"
, a); } } while (0)
;
619 else
620 PR_LOG(modlog, 4, (" mechanism = 0x%p", m->mechanism))do { if (((modlog)->level >= (4))) { PR_LogPrint (" mechanism = 0x%p"
, m->mechanism); } } while (0)
;
621}
622
623static void
624get_key_type(CK_KEY_TYPE keyType, char *str, int len)
625{
626
627 const char *a = NULL((void*)0);
628
629 switch (keyType) {
630 CASE(CKK_AES)case 0x0000001FUL: a = "CKK_AES"; break;
631 CASE(CKK_CAMELLIA)case 0x00000025UL: a = "CKK_CAMELLIA"; break;
632 CASE(CKK_CDMF)case 0x0000001EUL: a = "CKK_CDMF"; break;
633 CASE(CKK_DES)case 0x00000013UL: a = "CKK_DES"; break;
634 CASE(CKK_DES2)case 0x00000014UL: a = "CKK_DES2"; break;
635 CASE(CKK_DES3)case 0x00000015UL: a = "CKK_DES3"; break;
636 CASE(CKK_DH)case 0x00000002UL: a = "CKK_DH"; break;
637 CASE(CKK_DSA)case 0x00000001UL: a = "CKK_DSA"; break;
638 CASE(CKK_EC)case 0x00000003UL: a = "CKK_EC"; break; /* also CASE(CKK_ECDSA); */
639 CASE(CKK_GENERIC_SECRET)case 0x00000010UL: a = "CKK_GENERIC_SECRET"; break;
640 CASE(CKK_IDEA)case 0x0000001AUL: a = "CKK_IDEA"; break;
641 CASE(CKK_INVALID_KEY_TYPE)case 0xffffffffUL: a = "CKK_INVALID_KEY_TYPE"; break;
642 CASE(CKK_KEA)case 0x00000005UL: a = "CKK_KEA"; break;
643 CASE(CKK_RC2)case 0x00000011UL: a = "CKK_RC2"; break;
644 CASE(CKK_RC4)case 0x00000012UL: a = "CKK_RC4"; break;
645 CASE(CKK_RC5)case 0x00000019UL: a = "CKK_RC5"; break;
646 CASE(CKK_RSA)case 0x00000000UL: a = "CKK_RSA"; break;
647 CASE(CKK_SKIPJACK)case 0x0000001BUL: a = "CKK_SKIPJACK"; break;
648 CASE(CKK_TWOFISH)case 0x00000021UL: a = "CKK_TWOFISH"; break;
649 CASE(CKK_X9_42_DH)case 0x00000004UL: a = "CKK_X9_42_DH"; break;
650 CASE(CKK_MD5_HMAC)case 0x00000027UL: a = "CKK_MD5_HMAC"; break;
651 CASE(CKK_SHA_1_HMAC)case 0x00000028UL: a = "CKK_SHA_1_HMAC"; break;
652 CASE(CKK_RIPEMD128_HMAC)case 0x00000029UL: a = "CKK_RIPEMD128_HMAC"; break;
653 CASE(CKK_RIPEMD160_HMAC)case 0x0000002AUL: a = "CKK_RIPEMD160_HMAC"; break;
654 CASE(CKK_SHA256_HMAC)case 0x0000002BUL: a = "CKK_SHA256_HMAC"; break;
655 CASE(CKK_SHA384_HMAC)case 0x0000002CUL: a = "CKK_SHA384_HMAC"; break;
656 CASE(CKK_SHA512_HMAC)case 0x0000002DUL: a = "CKK_SHA512_HMAC"; break;
657 CASE(CKK_SHA224_HMAC)case 0x0000002EUL: a = "CKK_SHA224_HMAC"; break;
658 CASE(CKK_GOSTR3410)case 0x00000030UL: a = "CKK_GOSTR3410"; break;
659 CASE(CKK_GOSTR3411)case 0x00000031UL: a = "CKK_GOSTR3411"; break;
660 CASE(CKK_GOST28147)case 0x00000032UL: a = "CKK_GOST28147"; break;
661 CASE(CKK_CHACHA20)case 0x00000033UL: a = "CKK_CHACHA20"; break;
662 CASE(CKK_POLY1305)case 0x00000034UL: a = "CKK_POLY1305"; break;
663 CASE(CKK_AES_XTS)case 0x00000035UL: a = "CKK_AES_XTS"; break;
664 CASE(CKK_SHA3_224_HMAC)case 0x00000036UL: a = "CKK_SHA3_224_HMAC"; break;
665 CASE(CKK_SHA3_256_HMAC)case 0x00000037UL: a = "CKK_SHA3_256_HMAC"; break;
666 CASE(CKK_SHA3_384_HMAC)case 0x00000038UL: a = "CKK_SHA3_384_HMAC"; break;
667 CASE(CKK_SHA3_512_HMAC)case 0x00000039UL: a = "CKK_SHA3_512_HMAC"; break;
668 CASE(CKK_BLAKE2B_160_HMAC)case 0x0000003aUL: a = "CKK_BLAKE2B_160_HMAC"; break;
669 CASE(CKK_BLAKE2B_256_HMAC)case 0x0000003bUL: a = "CKK_BLAKE2B_256_HMAC"; break;
670 CASE(CKK_BLAKE2B_384_HMAC)case 0x0000003cUL: a = "CKK_BLAKE2B_384_HMAC"; break;
671 CASE(CKK_BLAKE2B_512_HMAC)case 0x0000003dUL: a = "CKK_BLAKE2B_512_HMAC"; break;
672 CASE(CKK_SALSA20)case 0x0000003eUL: a = "CKK_SALSA20"; break;
673 CASE(CKK_X2RATCHET)case 0x0000003fUL: a = "CKK_X2RATCHET"; break;
674 CASE(CKK_EC_EDWARDS)case 0x00000040UL: a = "CKK_EC_EDWARDS"; break;
675 CASE(CKK_EC_MONTGOMERY)case 0x00000041UL: a = "CKK_EC_MONTGOMERY"; break;
676 CASE(CKK_HKDF)case 0x00000042UL: a = "CKK_HKDF"; break;
677 CASE(CKK_SHA512_224_HMAC)case 0x00000043UL: a = "CKK_SHA512_224_HMAC"; break;
678 CASE(CKK_SHA512_256_HMAC)case 0x00000044UL: a = "CKK_SHA512_256_HMAC"; break;
679 CASE(CKK_SHA512_T_HMAC)case 0x00000045UL: a = "CKK_SHA512_T_HMAC"; break;
680 default:
681 break;
682 }
683 if (a)
684 PR_snprintf(str, len, "%s", a);
685 else
686 PR_snprintf(str, len, "0x%p", keyType);
687}
688
689static void
690print_attr_value(CK_ATTRIBUTE_PTR attr)
691{
692 char atype[48];
693 char valstr[49];
694 int len;
695
696 get_attr_type_str(attr->type, atype, sizeof atype);
697 switch (attr->type) {
698 case CKA_ALWAYS_SENSITIVE0x00000165UL:
699 case CKA_DECRYPT0x00000105UL:
700 case CKA_DERIVE0x0000010CUL:
701 case CKA_ENCRYPT0x00000104UL:
702 case CKA_EXTRACTABLE0x00000162UL:
703 case CKA_LOCAL0x00000163UL:
704 case CKA_MODIFIABLE0x00000170UL:
705 case CKA_NEVER_EXTRACTABLE0x00000164UL:
706 case CKA_PRIVATE0x00000002UL:
707 case CKA_SENSITIVE0x00000103UL:
708 case CKA_SIGN0x00000108UL:
709 case CKA_SIGN_RECOVER0x00000109UL:
710 case CKA_TOKEN0x00000001UL:
711 case CKA_UNWRAP0x00000107UL:
712 case CKA_VERIFY0x0000010AUL:
713 case CKA_VERIFY_RECOVER0x0000010BUL:
714 case CKA_WRAP0x00000106UL:
715 if (attr->ulValueLen > 0 && attr->pValue) {
716 CK_BBOOL tf = *((CK_BBOOL *)attr->pValue);
717 PR_LOG(modlog, 4, (fmt_s_s_d, atype, tf ? "CK_TRUE" : "CK_FALSE", attr->ulValueLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_s_s_d
, atype, tf ? "CK_TRUE" : "CK_FALSE", attr->ulValueLen); }
} while (0)
;
718 break;
719 }
720 case CKA_CLASS0x00000000UL:
721 if (attr->ulValueLen > 0 && attr->pValue) {
722 CK_OBJECT_CLASS objClass = *((CK_OBJECT_CLASS *)attr->pValue);
723 get_obj_class(objClass, valstr, sizeof valstr);
724 PR_LOG(modlog, 4, (fmt_s_s_d, atype, valstr, attr->ulValueLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_s_s_d
, atype, valstr, attr->ulValueLen); } } while (0)
;
725 break;
726 }
727 case CKA_TRUST_CLIENT_AUTH(((0x80000000UL | 0x4E534350) + 0x2000) + 9):
728 case CKA_TRUST_CODE_SIGNING(((0x80000000UL | 0x4E534350) + 0x2000) + 10):
729 case CKA_TRUST_EMAIL_PROTECTION(((0x80000000UL | 0x4E534350) + 0x2000) + 11):
730 case CKA_TRUST_SERVER_AUTH(((0x80000000UL | 0x4E534350) + 0x2000) + 8):
731 if (attr->ulValueLen > 0 && attr->pValue) {
732 CK_TRUST trust = *((CK_TRUST *)attr->pValue);
733 get_trust_val(trust, valstr, sizeof valstr);
734 PR_LOG(modlog, 4, (fmt_s_s_d, atype, valstr, attr->ulValueLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_s_s_d
, atype, valstr, attr->ulValueLen); } } while (0)
;
735 break;
736 }
737 case CKA_KEY_TYPE0x00000100UL:
738 if (attr->ulValueLen > 0 && attr->pValue) {
739 CK_KEY_TYPE keyType = *((CK_KEY_TYPE *)attr->pValue);
740 get_key_type(keyType, valstr, sizeof valstr);
741 PR_LOG(modlog, 4, (fmt_s_s_d, atype, valstr, attr->ulValueLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_s_s_d
, atype, valstr, attr->ulValueLen); } } while (0)
;
742 break;
743 }
744 case CKA_PIXEL_X0x00000400UL:
745 case CKA_PIXEL_Y0x00000401UL:
746 case CKA_RESOLUTION0x00000402UL:
747 case CKA_CHAR_ROWS0x00000403UL:
748 case CKA_CHAR_COLUMNS0x00000404UL:
749 case CKA_BITS_PER_PIXEL0x00000406UL:
750 case CKA_CERTIFICATE_CATEGORY0x00000087UL: /* should print as enum/string */
751 case CKA_JAVA_MIDP_SECURITY_DOMAIN0x00000088UL: /* should print as enum/string */
752 case CKA_MODULUS_BITS0x00000121UL:
753 case CKA_PRIME_BITS0x00000133UL:
754 case CKA_SUBPRIME_BITS0x00000134UL:
755 case CKA_VALUE_BITS0x00000160UL:
756 case CKA_VALUE_LEN0x00000161UL:
757 if (attr->ulValueLen > 0 && attr->pValue) {
758 CK_ULONG valueLen = *((CK_ULONG *)attr->pValue);
759 /* XXX check for the special value CK_UNAVAILABLE_INFORMATION */
760 PR_LOG(modlog, 4, (fmt_s_lu, atype, (PRUint32)valueLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_s_lu
, atype, (PRUint32)valueLen); } } while (0)
;
761 break;
762 }
763 case CKA_LABEL0x00000003UL:
764 case CKA_NSS_EMAIL((0x80000000UL | 0x4E534350) + 2):
765 case CKA_NSS_URL((0x80000000UL | 0x4E534350) + 1):
766 if (attr->ulValueLen > 0 && attr->pValue) {
767 len = PR_MIN(attr->ulValueLen + 1, sizeof valstr)((attr->ulValueLen + 1)<(sizeof valstr)?(attr->ulValueLen
+ 1):(sizeof valstr))
;
768 PR_snprintf(valstr, len, "%s", attr->pValue);
769 PR_LOG(modlog, 4, (fmt_s_qsq_d, atype, valstr, attr->ulValueLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_s_qsq_d
, atype, valstr, attr->ulValueLen); } } while (0)
;
770 break;
771 }
772 case CKA_PROFILE_ID0x00000601UL:
773 if (attr->ulValueLen > 0 && attr->pValue) {
774 CK_PROFILE_ID profile = *((CK_PROFILE_ID *)attr->pValue);
775 get_profile_val(profile, valstr, sizeof valstr);
776 PR_LOG(modlog, 4, (fmt_s_s_d, atype, valstr, attr->ulValueLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_s_s_d
, atype, valstr, attr->ulValueLen); } } while (0)
;
777 break;
778 }
779 case CKA_ISSUER0x00000081UL:
780 case CKA_SUBJECT0x00000101UL:
781 if (attr->ulValueLen > 0 && attr->pValue) {
782 char *asciiName;
783 SECItem derName;
784 derName.type = siDERNameBuffer;
785 derName.data = attr->pValue;
786 derName.len = attr->ulValueLen;
787 asciiName = CERT_DerNameToAscii(&derName);
788 if (asciiName) {
789 PR_LOG(modlog, 4, (fmt_s_s_d, atype, asciiName, attr->ulValueLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_s_s_d
, atype, asciiName, attr->ulValueLen); } } while (0)
;
790 PORT_FreePORT_Free_Util(asciiName);
791 break;
792 }
793 /* else treat like a binary buffer */
794 goto binary_buffer;
795 }
796 case CKA_ID0x00000102UL:
797 if (attr->ulValueLen > 0 && attr->pValue) {
798 unsigned char *pV = attr->pValue;
799 for (len = (int)attr->ulValueLen; len > 0; --len) {
800 unsigned int ch = *pV++;
801 if (ch >= 0x20 && ch < 0x7f)
802 continue;
803 if (!ch && len == 1) /* will ignore NUL if last character */
804 continue;
805 break;
806 }
807 if (!len) { /* entire string is printable */
808 len = PR_MIN(attr->ulValueLen + 1, sizeof valstr)((attr->ulValueLen + 1)<(sizeof valstr)?(attr->ulValueLen
+ 1):(sizeof valstr))
;
809 PR_snprintf(valstr, len, "%s", attr->pValue);
810 PR_LOG(modlog, 4, (fmt_s_qsq_d, atype, valstr, attr->ulValueLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_s_qsq_d
, atype, valstr, attr->ulValueLen); } } while (0)
;
811 break;
812 }
813 /* else fall through and treat like a binary buffer */
814 }
815 binary_buffer:
816 case CKA_SERIAL_NUMBER0x00000082UL:
817 default:
818 if (attr->ulValueLen > 0 && attr->pValue) {
819 char *hexBuf;
820 SECItem attrBuf;
821 attrBuf.type = siDERNameBuffer;
822 attrBuf.data = attr->pValue;
823 attrBuf.len = PR_MIN(attr->ulValueLen, (sizeof valstr) / 2)((attr->ulValueLen)<((sizeof valstr) / 2)?(attr->ulValueLen
):((sizeof valstr) / 2))
;
824
825 hexBuf = CERT_Hexify(&attrBuf, PR_FALSE0);
826 if (hexBuf) {
827 PR_LOG(modlog, 4, (fmt_s_s_d, atype, hexBuf, attr->ulValueLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_s_s_d
, atype, hexBuf, attr->ulValueLen); } } while (0)
;
828 PORT_FreePORT_Free_Util(hexBuf);
829 break;
830 }
831 /* else fall through and show only the address. :( */
832 }
833 PR_LOG(modlog, 4, (" %s = [0x%p] [%d]", atype, attr->pValue, attr->ulValueLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (" %s = [0x%p] [%d]"
, atype, attr->pValue, attr->ulValueLen); } } while (0)
;
834 break;
835 }
836}
837
838static void
839print_template(CK_ATTRIBUTE_PTR templ, CK_ULONG tlen)
840{
841 CK_ULONG i;
842 for (i = 0; i < tlen; i++) {
843 print_attr_value(&templ[i]);
844 }
845}
846
847struct nssdbg_prof_str {
848 PRUint32 time;
849 PRUint32 calls;
850 char *function;
851};
852
853#define NSSDBG_DEFINE(func){ 0, 0, "func" } \
854 { \
855 0, 0, #func \
856 }
857
858struct nssdbg_prof_str nssdbg_prof_data[] = {
859#define FUNC_C_INITIALIZE0 0
860 NSSDBG_DEFINE(C_Initialize){ 0, 0, "C_Initialize" },
861#define FUNC_C_FINALIZE1 1
862 NSSDBG_DEFINE(C_Finalize){ 0, 0, "C_Finalize" },
863#define FUNC_C_GETINFO2 2
864 NSSDBG_DEFINE(C_GetInfo){ 0, 0, "C_GetInfo" },
865#define FUNC_C_GETFUNCITONLIST3 3
866 NSSDBG_DEFINE(C_GetFunctionList){ 0, 0, "C_GetFunctionList" },
867#define FUNC_C_GETSLOTLIST4 4
868 NSSDBG_DEFINE(C_GetSlotList){ 0, 0, "C_GetSlotList" },
869#define FUNC_C_GETSLOTINFO5 5
870 NSSDBG_DEFINE(C_GetSlotInfo){ 0, 0, "C_GetSlotInfo" },
871#define FUNC_C_GETTOKENINFO6 6
872 NSSDBG_DEFINE(C_GetTokenInfo){ 0, 0, "C_GetTokenInfo" },
873#define FUNC_C_GETMECHANISMLIST7 7
874 NSSDBG_DEFINE(C_GetMechanismList){ 0, 0, "C_GetMechanismList" },
875#define FUNC_C_GETMECHANISMINFO8 8
876 NSSDBG_DEFINE(C_GetMechanismInfo){ 0, 0, "C_GetMechanismInfo" },
877#define FUNC_C_INITTOKEN9 9
878 NSSDBG_DEFINE(C_InitToken){ 0, 0, "C_InitToken" },
879#define FUNC_C_INITPIN10 10
880 NSSDBG_DEFINE(C_InitPIN){ 0, 0, "C_InitPIN" },
881#define FUNC_C_SETPIN11 11
882 NSSDBG_DEFINE(C_SetPIN){ 0, 0, "C_SetPIN" },
883#define FUNC_C_OPENSESSION12 12
884 NSSDBG_DEFINE(C_OpenSession){ 0, 0, "C_OpenSession" },
885#define FUNC_C_CLOSESESSION13 13
886 NSSDBG_DEFINE(C_CloseSession){ 0, 0, "C_CloseSession" },
887#define FUNC_C_CLOSEALLSESSIONS14 14
888 NSSDBG_DEFINE(C_CloseAllSessions){ 0, 0, "C_CloseAllSessions" },
889#define FUNC_C_GETSESSIONINFO15 15
890 NSSDBG_DEFINE(C_GetSessionInfo){ 0, 0, "C_GetSessionInfo" },
891#define FUNC_C_GETOPERATIONSTATE16 16
892 NSSDBG_DEFINE(C_GetOperationState){ 0, 0, "C_GetOperationState" },
893#define FUNC_C_SETOPERATIONSTATE17 17
894 NSSDBG_DEFINE(C_SetOperationState){ 0, 0, "C_SetOperationState" },
895#define FUNC_C_LOGIN18 18
896 NSSDBG_DEFINE(C_Login){ 0, 0, "C_Login" },
897#define FUNC_C_LOGOUT19 19
898 NSSDBG_DEFINE(C_Logout){ 0, 0, "C_Logout" },
899#define FUNC_C_CREATEOBJECT20 20
900 NSSDBG_DEFINE(C_CreateObject){ 0, 0, "C_CreateObject" },
901#define FUNC_C_COPYOBJECT21 21
902 NSSDBG_DEFINE(C_CopyObject){ 0, 0, "C_CopyObject" },
903#define FUNC_C_DESTROYOBJECT22 22
904 NSSDBG_DEFINE(C_DestroyObject){ 0, 0, "C_DestroyObject" },
905#define FUNC_C_GETOBJECTSIZE23 23
906 NSSDBG_DEFINE(C_GetObjectSize){ 0, 0, "C_GetObjectSize" },
907#define FUNC_C_GETATTRIBUTEVALUE24 24
908 NSSDBG_DEFINE(C_GetAttributeValue){ 0, 0, "C_GetAttributeValue" },
909#define FUNC_C_SETATTRIBUTEVALUE25 25
910 NSSDBG_DEFINE(C_SetAttributeValue){ 0, 0, "C_SetAttributeValue" },
911#define FUNC_C_FINDOBJECTSINIT26 26
912 NSSDBG_DEFINE(C_FindObjectsInit){ 0, 0, "C_FindObjectsInit" },
913#define FUNC_C_FINDOBJECTS27 27
914 NSSDBG_DEFINE(C_FindObjects){ 0, 0, "C_FindObjects" },
915#define FUNC_C_FINDOBJECTSFINAL28 28
916 NSSDBG_DEFINE(C_FindObjectsFinal){ 0, 0, "C_FindObjectsFinal" },
917#define FUNC_C_ENCRYPTINIT29 29
918 NSSDBG_DEFINE(C_EncryptInit){ 0, 0, "C_EncryptInit" },
919#define FUNC_C_ENCRYPT30 30
920 NSSDBG_DEFINE(C_Encrypt){ 0, 0, "C_Encrypt" },
921#define FUNC_C_ENCRYPTUPDATE31 31
922 NSSDBG_DEFINE(C_EncryptUpdate){ 0, 0, "C_EncryptUpdate" },
923#define FUNC_C_ENCRYPTFINAL32 32
924 NSSDBG_DEFINE(C_EncryptFinal){ 0, 0, "C_EncryptFinal" },
925#define FUNC_C_DECRYPTINIT33 33
926 NSSDBG_DEFINE(C_DecryptInit){ 0, 0, "C_DecryptInit" },
927#define FUNC_C_DECRYPT34 34
928 NSSDBG_DEFINE(C_Decrypt){ 0, 0, "C_Decrypt" },
929#define FUNC_C_DECRYPTUPDATE35 35
930 NSSDBG_DEFINE(C_DecryptUpdate){ 0, 0, "C_DecryptUpdate" },
931#define FUNC_C_DECRYPTFINAL36 36
932 NSSDBG_DEFINE(C_DecryptFinal){ 0, 0, "C_DecryptFinal" },
933#define FUNC_C_DIGESTINIT37 37
934 NSSDBG_DEFINE(C_DigestInit){ 0, 0, "C_DigestInit" },
935#define FUNC_C_DIGEST38 38
936 NSSDBG_DEFINE(C_Digest){ 0, 0, "C_Digest" },
937#define FUNC_C_DIGESTUPDATE39 39
938 NSSDBG_DEFINE(C_DigestUpdate){ 0, 0, "C_DigestUpdate" },
939#define FUNC_C_DIGESTKEY40 40
940 NSSDBG_DEFINE(C_DigestKey){ 0, 0, "C_DigestKey" },
941#define FUNC_C_DIGESTFINAL41 41
942 NSSDBG_DEFINE(C_DigestFinal){ 0, 0, "C_DigestFinal" },
943#define FUNC_C_SIGNINIT42 42
944 NSSDBG_DEFINE(C_SignInit){ 0, 0, "C_SignInit" },
945#define FUNC_C_SIGN43 43
946 NSSDBG_DEFINE(C_Sign){ 0, 0, "C_Sign" },
947#define FUNC_C_SIGNUPDATE44 44
948 NSSDBG_DEFINE(C_SignUpdate){ 0, 0, "C_SignUpdate" },
949#define FUNC_C_SIGNFINAL45 45
950 NSSDBG_DEFINE(C_SignFinal){ 0, 0, "C_SignFinal" },
951#define FUNC_C_SIGNRECOVERINIT46 46
952 NSSDBG_DEFINE(C_SignRecoverInit){ 0, 0, "C_SignRecoverInit" },
953#define FUNC_C_SIGNRECOVER47 47
954 NSSDBG_DEFINE(C_SignRecover){ 0, 0, "C_SignRecover" },
955#define FUNC_C_VERIFYINIT48 48
956 NSSDBG_DEFINE(C_VerifyInit){ 0, 0, "C_VerifyInit" },
957#define FUNC_C_VERIFY49 49
958 NSSDBG_DEFINE(C_Verify){ 0, 0, "C_Verify" },
959#define FUNC_C_VERIFYUPDATE50 50
960 NSSDBG_DEFINE(C_VerifyUpdate){ 0, 0, "C_VerifyUpdate" },
961#define FUNC_C_VERIFYFINAL51 51
962 NSSDBG_DEFINE(C_VerifyFinal){ 0, 0, "C_VerifyFinal" },
963#define FUNC_C_VERIFYRECOVERINIT52 52
964 NSSDBG_DEFINE(C_VerifyRecoverInit){ 0, 0, "C_VerifyRecoverInit" },
965#define FUNC_C_VERIFYRECOVER53 53
966 NSSDBG_DEFINE(C_VerifyRecover){ 0, 0, "C_VerifyRecover" },
967#define FUNC_C_DIGESTENCRYPTUPDATE54 54
968 NSSDBG_DEFINE(C_DigestEncryptUpdate){ 0, 0, "C_DigestEncryptUpdate" },
969#define FUNC_C_DECRYPTDIGESTUPDATE55 55
970 NSSDBG_DEFINE(C_DecryptDigestUpdate){ 0, 0, "C_DecryptDigestUpdate" },
971#define FUNC_C_SIGNENCRYPTUPDATE56 56
972 NSSDBG_DEFINE(C_SignEncryptUpdate){ 0, 0, "C_SignEncryptUpdate" },
973#define FUNC_C_DECRYPTVERIFYUPDATE57 57
974 NSSDBG_DEFINE(C_DecryptVerifyUpdate){ 0, 0, "C_DecryptVerifyUpdate" },
975#define FUNC_C_GENERATEKEY58 58
976 NSSDBG_DEFINE(C_GenerateKey){ 0, 0, "C_GenerateKey" },
977#define FUNC_C_GENERATEKEYPAIR59 59
978 NSSDBG_DEFINE(C_GenerateKeyPair){ 0, 0, "C_GenerateKeyPair" },
979#define FUNC_C_WRAPKEY60 60
980 NSSDBG_DEFINE(C_WrapKey){ 0, 0, "C_WrapKey" },
981#define FUNC_C_UNWRAPKEY61 61
982 NSSDBG_DEFINE(C_UnWrapKey){ 0, 0, "C_UnWrapKey" },
983#define FUNC_C_DERIVEKEY62 62
984 NSSDBG_DEFINE(C_DeriveKey){ 0, 0, "C_DeriveKey" },
985#define FUNC_C_SEEDRANDOM63 63
986 NSSDBG_DEFINE(C_SeedRandom){ 0, 0, "C_SeedRandom" },
987#define FUNC_C_GENERATERANDOM64 64
988 NSSDBG_DEFINE(C_GenerateRandom){ 0, 0, "C_GenerateRandom" },
989#define FUNC_C_GETFUNCTIONSTATUS65 65
990 NSSDBG_DEFINE(C_GetFunctionStatus){ 0, 0, "C_GetFunctionStatus" },
991#define FUNC_C_CANCELFUNCTION66 66
992 NSSDBG_DEFINE(C_CancelFunction){ 0, 0, "C_CancelFunction" },
993#define FUNC_C_WAITFORSLOTEVENT67 67
994 NSSDBG_DEFINE(C_WaitForSlotEvent){ 0, 0, "C_WaitForSlotEvent" },
995#define FUNC_C_GETINTERFACELIST68 68
996 NSSDBG_DEFINE(C_GetInterfaceList){ 0, 0, "C_GetInterfaceList" },
997#define FUNC_C_GETINTERFACE69 69
998 NSSDBG_DEFINE(C_GetInterface){ 0, 0, "C_GetInterface" },
999#define FUNC_C_LOGINUSER70 70
1000 NSSDBG_DEFINE(C_LoginUser){ 0, 0, "C_LoginUser" },
1001#define FUNC_C_SESSIONCANCEL71 71
1002 NSSDBG_DEFINE(C_SessionCancel){ 0, 0, "C_SessionCancel" },
1003#define FUNC_C_MESSAGEENCRYPTINIT72 72
1004 NSSDBG_DEFINE(C_MessageEncryptInit){ 0, 0, "C_MessageEncryptInit" },
1005#define FUNC_C_ENCRYPTMESSAGE73 73
1006 NSSDBG_DEFINE(C_EncryptMessage){ 0, 0, "C_EncryptMessage" },
1007#define FUNC_C_ENCRYPTMESSAGEBEGIN74 74
1008 NSSDBG_DEFINE(C_EncryptMessageBegin){ 0, 0, "C_EncryptMessageBegin" },
1009#define FUNC_C_ENCRYPTMESSAGENEXT75 75
1010 NSSDBG_DEFINE(C_EncryptMessageNext){ 0, 0, "C_EncryptMessageNext" },
1011#define FUNC_C_MESSAGEENCRYPTFINAL76 76
1012 NSSDBG_DEFINE(C_MessageEncryptFinal){ 0, 0, "C_MessageEncryptFinal" },
1013#define FUNC_C_MESSAGEDECRYPTINIT77 77
1014 NSSDBG_DEFINE(C_MessageDecryptInit){ 0, 0, "C_MessageDecryptInit" },
1015#define FUNC_C_DECRYPTMESSAGE78 78
1016 NSSDBG_DEFINE(C_DecryptMessage){ 0, 0, "C_DecryptMessage" },
1017#define FUNC_C_DECRYPTMESSAGEBEGIN79 79
1018 NSSDBG_DEFINE(C_DecryptMessageBegin){ 0, 0, "C_DecryptMessageBegin" },
1019#define FUNC_C_DECRYPTMESSAGENEXT80 80
1020 NSSDBG_DEFINE(C_DecryptMessageNext){ 0, 0, "C_DecryptMessageNext" },
1021#define FUNC_C_MESSAGEDECRYPTFINAL81 81
1022 NSSDBG_DEFINE(C_MessageDecryptFinal){ 0, 0, "C_MessageDecryptFinal" },
1023#define FUNC_C_MESSAGESIGNINIT82 82
1024 NSSDBG_DEFINE(C_MessageSignInit){ 0, 0, "C_MessageSignInit" },
1025#define FUNC_C_SIGNMESSAGE83 83
1026 NSSDBG_DEFINE(C_SignMessage){ 0, 0, "C_SignMessage" },
1027#define FUNC_C_SIGNMESSAGEBEGIN84 84
1028 NSSDBG_DEFINE(C_SignMessageBegin){ 0, 0, "C_SignMessageBegin" },
1029#define FUNC_C_SIGNMESSAGENEXT85 85
1030 NSSDBG_DEFINE(C_SignMessageNext){ 0, 0, "C_SignMessageNext" },
1031#define FUNC_C_MESSAGESIGNFINAL86 86
1032 NSSDBG_DEFINE(C_MessageSignFinal){ 0, 0, "C_MessageSignFinal" },
1033#define FUNC_C_MESSAGEVERIFYINIT87 87
1034 NSSDBG_DEFINE(C_MessageVerifyInit){ 0, 0, "C_MessageVerifyInit" },
1035#define FUNC_C_VERIFYMESSAGE88 88
1036 NSSDBG_DEFINE(C_VerifyMessage){ 0, 0, "C_VerifyMessage" },
1037#define FUNC_C_VERIFYMESSAGEBEGIN89 89
1038 NSSDBG_DEFINE(C_VerifyMessageBegin){ 0, 0, "C_VerifyMessageBegin" },
1039#define FUNC_C_VERIFYMESSAGENEXT90 90
1040 NSSDBG_DEFINE(C_VerifyMessageNext){ 0, 0, "C_VerifyMessageNext" },
1041#define FUNC_C_MESSAGEVERIFYFINAL91 91
1042 NSSDBG_DEFINE(C_MessageVerifyFinal){ 0, 0, "C_MessageVerifyFinal" }
1043};
1044
1045int nssdbg_prof_size = sizeof(nssdbg_prof_data) / sizeof(nssdbg_prof_data[0]);
1046
1047static void
1048nssdbg_finish_time(PRInt32 fun_number, PRIntervalTime start)
1049{
1050 PRIntervalTime ival;
1051 PRIntervalTime end = PR_IntervalNow();
1052
1053 ival = end - start;
1054 /* sigh, lie to PRAtomic add and say we are using signed values */
1055 PR_ATOMIC_ADD((PRInt32 *)&nssdbg_prof_data[fun_number].time, (PRInt32)ival)__sync_add_and_fetch((PRInt32 *)&nssdbg_prof_data[fun_number
].time, (PRInt32)ival)
;
1056}
1057
1058static void
1059nssdbg_start_time(PRInt32 fun_number, PRIntervalTime *start)
1060{
1061 PR_ATOMIC_INCREMENT((PRInt32 *)&nssdbg_prof_data[fun_number].calls)__sync_add_and_fetch((PRInt32 *)&nssdbg_prof_data[fun_number
].calls, 1)
;
1062 *start = PR_IntervalNow();
1063}
1064
1065#define COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start \
1066 CK_RV rv; \
1067 PRIntervalTime start
1068
1069CK_RV
1070NSSDBGC_Initialize(
1071 CK_VOID_PTR pInitArgs)
1072{
1073 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1074
1075 PR_LOG(modlog, 1, ("C_Initialize"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_Initialize"
); } } while (0)
;
1076 PR_LOG(modlog, 3, (" pInitArgs = 0x%p", pInitArgs))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pInitArgs = 0x%p"
, pInitArgs); } } while (0)
;
1077 nssdbg_start_time(FUNC_C_INITIALIZE0, &start);
1078 rv = module_functions->C_Initialize(pInitArgs);
1079 nssdbg_finish_time(FUNC_C_INITIALIZE0, start);
1080 log_rv(rv);
1081 return rv;
1082}
1083
1084CK_RV
1085NSSDBGC_Finalize(
1086 CK_VOID_PTR pReserved)
1087{
1088 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1089
1090 PR_LOG(modlog, 1, ("C_Finalize"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_Finalize"
); } } while (0)
;
1091 PR_LOG(modlog, 3, (" pReserved = 0x%p", pReserved))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pReserved = 0x%p"
, pReserved); } } while (0)
;
1092 nssdbg_start_time(FUNC_C_FINALIZE1, &start);
1093 rv = module_functions->C_Finalize(pReserved);
1094 nssdbg_finish_time(FUNC_C_FINALIZE1, start);
1095 log_rv(rv);
1096 return rv;
1097}
1098
1099CK_RV
1100NSSDBGC_GetInfo(
1101 CK_INFO_PTR pInfo)
1102{
1103 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1104
1105 PR_LOG(modlog, 1, ("C_GetInfo"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GetInfo"
); } } while (0)
;
1106 PR_LOG(modlog, 3, (fmt_pInfo, pInfo))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pInfo
, pInfo); } } while (0)
;
1107 nssdbg_start_time(FUNC_C_GETINFO2, &start);
1108 rv = module_functions->C_GetInfo(pInfo);
1109 nssdbg_finish_time(FUNC_C_GETINFO2, start);
1110 if (rv == CKR_OK0x00000000UL) {
1111 PR_LOG(modlog, 4, (" cryptoki version: %d.%d", pInfo->cryptokiVersion.major, pInfo->cryptokiVersion.minor))do { if (((modlog)->level >= (4))) { PR_LogPrint (" cryptoki version: %d.%d"
, pInfo->cryptokiVersion.major, pInfo->cryptokiVersion.
minor); } } while (0)
;
1112 PR_LOG(modlog, 4, (fmt_manufacturerID, pInfo->manufacturerID))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_manufacturerID
, pInfo->manufacturerID); } } while (0)
;
1113 PR_LOG(modlog, 4, (" library description = \"%.32s\"", pInfo->libraryDescription))do { if (((modlog)->level >= (4))) { PR_LogPrint (" library description = \"%.32s\""
, pInfo->libraryDescription); } } while (0)
;
1114 PR_LOG(modlog, 4, (" library version: %d.%d", pInfo->libraryVersion.major, pInfo->libraryVersion.minor))do { if (((modlog)->level >= (4))) { PR_LogPrint (" library version: %d.%d"
, pInfo->libraryVersion.major, pInfo->libraryVersion.minor
); } } while (0)
;
1115 }
1116 log_rv(rv);
1117 return rv;
1118}
1119
1120CK_RV
1121NSSDBGC_GetFunctionList(
1122 CK_FUNCTION_LIST_PTR_PTR ppFunctionList)
1123{
1124 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1125
1126 PR_LOG(modlog, 1, ("C_GetFunctionList"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GetFunctionList"
); } } while (0)
;
1127 PR_LOG(modlog, 3, (" ppFunctionList = 0x%p", ppFunctionList))do { if (((modlog)->level >= (3))) { PR_LogPrint (" ppFunctionList = 0x%p"
, ppFunctionList); } } while (0)
;
1128 nssdbg_start_time(FUNC_C_GETFUNCITONLIST3, &start);
1129 rv = module_functions->C_GetFunctionList(ppFunctionList);
1130 nssdbg_finish_time(FUNC_C_GETFUNCITONLIST3, start);
1131 log_rv(rv);
1132 return rv;
1133}
1134
1135CK_RV
1136NSSDBGC_GetSlotList(
1137 CK_BBOOL tokenPresent,
1138 CK_SLOT_ID_PTR pSlotList,
1139 CK_ULONG_PTR pulCount)
1140{
1141 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1142
1143 CK_ULONG i;
1144 PR_LOG(modlog, 1, ("C_GetSlotList"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GetSlotList"
); } } while (0)
;
1145 PR_LOG(modlog, 3, (" tokenPresent = 0x%x", tokenPresent))do { if (((modlog)->level >= (3))) { PR_LogPrint (" tokenPresent = 0x%x"
, tokenPresent); } } while (0)
;
1146 PR_LOG(modlog, 3, (" pSlotList = 0x%p", pSlotList))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pSlotList = 0x%p"
, pSlotList); } } while (0)
;
1147 PR_LOG(modlog, 3, (fmt_pulCount, pulCount))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulCount
, pulCount); } } while (0)
;
1148 nssdbg_start_time(FUNC_C_GETSLOTLIST4, &start);
1149 rv = module_functions->C_GetSlotList(tokenPresent, pSlotList, pulCount);
1150 nssdbg_finish_time(FUNC_C_GETSLOTLIST4, start);
1151 PR_LOG(modlog, 4, (fmt_spulCount, *pulCount))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_spulCount
, *pulCount); } } while (0)
;
1152 if (pSlotList) {
1153 for (i = 0; i < *pulCount; i++) {
1154 PR_LOG(modlog, 4, (" slotID[%d] = %x", i, pSlotList[i]))do { if (((modlog)->level >= (4))) { PR_LogPrint (" slotID[%d] = %x"
, i, pSlotList[i]); } } while (0)
;
1155 }
1156 }
1157 log_rv(rv);
1158 return rv;
1159}
1160
1161CK_RV
1162NSSDBGC_GetSlotInfo(
1163 CK_SLOT_ID slotID,
1164 CK_SLOT_INFO_PTR pInfo)
1165{
1166 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1167
1168 PR_LOG(modlog, 1, ("C_GetSlotInfo"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GetSlotInfo"
); } } while (0)
;
1169 PR_LOG(modlog, 3, (fmt_slotID, slotID))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_slotID
, slotID); } } while (0)
;
1170 PR_LOG(modlog, 3, (fmt_pInfo, pInfo))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pInfo
, pInfo); } } while (0)
;
1171 nssdbg_start_time(FUNC_C_GETSLOTINFO5, &start);
1172 rv = module_functions->C_GetSlotInfo(slotID, pInfo);
1173 nssdbg_finish_time(FUNC_C_GETSLOTINFO5, start);
1174 if (rv == CKR_OK0x00000000UL) {
1175 PR_LOG(modlog, 4, (" slotDescription = \"%.64s\"", pInfo->slotDescription))do { if (((modlog)->level >= (4))) { PR_LogPrint (" slotDescription = \"%.64s\""
, pInfo->slotDescription); } } while (0)
;
1176 PR_LOG(modlog, 4, (fmt_manufacturerID, pInfo->manufacturerID))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_manufacturerID
, pInfo->manufacturerID); } } while (0)
;
1177 PR_LOG(modlog, 4, (" flags = %s %s %s", pInfo->flags & CKF_HW_SLOT ? "CKF_HW_SLOT" : "", pInfo->flags & CKF_REMOVABLE_DEVICE ? "CKF_REMOVABLE_DEVICE" : "", pInfo->flags & CKF_TOKEN_PRESENT ? "CKF_TOKEN_PRESENT" : ""))do { if (((modlog)->level >= (4))) { PR_LogPrint (" flags = %s %s %s"
, pInfo->flags & 0x00000004UL ? "CKF_HW_SLOT" : "", pInfo
->flags & 0x00000002UL ? "CKF_REMOVABLE_DEVICE" : "", pInfo
->flags & 0x00000001UL ? "CKF_TOKEN_PRESENT" : ""); } }
while (0)
;
1178 PR_LOG(modlog, 4, (fmt_hwVersion, pInfo->hardwareVersion.major, pInfo->hardwareVersion.minor))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_hwVersion
, pInfo->hardwareVersion.major, pInfo->hardwareVersion.
minor); } } while (0)
;
1179 PR_LOG(modlog, 4, (fmt_fwVersion, pInfo->firmwareVersion.major, pInfo->firmwareVersion.minor))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_fwVersion
, pInfo->firmwareVersion.major, pInfo->firmwareVersion.
minor); } } while (0)
;
1180 }
1181 log_rv(rv);
1182 return rv;
1183}
1184
1185CK_RV
1186NSSDBGC_GetTokenInfo(
1187 CK_SLOT_ID slotID,
1188 CK_TOKEN_INFO_PTR pInfo)
1189{
1190 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1191
1192 PR_LOG(modlog, 1, ("C_GetTokenInfo"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GetTokenInfo"
); } } while (0)
;
1193 PR_LOG(modlog, 3, (fmt_slotID, slotID))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_slotID
, slotID); } } while (0)
;
1194 PR_LOG(modlog, 3, (fmt_pInfo, pInfo))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pInfo
, pInfo); } } while (0)
;
1195 nssdbg_start_time(FUNC_C_GETTOKENINFO6, &start);
1196 rv = module_functions->C_GetTokenInfo(slotID, pInfo);
1197 nssdbg_finish_time(FUNC_C_GETTOKENINFO6, start);
1198 if (rv == CKR_OK0x00000000UL) {
1199 PR_LOG(modlog, 4, (" label = \"%.32s\"", pInfo->label))do { if (((modlog)->level >= (4))) { PR_LogPrint (" label = \"%.32s\""
, pInfo->label); } } while (0)
;
1200 PR_LOG(modlog, 4, (fmt_manufacturerID, pInfo->manufacturerID))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_manufacturerID
, pInfo->manufacturerID); } } while (0)
;
1201 PR_LOG(modlog, 4, (" model = \"%.16s\"", pInfo->model))do { if (((modlog)->level >= (4))) { PR_LogPrint (" model = \"%.16s\""
, pInfo->model); } } while (0)
;
1202 PR_LOG(modlog, 4, (" serial = \"%.16s\"", pInfo->serialNumber))do { if (((modlog)->level >= (4))) { PR_LogPrint (" serial = \"%.16s\""
, pInfo->serialNumber); } } while (0)
;
1203 PR_LOG(modlog, 4, (" flags = %s %s %s %s", pInfo->flags & CKF_RNG ? "CKF_RNG" : "", pInfo->flags & CKF_WRITE_PROTECTED ? "CKF_WRITE_PROTECTED" : "", pInfo->flags & CKF_LOGIN_REQUIRED ? "CKF_LOGIN_REQUIRED" : "", pInfo->flags & CKF_USER_PIN_INITIALIZED ? "CKF_USER_PIN_INIT" : ""))do { if (((modlog)->level >= (4))) { PR_LogPrint (" flags = %s %s %s %s"
, pInfo->flags & 0x00000001UL ? "CKF_RNG" : "", pInfo->
flags & 0x00000002UL ? "CKF_WRITE_PROTECTED" : "", pInfo->
flags & 0x00000004UL ? "CKF_LOGIN_REQUIRED" : "", pInfo->
flags & 0x00000008UL ? "CKF_USER_PIN_INIT" : ""); } } while
(0)
;
1204 PR_LOG(modlog, 4, (" maxSessions = %u, Sessions = %u", pInfo->ulMaxSessionCount, pInfo->ulSessionCount))do { if (((modlog)->level >= (4))) { PR_LogPrint (" maxSessions = %u, Sessions = %u"
, pInfo->ulMaxSessionCount, pInfo->ulSessionCount); } }
while (0)
;
1205 PR_LOG(modlog, 4, (" maxRwSessions = %u, RwSessions = %u", pInfo->ulMaxRwSessionCount, pInfo->ulRwSessionCount))do { if (((modlog)->level >= (4))) { PR_LogPrint (" maxRwSessions = %u, RwSessions = %u"
, pInfo->ulMaxRwSessionCount, pInfo->ulRwSessionCount);
} } while (0)
;
1206 /* ignore Max & Min Pin Len, Public and Private Memory */
1207 PR_LOG(modlog, 4, (fmt_hwVersion, pInfo->hardwareVersion.major, pInfo->hardwareVersion.minor))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_hwVersion
, pInfo->hardwareVersion.major, pInfo->hardwareVersion.
minor); } } while (0)
;
1208 PR_LOG(modlog, 4, (fmt_fwVersion, pInfo->firmwareVersion.major, pInfo->firmwareVersion.minor))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_fwVersion
, pInfo->firmwareVersion.major, pInfo->firmwareVersion.
minor); } } while (0)
;
1209 }
1210 log_rv(rv);
1211 return rv;
1212}
1213
1214CK_RV
1215NSSDBGC_GetMechanismList(
1216 CK_SLOT_ID slotID,
1217 CK_MECHANISM_TYPE_PTR pMechanismList,
1218 CK_ULONG_PTR pulCount)
1219{
1220 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1221
1222 PR_LOG(modlog, 1, ("C_GetMechanismList"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GetMechanismList"
); } } while (0)
;
1223 PR_LOG(modlog, 3, (fmt_slotID, slotID))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_slotID
, slotID); } } while (0)
;
1224 PR_LOG(modlog, 3, (" pMechanismList = 0x%p", pMechanismList))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pMechanismList = 0x%p"
, pMechanismList); } } while (0)
;
1225 PR_LOG(modlog, 3, (fmt_pulCount, pulCount))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulCount
, pulCount); } } while (0)
;
1226 nssdbg_start_time(FUNC_C_GETMECHANISMLIST7, &start);
1227 rv = module_functions->C_GetMechanismList(slotID,
1228 pMechanismList,
1229 pulCount);
1230 nssdbg_finish_time(FUNC_C_GETMECHANISMLIST7, start);
1231 PR_LOG(modlog, 4, (fmt_spulCount, *pulCount))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_spulCount
, *pulCount); } } while (0)
;
1232 log_rv(rv);
1233 return rv;
1234}
1235
1236CK_RV
1237NSSDBGC_GetMechanismInfo(
1238 CK_SLOT_ID slotID,
1239 CK_MECHANISM_TYPE type,
1240 CK_MECHANISM_INFO_PTR pInfo)
1241{
1242 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1243
1244 PR_LOG(modlog, 1, ("C_GetMechanismInfo"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GetMechanismInfo"
); } } while (0)
;
1245 PR_LOG(modlog, 3, (fmt_slotID, slotID))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_slotID
, slotID); } } while (0)
;
1246 PR_LOG(modlog, 3, (" type = 0x%x", type))do { if (((modlog)->level >= (3))) { PR_LogPrint (" type = 0x%x"
, type); } } while (0)
;
1247 PR_LOG(modlog, 3, (fmt_pInfo, pInfo))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pInfo
, pInfo); } } while (0)
;
1248 nssdbg_start_time(FUNC_C_GETMECHANISMINFO8, &start);
1249 rv = module_functions->C_GetMechanismInfo(slotID,
1250 type,
1251 pInfo);
1252 nssdbg_finish_time(FUNC_C_GETMECHANISMINFO8, start);
1253 log_rv(rv);
1254 return rv;
1255}
1256
1257CK_RV
1258NSSDBGC_InitToken(
1259 CK_SLOT_ID slotID,
1260 CK_CHAR_PTR pPin,
1261 CK_ULONG ulPinLen,
1262 CK_CHAR_PTR pLabel)
1263{
1264 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1265
1266 PR_LOG(modlog, 1, ("C_InitToken"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_InitToken"
); } } while (0)
;
1267 PR_LOG(modlog, 3, (fmt_slotID, slotID))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_slotID
, slotID); } } while (0)
;
1268 PR_LOG(modlog, 3, (fmt_pPin, pPin))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPin
, pPin); } } while (0)
;
1269 PR_LOG(modlog, 3, (fmt_ulPinLen, ulPinLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulPinLen
, ulPinLen); } } while (0)
;
1270 PR_LOG(modlog, 3, (" pLabel = 0x%p", pLabel))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pLabel = 0x%p"
, pLabel); } } while (0)
;
1271 nssdbg_start_time(FUNC_C_INITTOKEN9, &start);
1272 rv = module_functions->C_InitToken(slotID,
1273 pPin,
1274 ulPinLen,
1275 pLabel);
1276 nssdbg_finish_time(FUNC_C_INITTOKEN9, start);
1277 log_rv(rv);
1278 return rv;
1279}
1280
1281CK_RV
1282NSSDBGC_InitPIN(
1283 CK_SESSION_HANDLE hSession,
1284 CK_CHAR_PTR pPin,
1285 CK_ULONG ulPinLen)
1286{
1287 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1288
1289 PR_LOG(modlog, 1, ("C_InitPIN"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_InitPIN"
); } } while (0)
;
1290 log_handle(3, fmt_hSession, hSession);
1291 PR_LOG(modlog, 3, (fmt_pPin, pPin))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPin
, pPin); } } while (0)
;
1292 PR_LOG(modlog, 3, (fmt_ulPinLen, ulPinLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulPinLen
, ulPinLen); } } while (0)
;
1293 nssdbg_start_time(FUNC_C_INITPIN10, &start);
1294 rv = module_functions->C_InitPIN(hSession,
1295 pPin,
1296 ulPinLen);
1297 nssdbg_finish_time(FUNC_C_INITPIN10, start);
1298 log_rv(rv);
1299 return rv;
1300}
1301
1302CK_RV
1303NSSDBGC_SetPIN(
1304 CK_SESSION_HANDLE hSession,
1305 CK_CHAR_PTR pOldPin,
1306 CK_ULONG ulOldLen,
1307 CK_CHAR_PTR pNewPin,
1308 CK_ULONG ulNewLen)
1309{
1310 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1311
1312 PR_LOG(modlog, 1, ("C_SetPIN"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_SetPIN"
); } } while (0)
;
1313 log_handle(3, fmt_hSession, hSession);
1314 PR_LOG(modlog, 3, (" pOldPin = 0x%p", pOldPin))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pOldPin = 0x%p"
, pOldPin); } } while (0)
;
1315 PR_LOG(modlog, 3, (" ulOldLen = %d", ulOldLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (" ulOldLen = %d"
, ulOldLen); } } while (0)
;
1316 PR_LOG(modlog, 3, (" pNewPin = 0x%p", pNewPin))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pNewPin = 0x%p"
, pNewPin); } } while (0)
;
1317 PR_LOG(modlog, 3, (" ulNewLen = %d", ulNewLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (" ulNewLen = %d"
, ulNewLen); } } while (0)
;
1318 nssdbg_start_time(FUNC_C_SETPIN11, &start);
1319 rv = module_functions->C_SetPIN(hSession,
1320 pOldPin,
1321 ulOldLen,
1322 pNewPin,
1323 ulNewLen);
1324 nssdbg_finish_time(FUNC_C_SETPIN11, start);
1325 log_rv(rv);
1326 return rv;
1327}
1328
1329static PRUint32 numOpenSessions = 0;
1330static PRUint32 maxOpenSessions = 0;
1331
1332CK_RV
1333NSSDBGC_OpenSession(
1334 CK_SLOT_ID slotID,
1335 CK_FLAGS flags,
1336 CK_VOID_PTR pApplication,
1337 CK_NOTIFY Notify,
1338 CK_SESSION_HANDLE_PTR phSession)
1339{
1340 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1341
1342 PR_ATOMIC_INCREMENT((PRInt32 *)&numOpenSessions)__sync_add_and_fetch((PRInt32 *)&numOpenSessions, 1);
1343 maxOpenSessions = PR_MAX(numOpenSessions, maxOpenSessions)((numOpenSessions)>(maxOpenSessions)?(numOpenSessions):(maxOpenSessions
))
;
1344 PR_LOG(modlog, 1, ("C_OpenSession"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_OpenSession"
); } } while (0)
;
1345 PR_LOG(modlog, 3, (fmt_slotID, slotID))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_slotID
, slotID); } } while (0)
;
1346 PR_LOG(modlog, 3, (fmt_flags, flags))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_flags
, flags); } } while (0)
;
1347 PR_LOG(modlog, 3, (" pApplication = 0x%p", pApplication))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pApplication = 0x%p"
, pApplication); } } while (0)
;
1348 PR_LOG(modlog, 3, (" Notify = 0x%x", Notify))do { if (((modlog)->level >= (3))) { PR_LogPrint (" Notify = 0x%x"
, Notify); } } while (0)
;
1349 PR_LOG(modlog, 3, (" phSession = 0x%p", phSession))do { if (((modlog)->level >= (3))) { PR_LogPrint (" phSession = 0x%p"
, phSession); } } while (0)
;
1350 nssdbg_start_time(FUNC_C_OPENSESSION12, &start);
1351 rv = module_functions->C_OpenSession(slotID,
1352 flags,
1353 pApplication,
1354 Notify,
1355 phSession);
1356 nssdbg_finish_time(FUNC_C_OPENSESSION12, start);
1357 log_handle(4, " *phSession = 0x%x", *phSession);
1358 log_rv(rv);
1359 return rv;
1360}
1361
1362CK_RV
1363NSSDBGC_CloseSession(
1364 CK_SESSION_HANDLE hSession)
1365{
1366 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1367
1368 PR_ATOMIC_DECREMENT((PRInt32 *)&numOpenSessions)__sync_sub_and_fetch((PRInt32 *)&numOpenSessions, 1);
1369 PR_LOG(modlog, 1, ("C_CloseSession"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_CloseSession"
); } } while (0)
;
1370 log_handle(3, fmt_hSession, hSession);
1371 nssdbg_start_time(FUNC_C_CLOSESESSION13, &start);
1372 rv = module_functions->C_CloseSession(hSession);
1373 nssdbg_finish_time(FUNC_C_CLOSESESSION13, start);
1374 log_rv(rv);
1375 return rv;
1376}
1377
1378CK_RV
1379NSSDBGC_CloseAllSessions(
1380 CK_SLOT_ID slotID)
1381{
1382 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1383
1384 PR_LOG(modlog, 1, ("C_CloseAllSessions"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_CloseAllSessions"
); } } while (0)
;
1385 PR_LOG(modlog, 3, (fmt_slotID, slotID))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_slotID
, slotID); } } while (0)
;
1386 nssdbg_start_time(FUNC_C_CLOSEALLSESSIONS14, &start);
1387 rv = module_functions->C_CloseAllSessions(slotID);
1388 nssdbg_finish_time(FUNC_C_CLOSEALLSESSIONS14, start);
1389 log_rv(rv);
1390 return rv;
1391}
1392
1393CK_RV
1394NSSDBGC_GetSessionInfo(
1395 CK_SESSION_HANDLE hSession,
1396 CK_SESSION_INFO_PTR pInfo)
1397{
1398 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1399
1400 PR_LOG(modlog, 1, ("C_GetSessionInfo"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GetSessionInfo"
); } } while (0)
;
1401 log_handle(3, fmt_hSession, hSession);
1402 PR_LOG(modlog, 3, (fmt_pInfo, pInfo))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pInfo
, pInfo); } } while (0)
;
1403 nssdbg_start_time(FUNC_C_GETSESSIONINFO15, &start);
1404 rv = module_functions->C_GetSessionInfo(hSession,
1405 pInfo);
1406 nssdbg_finish_time(FUNC_C_GETSESSIONINFO15, start);
1407 if (rv == CKR_OK0x00000000UL) {
1408 PR_LOG(modlog, 4, (fmt_slotID, pInfo->slotID))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_slotID
, pInfo->slotID); } } while (0)
;
1409 log_state(pInfo->state);
1410 PR_LOG(modlog, 4, (" flags = %s %s", pInfo->flags & CKF_RW_SESSION ? "CKF_RW_SESSION" : "", pInfo->flags & CKF_SERIAL_SESSION ? "CKF_SERIAL_SESSION" : ""))do { if (((modlog)->level >= (4))) { PR_LogPrint (" flags = %s %s"
, pInfo->flags & 0x00000002UL ? "CKF_RW_SESSION" : "",
pInfo->flags & 0x00000004UL ? "CKF_SERIAL_SESSION" : ""
); } } while (0)
;
1411 PR_LOG(modlog, 4, (" deviceError = 0x%x", pInfo->ulDeviceError))do { if (((modlog)->level >= (4))) { PR_LogPrint (" deviceError = 0x%x"
, pInfo->ulDeviceError); } } while (0)
;
1412 }
1413 log_rv(rv);
1414 return rv;
1415}
1416
1417CK_RV
1418NSSDBGC_GetOperationState(
1419 CK_SESSION_HANDLE hSession,
1420 CK_BYTE_PTR pOperationState,
1421 CK_ULONG_PTR pulOperationStateLen)
1422{
1423 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1424
1425 PR_LOG(modlog, 1, ("C_GetOperationState"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GetOperationState"
); } } while (0)
;
1426 log_handle(3, fmt_hSession, hSession);
1427 PR_LOG(modlog, 3, (fmt_pOperationState, pOperationState))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pOperationState
, pOperationState); } } while (0)
;
1428 PR_LOG(modlog, 3, (" pulOperationStateLen = 0x%p", pulOperationStateLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pulOperationStateLen = 0x%p"
, pulOperationStateLen); } } while (0)
;
1429 nssdbg_start_time(FUNC_C_GETOPERATIONSTATE16, &start);
1430 rv = module_functions->C_GetOperationState(hSession,
1431 pOperationState,
1432 pulOperationStateLen);
1433 nssdbg_finish_time(FUNC_C_GETOPERATIONSTATE16, start);
1434 PR_LOG(modlog, 4, (" *pulOperationStateLen = 0x%x", *pulOperationStateLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (" *pulOperationStateLen = 0x%x"
, *pulOperationStateLen); } } while (0)
;
1435 log_rv(rv);
1436 return rv;
1437}
1438
1439CK_RV
1440NSSDBGC_SetOperationState(
1441 CK_SESSION_HANDLE hSession,
1442 CK_BYTE_PTR pOperationState,
1443 CK_ULONG ulOperationStateLen,
1444 CK_OBJECT_HANDLE hEncryptionKey,
1445 CK_OBJECT_HANDLE hAuthenticationKey)
1446{
1447 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1448
1449 PR_LOG(modlog, 1, ("C_SetOperationState"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_SetOperationState"
); } } while (0)
;
1450 log_handle(3, fmt_hSession, hSession);
1451 PR_LOG(modlog, 3, (fmt_pOperationState, pOperationState))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pOperationState
, pOperationState); } } while (0)
;
1452 PR_LOG(modlog, 3, (" ulOperationStateLen = %d", ulOperationStateLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (" ulOperationStateLen = %d"
, ulOperationStateLen); } } while (0)
;
1453 log_handle(3, " hEncryptionKey = 0x%x", hEncryptionKey);
1454 log_handle(3, " hAuthenticationKey = 0x%x", hAuthenticationKey);
1455 nssdbg_start_time(FUNC_C_SETOPERATIONSTATE17, &start);
1456 rv = module_functions->C_SetOperationState(hSession,
1457 pOperationState,
1458 ulOperationStateLen,
1459 hEncryptionKey,
1460 hAuthenticationKey);
1461 nssdbg_finish_time(FUNC_C_SETOPERATIONSTATE17, start);
1462 log_rv(rv);
1463 return rv;
1464}
1465
1466CK_RV
1467NSSDBGC_Login(
1468 CK_SESSION_HANDLE hSession,
1469 CK_USER_TYPE userType,
1470 CK_CHAR_PTR pPin,
1471 CK_ULONG ulPinLen)
1472{
1473 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1474
1475 PR_LOG(modlog, 1, ("C_Login"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_Login"
); } } while (0)
;
1476 log_handle(3, fmt_hSession, hSession);
1477 PR_LOG(modlog, 3, (" userType = 0x%x", userType))do { if (((modlog)->level >= (3))) { PR_LogPrint (" userType = 0x%x"
, userType); } } while (0)
;
1478 PR_LOG(modlog, 3, (fmt_pPin, pPin))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPin
, pPin); } } while (0)
;
1479 PR_LOG(modlog, 3, (fmt_ulPinLen, ulPinLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulPinLen
, ulPinLen); } } while (0)
;
1480 nssdbg_start_time(FUNC_C_LOGIN18, &start);
1481 rv = module_functions->C_Login(hSession,
1482 userType,
1483 pPin,
1484 ulPinLen);
1485 nssdbg_finish_time(FUNC_C_LOGIN18, start);
1486 log_rv(rv);
1487 return rv;
1488}
1489
1490CK_RV
1491NSSDBGC_Logout(
1492 CK_SESSION_HANDLE hSession)
1493{
1494 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1495
1496 PR_LOG(modlog, 1, ("C_Logout"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_Logout"
); } } while (0)
;
1497 log_handle(3, fmt_hSession, hSession);
1498 nssdbg_start_time(FUNC_C_LOGOUT19, &start);
1499 rv = module_functions->C_Logout(hSession);
1500 nssdbg_finish_time(FUNC_C_LOGOUT19, start);
1501 log_rv(rv);
1502 return rv;
1503}
1504
1505CK_RV
1506NSSDBGC_CreateObject(
1507 CK_SESSION_HANDLE hSession,
1508 CK_ATTRIBUTE_PTR pTemplate,
1509 CK_ULONG ulCount,
1510 CK_OBJECT_HANDLE_PTR phObject)
1511{
1512 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1513
1514 PR_LOG(modlog, 1, ("C_CreateObject"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_CreateObject"
); } } while (0)
;
1515 log_handle(3, fmt_hSession, hSession);
1516 PR_LOG(modlog, 3, (fmt_pTemplate, pTemplate))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pTemplate
, pTemplate); } } while (0)
;
1517 PR_LOG(modlog, 3, (fmt_ulCount, ulCount))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulCount
, ulCount); } } while (0)
;
1518 PR_LOG(modlog, 3, (fmt_phObject, phObject))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_phObject
, phObject); } } while (0)
;
1519 print_template(pTemplate, ulCount);
1520 nssdbg_start_time(FUNC_C_CREATEOBJECT20, &start);
1521 rv = module_functions->C_CreateObject(hSession,
1522 pTemplate,
1523 ulCount,
1524 phObject);
1525 nssdbg_finish_time(FUNC_C_CREATEOBJECT20, start);
1526 log_handle(4, " *phObject = 0x%x", *phObject);
1527 log_rv(rv);
1528 return rv;
1529}
1530
1531CK_RV
1532NSSDBGC_CopyObject(
1533 CK_SESSION_HANDLE hSession,
1534 CK_OBJECT_HANDLE hObject,
1535 CK_ATTRIBUTE_PTR pTemplate,
1536 CK_ULONG ulCount,
1537 CK_OBJECT_HANDLE_PTR phNewObject)
1538{
1539 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1540
1541 PR_LOG(modlog, 1, ("C_CopyObject"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_CopyObject"
); } } while (0)
;
1542 log_handle(3, fmt_hSession, hSession);
1543 log_handle(3, fmt_hObject, hObject);
1544 PR_LOG(modlog, 3, (fmt_pTemplate, pTemplate))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pTemplate
, pTemplate); } } while (0)
;
1545 PR_LOG(modlog, 3, (fmt_ulCount, ulCount))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulCount
, ulCount); } } while (0)
;
1546 PR_LOG(modlog, 3, (" phNewObject = 0x%p", phNewObject))do { if (((modlog)->level >= (3))) { PR_LogPrint (" phNewObject = 0x%p"
, phNewObject); } } while (0)
;
1547 print_template(pTemplate, ulCount);
1548 nssdbg_start_time(FUNC_C_COPYOBJECT21, &start);
1549 rv = module_functions->C_CopyObject(hSession,
1550 hObject,
1551 pTemplate,
1552 ulCount,
1553 phNewObject);
1554 nssdbg_finish_time(FUNC_C_COPYOBJECT21, start);
1555 log_handle(4, " *phNewObject = 0x%x", *phNewObject);
1556 log_rv(rv);
1557 return rv;
1558}
1559
1560CK_RV
1561NSSDBGC_DestroyObject(
1562 CK_SESSION_HANDLE hSession,
1563 CK_OBJECT_HANDLE hObject)
1564{
1565 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1566
1567 PR_LOG(modlog, 1, ("C_DestroyObject"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_DestroyObject"
); } } while (0)
;
1568 log_handle(3, fmt_hSession, hSession);
1569 log_handle(3, fmt_hObject, hObject);
1570 nssdbg_start_time(FUNC_C_DESTROYOBJECT22, &start);
1571 rv = module_functions->C_DestroyObject(hSession,
1572 hObject);
1573 nssdbg_finish_time(FUNC_C_DESTROYOBJECT22, start);
1574 log_rv(rv);
1575 return rv;
1576}
1577
1578CK_RV
1579NSSDBGC_GetObjectSize(
1580 CK_SESSION_HANDLE hSession,
1581 CK_OBJECT_HANDLE hObject,
1582 CK_ULONG_PTR pulSize)
1583{
1584 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1585
1586 PR_LOG(modlog, 1, ("C_GetObjectSize"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GetObjectSize"
); } } while (0)
;
1587 log_handle(3, fmt_hSession, hSession);
1588 log_handle(3, fmt_hObject, hObject);
1589 PR_LOG(modlog, 3, (" pulSize = 0x%p", pulSize))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pulSize = 0x%p"
, pulSize); } } while (0)
;
1590 nssdbg_start_time(FUNC_C_GETOBJECTSIZE23, &start);
1591 rv = module_functions->C_GetObjectSize(hSession,
1592 hObject,
1593 pulSize);
1594 nssdbg_finish_time(FUNC_C_GETOBJECTSIZE23, start);
1595 PR_LOG(modlog, 4, (" *pulSize = 0x%x", *pulSize))do { if (((modlog)->level >= (4))) { PR_LogPrint (" *pulSize = 0x%x"
, *pulSize); } } while (0)
;
1596 log_rv(rv);
1597 return rv;
1598}
1599
1600CK_RV
1601NSSDBGC_GetAttributeValue(
1602 CK_SESSION_HANDLE hSession,
1603 CK_OBJECT_HANDLE hObject,
1604 CK_ATTRIBUTE_PTR pTemplate,
1605 CK_ULONG ulCount)
1606{
1607 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1608
1609 PR_LOG(modlog, 1, ("C_GetAttributeValue"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GetAttributeValue"
); } } while (0)
;
1610 log_handle(3, fmt_hSession, hSession);
1611 log_handle(3, fmt_hObject, hObject);
1612 PR_LOG(modlog, 3, (fmt_pTemplate, pTemplate))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pTemplate
, pTemplate); } } while (0)
;
1613 PR_LOG(modlog, 3, (fmt_ulCount, ulCount))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulCount
, ulCount); } } while (0)
;
1614 nssdbg_start_time(FUNC_C_GETATTRIBUTEVALUE24, &start);
1615 rv = module_functions->C_GetAttributeValue(hSession,
1616 hObject,
1617 pTemplate,
1618 ulCount);
1619 nssdbg_finish_time(FUNC_C_GETATTRIBUTEVALUE24, start);
1620 print_template(pTemplate, ulCount);
1621 log_rv(rv);
1622 return rv;
1623}
1624
1625CK_RV
1626NSSDBGC_SetAttributeValue(
1627 CK_SESSION_HANDLE hSession,
1628 CK_OBJECT_HANDLE hObject,
1629 CK_ATTRIBUTE_PTR pTemplate,
1630 CK_ULONG ulCount)
1631{
1632 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1633
1634 PR_LOG(modlog, 1, ("C_SetAttributeValue"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_SetAttributeValue"
); } } while (0)
;
1635 log_handle(3, fmt_hSession, hSession);
1636 log_handle(3, fmt_hObject, hObject);
1637 PR_LOG(modlog, 3, (fmt_pTemplate, pTemplate))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pTemplate
, pTemplate); } } while (0)
;
1638 PR_LOG(modlog, 3, (fmt_ulCount, ulCount))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulCount
, ulCount); } } while (0)
;
1639 print_template(pTemplate, ulCount);
1640 nssdbg_start_time(FUNC_C_SETATTRIBUTEVALUE25, &start);
1641 rv = module_functions->C_SetAttributeValue(hSession,
1642 hObject,
1643 pTemplate,
1644 ulCount);
1645 nssdbg_finish_time(FUNC_C_SETATTRIBUTEVALUE25, start);
1646 log_rv(rv);
1647 return rv;
1648}
1649
1650CK_RV
1651NSSDBGC_FindObjectsInit(
1652 CK_SESSION_HANDLE hSession,
1653 CK_ATTRIBUTE_PTR pTemplate,
1654 CK_ULONG ulCount)
1655{
1656 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1657
1658 PR_LOG(modlog, 1, ("C_FindObjectsInit"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_FindObjectsInit"
); } } while (0)
;
1659 log_handle(3, fmt_hSession, hSession);
1660 PR_LOG(modlog, 3, (fmt_pTemplate, pTemplate))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pTemplate
, pTemplate); } } while (0)
;
1661 PR_LOG(modlog, 3, (fmt_ulCount, ulCount))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulCount
, ulCount); } } while (0)
;
1662 print_template(pTemplate, ulCount);
1663 nssdbg_start_time(FUNC_C_FINDOBJECTSINIT26, &start);
1664 rv = module_functions->C_FindObjectsInit(hSession,
1665 pTemplate,
1666 ulCount);
1667 nssdbg_finish_time(FUNC_C_FINDOBJECTSINIT26, start);
1668 log_rv(rv);
1669 return rv;
1670}
1671
1672CK_RV
1673NSSDBGC_FindObjects(
1674 CK_SESSION_HANDLE hSession,
1675 CK_OBJECT_HANDLE_PTR phObject,
1676 CK_ULONG ulMaxObjectCount,
1677 CK_ULONG_PTR pulObjectCount)
1678{
1679 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1680 CK_ULONG i;
1681
1682 PR_LOG(modlog, 1, ("C_FindObjects"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_FindObjects"
); } } while (0)
;
1683 log_handle(3, fmt_hSession, hSession);
1684 PR_LOG(modlog, 3, (fmt_phObject, phObject))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_phObject
, phObject); } } while (0)
;
1685 PR_LOG(modlog, 3, (" ulMaxObjectCount = %d", ulMaxObjectCount))do { if (((modlog)->level >= (3))) { PR_LogPrint (" ulMaxObjectCount = %d"
, ulMaxObjectCount); } } while (0)
;
1686 PR_LOG(modlog, 3, (" pulObjectCount = 0x%p", pulObjectCount))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pulObjectCount = 0x%p"
, pulObjectCount); } } while (0)
;
1687 nssdbg_start_time(FUNC_C_FINDOBJECTS27, &start);
1688 rv = module_functions->C_FindObjects(hSession,
1689 phObject,
1690 ulMaxObjectCount,
1691 pulObjectCount);
1692 nssdbg_finish_time(FUNC_C_FINDOBJECTS27, start);
1693 PR_LOG(modlog, 4, (" *pulObjectCount = 0x%x", *pulObjectCount))do { if (((modlog)->level >= (4))) { PR_LogPrint (" *pulObjectCount = 0x%x"
, *pulObjectCount); } } while (0)
;
1694 for (i = 0; i < *pulObjectCount; i++) {
1695 PR_LOG(modlog, 4, (" phObject[%d] = 0x%x%s", i, phObject[i], phObject[i] ? "" : fmt_invalid_handle))do { if (((modlog)->level >= (4))) { PR_LogPrint (" phObject[%d] = 0x%x%s"
, i, phObject[i], phObject[i] ? "" : fmt_invalid_handle); } }
while (0)
;
1696 }
1697 log_rv(rv);
1698 return rv;
1699}
1700
1701CK_RV
1702NSSDBGC_FindObjectsFinal(
1703 CK_SESSION_HANDLE hSession)
1704{
1705 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1706
1707 PR_LOG(modlog, 1, ("C_FindObjectsFinal"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_FindObjectsFinal"
); } } while (0)
;
1708 log_handle(3, fmt_hSession, hSession);
1709 nssdbg_start_time(FUNC_C_FINDOBJECTSFINAL28, &start);
1710 rv = module_functions->C_FindObjectsFinal(hSession);
1711 nssdbg_finish_time(FUNC_C_FINDOBJECTSFINAL28, start);
1712 log_rv(rv);
1713 return rv;
1714}
1715
1716CK_RV
1717NSSDBGC_EncryptInit(
1718 CK_SESSION_HANDLE hSession,
1719 CK_MECHANISM_PTR pMechanism,
1720 CK_OBJECT_HANDLE hKey)
1721{
1722 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1723
1724 PR_LOG(modlog, 1, ("C_EncryptInit"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_EncryptInit"
); } } while (0)
;
1725 log_handle(3, fmt_hSession, hSession);
1726 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pMechanism
, pMechanism); } } while (0)
;
1727 log_handle(3, fmt_hKey, hKey);
1728 print_mechanism(pMechanism);
1729 nssdbg_start_time(FUNC_C_ENCRYPTINIT29, &start);
1730 rv = module_functions->C_EncryptInit(hSession,
1731 pMechanism,
1732 hKey);
1733 nssdbg_finish_time(FUNC_C_ENCRYPTINIT29, start);
1734 log_rv(rv);
1735 return rv;
1736}
1737
1738CK_RV
1739NSSDBGC_Encrypt(
1740 CK_SESSION_HANDLE hSession,
1741 CK_BYTE_PTR pData,
1742 CK_ULONG ulDataLen,
1743 CK_BYTE_PTR pEncryptedData,
1744 CK_ULONG_PTR pulEncryptedDataLen)
1745{
1746 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1747
1748 PR_LOG(modlog, 1, ("C_Encrypt"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_Encrypt"
); } } while (0)
;
1749 log_handle(3, fmt_hSession, hSession);
1750 PR_LOG(modlog, 3, (fmt_pData, pData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pData
, pData); } } while (0)
;
1751 PR_LOG(modlog, 3, (fmt_ulDataLen, ulDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulDataLen
, ulDataLen); } } while (0)
;
1752 PR_LOG(modlog, 3, (fmt_pEncryptedData, pEncryptedData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pEncryptedData
, pEncryptedData); } } while (0)
;
1753 PR_LOG(modlog, 3, (" pulEncryptedDataLen = 0x%p", pulEncryptedDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pulEncryptedDataLen = 0x%p"
, pulEncryptedDataLen); } } while (0)
;
1754 nssdbg_start_time(FUNC_C_ENCRYPT30, &start);
1755 rv = module_functions->C_Encrypt(hSession,
1756 pData,
1757 ulDataLen,
1758 pEncryptedData,
1759 pulEncryptedDataLen);
1760 nssdbg_finish_time(FUNC_C_ENCRYPT30, start);
1761 PR_LOG(modlog, 4, (" *pulEncryptedDataLen = 0x%x", *pulEncryptedDataLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (" *pulEncryptedDataLen = 0x%x"
, *pulEncryptedDataLen); } } while (0)
;
1762 log_rv(rv);
1763 return rv;
1764}
1765
1766CK_RV
1767NSSDBGC_EncryptUpdate(
1768 CK_SESSION_HANDLE hSession,
1769 CK_BYTE_PTR pPart,
1770 CK_ULONG ulPartLen,
1771 CK_BYTE_PTR pEncryptedPart,
1772 CK_ULONG_PTR pulEncryptedPartLen)
1773{
1774 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1775
1776 PR_LOG(modlog, 1, ("C_EncryptUpdate"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_EncryptUpdate"
); } } while (0)
;
1777 log_handle(3, fmt_hSession, hSession);
1778 PR_LOG(modlog, 3, (fmt_pPart, pPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPart
, pPart); } } while (0)
;
1779 PR_LOG(modlog, 3, (fmt_ulPartLen, ulPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulPartLen
, ulPartLen); } } while (0)
;
1780 PR_LOG(modlog, 3, (fmt_pEncryptedPart, pEncryptedPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pEncryptedPart
, pEncryptedPart); } } while (0)
;
1781 PR_LOG(modlog, 3, (fmt_pulEncryptedPartLen, pulEncryptedPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulEncryptedPartLen
, pulEncryptedPartLen); } } while (0)
;
1782 nssdbg_start_time(FUNC_C_ENCRYPTUPDATE31, &start);
1783 rv = module_functions->C_EncryptUpdate(hSession,
1784 pPart,
1785 ulPartLen,
1786 pEncryptedPart,
1787 pulEncryptedPartLen);
1788 nssdbg_finish_time(FUNC_C_ENCRYPTUPDATE31, start);
1789 PR_LOG(modlog, 4, (fmt_spulEncryptedPartLen, *pulEncryptedPartLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_spulEncryptedPartLen
, *pulEncryptedPartLen); } } while (0)
;
1790 log_rv(rv);
1791 return rv;
1792}
1793
1794CK_RV
1795NSSDBGC_EncryptFinal(
1796 CK_SESSION_HANDLE hSession,
1797 CK_BYTE_PTR pLastEncryptedPart,
1798 CK_ULONG_PTR pulLastEncryptedPartLen)
1799{
1800 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1801
1802 PR_LOG(modlog, 1, ("C_EncryptFinal"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_EncryptFinal"
); } } while (0)
;
1803 log_handle(3, fmt_hSession, hSession);
1804 PR_LOG(modlog, 3, (" pLastEncryptedPart = 0x%p", pLastEncryptedPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pLastEncryptedPart = 0x%p"
, pLastEncryptedPart); } } while (0)
;
1805 PR_LOG(modlog, 3, (" pulLastEncryptedPartLen = 0x%p", pulLastEncryptedPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pulLastEncryptedPartLen = 0x%p"
, pulLastEncryptedPartLen); } } while (0)
;
1806 nssdbg_start_time(FUNC_C_ENCRYPTFINAL32, &start);
1807 rv = module_functions->C_EncryptFinal(hSession,
1808 pLastEncryptedPart,
1809 pulLastEncryptedPartLen);
1810 nssdbg_finish_time(FUNC_C_ENCRYPTFINAL32, start);
1811 PR_LOG(modlog, 4, (" *pulLastEncryptedPartLen = 0x%x", *pulLastEncryptedPartLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (" *pulLastEncryptedPartLen = 0x%x"
, *pulLastEncryptedPartLen); } } while (0)
;
1812 log_rv(rv);
1813 return rv;
1814}
1815
1816CK_RV
1817NSSDBGC_DecryptInit(
1818 CK_SESSION_HANDLE hSession,
1819 CK_MECHANISM_PTR pMechanism,
1820 CK_OBJECT_HANDLE hKey)
1821{
1822 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1823
1824 PR_LOG(modlog, 1, ("C_DecryptInit"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_DecryptInit"
); } } while (0)
;
1825 log_handle(3, fmt_hSession, hSession);
1826 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pMechanism
, pMechanism); } } while (0)
;
1827 log_handle(3, fmt_hKey, hKey);
1828 print_mechanism(pMechanism);
1829 nssdbg_start_time(FUNC_C_DECRYPTINIT33, &start);
1830 rv = module_functions->C_DecryptInit(hSession,
1831 pMechanism,
1832 hKey);
1833 nssdbg_finish_time(FUNC_C_DECRYPTINIT33, start);
1834 log_rv(rv);
1835 return rv;
1836}
1837
1838CK_RV
1839NSSDBGC_Decrypt(
1840 CK_SESSION_HANDLE hSession,
1841 CK_BYTE_PTR pEncryptedData,
1842 CK_ULONG ulEncryptedDataLen,
1843 CK_BYTE_PTR pData,
1844 CK_ULONG_PTR pulDataLen)
1845{
1846 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1847
1848 PR_LOG(modlog, 1, ("C_Decrypt"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_Decrypt"
); } } while (0)
;
1849 log_handle(3, fmt_hSession, hSession);
1850 PR_LOG(modlog, 3, (fmt_pEncryptedData, pEncryptedData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pEncryptedData
, pEncryptedData); } } while (0)
;
1851 PR_LOG(modlog, 3, (" ulEncryptedDataLen = %d", ulEncryptedDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (" ulEncryptedDataLen = %d"
, ulEncryptedDataLen); } } while (0)
;
1852 PR_LOG(modlog, 3, (fmt_pData, pData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pData
, pData); } } while (0)
;
1853 PR_LOG(modlog, 3, (fmt_pulDataLen, pulDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulDataLen
, pulDataLen); } } while (0)
;
1854 nssdbg_start_time(FUNC_C_DECRYPT34, &start);
1855 rv = module_functions->C_Decrypt(hSession,
1856 pEncryptedData,
1857 ulEncryptedDataLen,
1858 pData,
1859 pulDataLen);
1860 nssdbg_finish_time(FUNC_C_DECRYPT34, start);
1861 PR_LOG(modlog, 4, (fmt_spulDataLen, *pulDataLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_spulDataLen
, *pulDataLen); } } while (0)
;
1862 log_rv(rv);
1863 return rv;
1864}
1865
1866CK_RV
1867NSSDBGC_DecryptUpdate(
1868 CK_SESSION_HANDLE hSession,
1869 CK_BYTE_PTR pEncryptedPart,
1870 CK_ULONG ulEncryptedPartLen,
1871 CK_BYTE_PTR pPart,
1872 CK_ULONG_PTR pulPartLen)
1873{
1874 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1875
1876 PR_LOG(modlog, 1, ("C_DecryptUpdate"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_DecryptUpdate"
); } } while (0)
;
1877 log_handle(3, fmt_hSession, hSession);
1878 PR_LOG(modlog, 3, (fmt_pEncryptedPart, pEncryptedPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pEncryptedPart
, pEncryptedPart); } } while (0)
;
1879 PR_LOG(modlog, 3, (fmt_ulEncryptedPartLen, ulEncryptedPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulEncryptedPartLen
, ulEncryptedPartLen); } } while (0)
;
1880 PR_LOG(modlog, 3, (fmt_pPart, pPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPart
, pPart); } } while (0)
;
1881 PR_LOG(modlog, 3, (fmt_pulPartLen, pulPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulPartLen
, pulPartLen); } } while (0)
;
1882 nssdbg_start_time(FUNC_C_DECRYPTUPDATE35, &start);
1883 rv = module_functions->C_DecryptUpdate(hSession,
1884 pEncryptedPart,
1885 ulEncryptedPartLen,
1886 pPart,
1887 pulPartLen);
1888 nssdbg_finish_time(FUNC_C_DECRYPTUPDATE35, start);
1889 PR_LOG(modlog, 4, (fmt_spulPartLen, *pulPartLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_spulPartLen
, *pulPartLen); } } while (0)
;
1890 log_rv(rv);
1891 return rv;
1892}
1893
1894CK_RV
1895NSSDBGC_DecryptFinal(
1896 CK_SESSION_HANDLE hSession,
1897 CK_BYTE_PTR pLastPart,
1898 CK_ULONG_PTR pulLastPartLen)
1899{
1900 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1901
1902 PR_LOG(modlog, 1, ("C_DecryptFinal"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_DecryptFinal"
); } } while (0)
;
1903 log_handle(3, fmt_hSession, hSession);
1904 PR_LOG(modlog, 3, (" pLastPart = 0x%p", pLastPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pLastPart = 0x%p"
, pLastPart); } } while (0)
;
1905 PR_LOG(modlog, 3, (" pulLastPartLen = 0x%p", pulLastPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pulLastPartLen = 0x%p"
, pulLastPartLen); } } while (0)
;
1906 nssdbg_start_time(FUNC_C_DECRYPTFINAL36, &start);
1907 rv = module_functions->C_DecryptFinal(hSession,
1908 pLastPart,
1909 pulLastPartLen);
1910 nssdbg_finish_time(FUNC_C_DECRYPTFINAL36, start);
1911 PR_LOG(modlog, 4, (" *pulLastPartLen = 0x%x", *pulLastPartLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (" *pulLastPartLen = 0x%x"
, *pulLastPartLen); } } while (0)
;
1912 log_rv(rv);
1913 return rv;
1914}
1915
1916CK_RV
1917NSSDBGC_DigestInit(
1918 CK_SESSION_HANDLE hSession,
1919 CK_MECHANISM_PTR pMechanism)
1920{
1921 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1922
1923 PR_LOG(modlog, 1, ("C_DigestInit"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_DigestInit"
); } } while (0)
;
1924 log_handle(3, fmt_hSession, hSession);
1925 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pMechanism
, pMechanism); } } while (0)
;
1926 print_mechanism(pMechanism);
1927 nssdbg_start_time(FUNC_C_DIGESTINIT37, &start);
1928 rv = module_functions->C_DigestInit(hSession,
1929 pMechanism);
1930 nssdbg_finish_time(FUNC_C_DIGESTINIT37, start);
1931 log_rv(rv);
1932 return rv;
1933}
1934
1935CK_RV
1936NSSDBGC_Digest(
1937 CK_SESSION_HANDLE hSession,
1938 CK_BYTE_PTR pData,
1939 CK_ULONG ulDataLen,
1940 CK_BYTE_PTR pDigest,
1941 CK_ULONG_PTR pulDigestLen)
1942{
1943 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1944
1945 PR_LOG(modlog, 1, ("C_Digest"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_Digest"
); } } while (0)
;
1946 log_handle(3, fmt_hSession, hSession);
1947 PR_LOG(modlog, 3, (fmt_pData, pData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pData
, pData); } } while (0)
;
1948 PR_LOG(modlog, 3, (fmt_ulDataLen, ulDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulDataLen
, ulDataLen); } } while (0)
;
1949 PR_LOG(modlog, 3, (fmt_pDigest, pDigest))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pDigest
, pDigest); } } while (0)
;
1950 PR_LOG(modlog, 3, (fmt_pulDigestLen, pulDigestLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulDigestLen
, pulDigestLen); } } while (0)
;
1951 nssdbg_start_time(FUNC_C_DIGEST38, &start);
1952 rv = module_functions->C_Digest(hSession,
1953 pData,
1954 ulDataLen,
1955 pDigest,
1956 pulDigestLen);
1957 nssdbg_finish_time(FUNC_C_DIGEST38, start);
1958 PR_LOG(modlog, 4, (fmt_spulDigestLen, *pulDigestLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_spulDigestLen
, *pulDigestLen); } } while (0)
;
1959 log_rv(rv);
1960 return rv;
1961}
1962
1963CK_RV
1964NSSDBGC_DigestUpdate(
1965 CK_SESSION_HANDLE hSession,
1966 CK_BYTE_PTR pPart,
1967 CK_ULONG ulPartLen)
1968{
1969 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1970
1971 PR_LOG(modlog, 1, ("C_DigestUpdate"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_DigestUpdate"
); } } while (0)
;
1972 log_handle(3, fmt_hSession, hSession);
1973 PR_LOG(modlog, 3, (fmt_pPart, pPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPart
, pPart); } } while (0)
;
1974 PR_LOG(modlog, 3, (fmt_ulPartLen, ulPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulPartLen
, ulPartLen); } } while (0)
;
1975 nssdbg_start_time(FUNC_C_DIGESTUPDATE39, &start);
1976 rv = module_functions->C_DigestUpdate(hSession,
1977 pPart,
1978 ulPartLen);
1979 nssdbg_finish_time(FUNC_C_DIGESTUPDATE39, start);
1980 log_rv(rv);
1981 return rv;
1982}
1983
1984CK_RV
1985NSSDBGC_DigestKey(
1986 CK_SESSION_HANDLE hSession,
1987 CK_OBJECT_HANDLE hKey)
1988{
1989 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
1990
1991 PR_LOG(modlog, 1, ("C_DigestKey"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_DigestKey"
); } } while (0)
;
1992 log_handle(3, fmt_hSession, hSession);
1993 nssdbg_start_time(FUNC_C_DIGESTKEY40, &start);
1994 rv = module_functions->C_DigestKey(hSession,
1995 hKey);
1996 nssdbg_finish_time(FUNC_C_DIGESTKEY40, start);
1997 log_rv(rv);
1998 return rv;
1999}
2000
2001CK_RV
2002NSSDBGC_DigestFinal(
2003 CK_SESSION_HANDLE hSession,
2004 CK_BYTE_PTR pDigest,
2005 CK_ULONG_PTR pulDigestLen)
2006{
2007 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2008
2009 PR_LOG(modlog, 1, ("C_DigestFinal"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_DigestFinal"
); } } while (0)
;
2010 log_handle(3, fmt_hSession, hSession);
2011 PR_LOG(modlog, 3, (fmt_pDigest, pDigest))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pDigest
, pDigest); } } while (0)
;
2012 PR_LOG(modlog, 3, (fmt_pulDigestLen, pulDigestLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulDigestLen
, pulDigestLen); } } while (0)
;
2013 nssdbg_start_time(FUNC_C_DIGESTFINAL41, &start);
2014 rv = module_functions->C_DigestFinal(hSession,
2015 pDigest,
2016 pulDigestLen);
2017 nssdbg_finish_time(FUNC_C_DIGESTFINAL41, start);
2018 PR_LOG(modlog, 4, (fmt_spulDigestLen, *pulDigestLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_spulDigestLen
, *pulDigestLen); } } while (0)
;
2019 log_rv(rv);
2020 return rv;
2021}
2022
2023CK_RV
2024NSSDBGC_SignInit(
2025 CK_SESSION_HANDLE hSession,
2026 CK_MECHANISM_PTR pMechanism,
2027 CK_OBJECT_HANDLE hKey)
2028{
2029 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2030
2031 PR_LOG(modlog, 1, ("C_SignInit"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_SignInit"
); } } while (0)
;
2032 log_handle(3, fmt_hSession, hSession);
2033 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pMechanism
, pMechanism); } } while (0)
;
2034 log_handle(3, fmt_hKey, hKey);
2035 print_mechanism(pMechanism);
2036 nssdbg_start_time(FUNC_C_SIGNINIT42, &start);
2037 rv = module_functions->C_SignInit(hSession,
2038 pMechanism,
2039 hKey);
2040 nssdbg_finish_time(FUNC_C_SIGNINIT42, start);
2041 log_rv(rv);
2042 return rv;
2043}
2044
2045CK_RV
2046NSSDBGC_Sign(
2047 CK_SESSION_HANDLE hSession,
2048 CK_BYTE_PTR pData,
2049 CK_ULONG ulDataLen,
2050 CK_BYTE_PTR pSignature,
2051 CK_ULONG_PTR pulSignatureLen)
2052{
2053 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2054
2055 PR_LOG(modlog, 1, ("C_Sign"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_Sign"
); } } while (0)
;
2056 log_handle(3, fmt_hSession, hSession);
2057 PR_LOG(modlog, 3, (fmt_pData, pData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pData
, pData); } } while (0)
;
2058 PR_LOG(modlog, 3, (fmt_ulDataLen, ulDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulDataLen
, ulDataLen); } } while (0)
;
2059 PR_LOG(modlog, 3, (fmt_pSignature, pSignature))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pSignature
, pSignature); } } while (0)
;
2060 PR_LOG(modlog, 3, (fmt_pulSignatureLen, pulSignatureLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulSignatureLen
, pulSignatureLen); } } while (0)
;
2061 nssdbg_start_time(FUNC_C_SIGN43, &start);
2062 rv = module_functions->C_Sign(hSession,
2063 pData,
2064 ulDataLen,
2065 pSignature,
2066 pulSignatureLen);
2067 nssdbg_finish_time(FUNC_C_SIGN43, start);
2068 PR_LOG(modlog, 4, (fmt_spulSignatureLen, *pulSignatureLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_spulSignatureLen
, *pulSignatureLen); } } while (0)
;
2069 log_rv(rv);
2070 return rv;
2071}
2072
2073CK_RV
2074NSSDBGC_SignUpdate(
2075 CK_SESSION_HANDLE hSession,
2076 CK_BYTE_PTR pPart,
2077 CK_ULONG ulPartLen)
2078{
2079 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2080
2081 PR_LOG(modlog, 1, ("C_SignUpdate"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_SignUpdate"
); } } while (0)
;
2082 log_handle(3, fmt_hSession, hSession);
2083 PR_LOG(modlog, 3, (fmt_pPart, pPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPart
, pPart); } } while (0)
;
2084 PR_LOG(modlog, 3, (fmt_ulPartLen, ulPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulPartLen
, ulPartLen); } } while (0)
;
2085 nssdbg_start_time(FUNC_C_SIGNUPDATE44, &start);
2086 rv = module_functions->C_SignUpdate(hSession,
2087 pPart,
2088 ulPartLen);
2089 nssdbg_finish_time(FUNC_C_SIGNUPDATE44, start);
2090 log_rv(rv);
2091 return rv;
2092}
2093
2094CK_RV
2095NSSDBGC_SignFinal(
2096 CK_SESSION_HANDLE hSession,
2097 CK_BYTE_PTR pSignature,
2098 CK_ULONG_PTR pulSignatureLen)
2099{
2100 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2101
2102 PR_LOG(modlog, 1, ("C_SignFinal"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_SignFinal"
); } } while (0)
;
2103 log_handle(3, fmt_hSession, hSession);
2104 PR_LOG(modlog, 3, (fmt_pSignature, pSignature))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pSignature
, pSignature); } } while (0)
;
2105 PR_LOG(modlog, 3, (fmt_pulSignatureLen, pulSignatureLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulSignatureLen
, pulSignatureLen); } } while (0)
;
2106 nssdbg_start_time(FUNC_C_SIGNFINAL45, &start);
2107 rv = module_functions->C_SignFinal(hSession,
2108 pSignature,
2109 pulSignatureLen);
2110 nssdbg_finish_time(FUNC_C_SIGNFINAL45, start);
2111 PR_LOG(modlog, 4, (fmt_spulSignatureLen, *pulSignatureLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_spulSignatureLen
, *pulSignatureLen); } } while (0)
;
2112 log_rv(rv);
2113 return rv;
2114}
2115
2116CK_RV
2117NSSDBGC_SignRecoverInit(
2118 CK_SESSION_HANDLE hSession,
2119 CK_MECHANISM_PTR pMechanism,
2120 CK_OBJECT_HANDLE hKey)
2121{
2122 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2123
2124 PR_LOG(modlog, 1, ("C_SignRecoverInit"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_SignRecoverInit"
); } } while (0)
;
2125 log_handle(3, fmt_hSession, hSession);
2126 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pMechanism
, pMechanism); } } while (0)
;
2127 log_handle(3, fmt_hKey, hKey);
2128 print_mechanism(pMechanism);
2129 nssdbg_start_time(FUNC_C_SIGNRECOVERINIT46, &start);
2130 rv = module_functions->C_SignRecoverInit(hSession,
2131 pMechanism,
2132 hKey);
2133 nssdbg_finish_time(FUNC_C_SIGNRECOVERINIT46, start);
2134 log_rv(rv);
2135 return rv;
2136}
2137
2138CK_RV
2139NSSDBGC_SignRecover(
2140 CK_SESSION_HANDLE hSession,
2141 CK_BYTE_PTR pData,
2142 CK_ULONG ulDataLen,
2143 CK_BYTE_PTR pSignature,
2144 CK_ULONG_PTR pulSignatureLen)
2145{
2146 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2147
2148 PR_LOG(modlog, 1, ("C_SignRecover"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_SignRecover"
); } } while (0)
;
2149 log_handle(3, fmt_hSession, hSession);
2150 PR_LOG(modlog, 3, (fmt_pData, pData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pData
, pData); } } while (0)
;
2151 PR_LOG(modlog, 3, (fmt_ulDataLen, ulDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulDataLen
, ulDataLen); } } while (0)
;
2152 PR_LOG(modlog, 3, (fmt_pSignature, pSignature))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pSignature
, pSignature); } } while (0)
;
2153 PR_LOG(modlog, 3, (fmt_pulSignatureLen, pulSignatureLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulSignatureLen
, pulSignatureLen); } } while (0)
;
2154 nssdbg_start_time(FUNC_C_SIGNRECOVER47, &start);
2155 rv = module_functions->C_SignRecover(hSession,
2156 pData,
2157 ulDataLen,
2158 pSignature,
2159 pulSignatureLen);
2160 nssdbg_finish_time(FUNC_C_SIGNRECOVER47, start);
2161 PR_LOG(modlog, 4, (fmt_spulSignatureLen, *pulSignatureLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_spulSignatureLen
, *pulSignatureLen); } } while (0)
;
2162 log_rv(rv);
2163 return rv;
2164}
2165
2166CK_RV
2167NSSDBGC_VerifyInit(
2168 CK_SESSION_HANDLE hSession,
2169 CK_MECHANISM_PTR pMechanism,
2170 CK_OBJECT_HANDLE hKey)
2171{
2172 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2173
2174 PR_LOG(modlog, 1, ("C_VerifyInit"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_VerifyInit"
); } } while (0)
;
2175 log_handle(3, fmt_hSession, hSession);
2176 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pMechanism
, pMechanism); } } while (0)
;
2177 log_handle(3, fmt_hKey, hKey);
2178 print_mechanism(pMechanism);
2179 nssdbg_start_time(FUNC_C_VERIFYINIT48, &start);
2180 rv = module_functions->C_VerifyInit(hSession,
2181 pMechanism,
2182 hKey);
2183 nssdbg_finish_time(FUNC_C_VERIFYINIT48, start);
2184 log_rv(rv);
2185 return rv;
2186}
2187
2188CK_RV
2189NSSDBGC_Verify(
2190 CK_SESSION_HANDLE hSession,
2191 CK_BYTE_PTR pData,
2192 CK_ULONG ulDataLen,
2193 CK_BYTE_PTR pSignature,
2194 CK_ULONG ulSignatureLen)
2195{
2196 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2197
2198 PR_LOG(modlog, 1, ("C_Verify"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_Verify"
); } } while (0)
;
2199 log_handle(3, fmt_hSession, hSession);
2200 PR_LOG(modlog, 3, (fmt_pData, pData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pData
, pData); } } while (0)
;
2201 PR_LOG(modlog, 3, (fmt_ulDataLen, ulDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulDataLen
, ulDataLen); } } while (0)
;
2202 PR_LOG(modlog, 3, (fmt_pSignature, pSignature))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pSignature
, pSignature); } } while (0)
;
2203 PR_LOG(modlog, 3, (fmt_ulSignatureLen, ulSignatureLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulSignatureLen
, ulSignatureLen); } } while (0)
;
2204 nssdbg_start_time(FUNC_C_VERIFY49, &start);
2205 rv = module_functions->C_Verify(hSession,
2206 pData,
2207 ulDataLen,
2208 pSignature,
2209 ulSignatureLen);
2210 nssdbg_finish_time(FUNC_C_VERIFY49, start);
2211 log_rv(rv);
2212 return rv;
2213}
2214
2215CK_RV
2216NSSDBGC_VerifyUpdate(
2217 CK_SESSION_HANDLE hSession,
2218 CK_BYTE_PTR pPart,
2219 CK_ULONG ulPartLen)
2220{
2221 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2222
2223 PR_LOG(modlog, 1, ("C_VerifyUpdate"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_VerifyUpdate"
); } } while (0)
;
2224 log_handle(3, fmt_hSession, hSession);
2225 PR_LOG(modlog, 3, (fmt_pPart, pPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPart
, pPart); } } while (0)
;
2226 PR_LOG(modlog, 3, (fmt_ulPartLen, ulPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulPartLen
, ulPartLen); } } while (0)
;
2227 nssdbg_start_time(FUNC_C_VERIFYUPDATE50, &start);
2228 rv = module_functions->C_VerifyUpdate(hSession,
2229 pPart,
2230 ulPartLen);
2231 nssdbg_finish_time(FUNC_C_VERIFYUPDATE50, start);
2232 log_rv(rv);
2233 return rv;
2234}
2235
2236CK_RV
2237NSSDBGC_VerifyFinal(
2238 CK_SESSION_HANDLE hSession,
2239 CK_BYTE_PTR pSignature,
2240 CK_ULONG ulSignatureLen)
2241{
2242 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2243
2244 PR_LOG(modlog, 1, ("C_VerifyFinal"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_VerifyFinal"
); } } while (0)
;
2245 log_handle(3, fmt_hSession, hSession);
2246 PR_LOG(modlog, 3, (fmt_pSignature, pSignature))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pSignature
, pSignature); } } while (0)
;
2247 PR_LOG(modlog, 3, (fmt_ulSignatureLen, ulSignatureLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulSignatureLen
, ulSignatureLen); } } while (0)
;
2248 nssdbg_start_time(FUNC_C_VERIFYFINAL51, &start);
2249 rv = module_functions->C_VerifyFinal(hSession,
2250 pSignature,
2251 ulSignatureLen);
2252 nssdbg_finish_time(FUNC_C_VERIFYFINAL51, start);
2253 log_rv(rv);
2254 return rv;
2255}
2256
2257CK_RV
2258NSSDBGC_VerifyRecoverInit(
2259 CK_SESSION_HANDLE hSession,
2260 CK_MECHANISM_PTR pMechanism,
2261 CK_OBJECT_HANDLE hKey)
2262{
2263 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2264
2265 PR_LOG(modlog, 1, ("C_VerifyRecoverInit"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_VerifyRecoverInit"
); } } while (0)
;
2266 log_handle(3, fmt_hSession, hSession);
2267 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pMechanism
, pMechanism); } } while (0)
;
2268 log_handle(3, fmt_hKey, hKey);
2269 print_mechanism(pMechanism);
2270 nssdbg_start_time(FUNC_C_VERIFYRECOVERINIT52, &start);
2271 rv = module_functions->C_VerifyRecoverInit(hSession,
2272 pMechanism,
2273 hKey);
2274 nssdbg_finish_time(FUNC_C_VERIFYRECOVERINIT52, start);
2275 log_rv(rv);
2276 return rv;
2277}
2278
2279CK_RV
2280NSSDBGC_VerifyRecover(
2281 CK_SESSION_HANDLE hSession,
2282 CK_BYTE_PTR pSignature,
2283 CK_ULONG ulSignatureLen,
2284 CK_BYTE_PTR pData,
2285 CK_ULONG_PTR pulDataLen)
2286{
2287 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2288
2289 PR_LOG(modlog, 1, ("C_VerifyRecover"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_VerifyRecover"
); } } while (0)
;
2290 log_handle(3, fmt_hSession, hSession);
2291 PR_LOG(modlog, 3, (fmt_pSignature, pSignature))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pSignature
, pSignature); } } while (0)
;
2292 PR_LOG(modlog, 3, (fmt_ulSignatureLen, ulSignatureLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulSignatureLen
, ulSignatureLen); } } while (0)
;
2293 PR_LOG(modlog, 3, (fmt_pData, pData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pData
, pData); } } while (0)
;
2294 PR_LOG(modlog, 3, (fmt_pulDataLen, pulDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulDataLen
, pulDataLen); } } while (0)
;
2295 nssdbg_start_time(FUNC_C_VERIFYRECOVER53, &start);
2296 rv = module_functions->C_VerifyRecover(hSession,
2297 pSignature,
2298 ulSignatureLen,
2299 pData,
2300 pulDataLen);
2301 nssdbg_finish_time(FUNC_C_VERIFYRECOVER53, start);
2302 PR_LOG(modlog, 4, (fmt_spulDataLen, *pulDataLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_spulDataLen
, *pulDataLen); } } while (0)
;
2303 log_rv(rv);
2304 return rv;
2305}
2306
2307CK_RV
2308NSSDBGC_DigestEncryptUpdate(
2309 CK_SESSION_HANDLE hSession,
2310 CK_BYTE_PTR pPart,
2311 CK_ULONG ulPartLen,
2312 CK_BYTE_PTR pEncryptedPart,
2313 CK_ULONG_PTR pulEncryptedPartLen)
2314{
2315 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2316
2317 PR_LOG(modlog, 1, ("C_DigestEncryptUpdate"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_DigestEncryptUpdate"
); } } while (0)
;
2318 log_handle(3, fmt_hSession, hSession);
2319 PR_LOG(modlog, 3, (fmt_pPart, pPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPart
, pPart); } } while (0)
;
2320 PR_LOG(modlog, 3, (fmt_ulPartLen, ulPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulPartLen
, ulPartLen); } } while (0)
;
2321 PR_LOG(modlog, 3, (fmt_pEncryptedPart, pEncryptedPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pEncryptedPart
, pEncryptedPart); } } while (0)
;
2322 PR_LOG(modlog, 3, (fmt_pulEncryptedPartLen, pulEncryptedPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulEncryptedPartLen
, pulEncryptedPartLen); } } while (0)
;
2323 nssdbg_start_time(FUNC_C_DIGESTENCRYPTUPDATE54, &start);
2324 rv = module_functions->C_DigestEncryptUpdate(hSession,
2325 pPart,
2326 ulPartLen,
2327 pEncryptedPart,
2328 pulEncryptedPartLen);
2329 nssdbg_finish_time(FUNC_C_DIGESTENCRYPTUPDATE54, start);
2330 PR_LOG(modlog, 4, (fmt_spulEncryptedPartLen, *pulEncryptedPartLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_spulEncryptedPartLen
, *pulEncryptedPartLen); } } while (0)
;
2331 log_rv(rv);
2332 return rv;
2333}
2334
2335CK_RV
2336NSSDBGC_DecryptDigestUpdate(
2337 CK_SESSION_HANDLE hSession,
2338 CK_BYTE_PTR pEncryptedPart,
2339 CK_ULONG ulEncryptedPartLen,
2340 CK_BYTE_PTR pPart,
2341 CK_ULONG_PTR pulPartLen)
2342{
2343 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2344
2345 PR_LOG(modlog, 1, ("C_DecryptDigestUpdate"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_DecryptDigestUpdate"
); } } while (0)
;
2346 log_handle(3, fmt_hSession, hSession);
2347 PR_LOG(modlog, 3, (fmt_pEncryptedPart, pEncryptedPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pEncryptedPart
, pEncryptedPart); } } while (0)
;
2348 PR_LOG(modlog, 3, (fmt_ulEncryptedPartLen, ulEncryptedPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulEncryptedPartLen
, ulEncryptedPartLen); } } while (0)
;
2349 PR_LOG(modlog, 3, (fmt_pPart, pPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPart
, pPart); } } while (0)
;
2350 PR_LOG(modlog, 3, (fmt_pulPartLen, pulPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulPartLen
, pulPartLen); } } while (0)
;
2351 nssdbg_start_time(FUNC_C_DECRYPTDIGESTUPDATE55, &start);
2352 rv = module_functions->C_DecryptDigestUpdate(hSession,
2353 pEncryptedPart,
2354 ulEncryptedPartLen,
2355 pPart,
2356 pulPartLen);
2357 nssdbg_finish_time(FUNC_C_DECRYPTDIGESTUPDATE55, start);
2358 PR_LOG(modlog, 4, (fmt_spulPartLen, *pulPartLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_spulPartLen
, *pulPartLen); } } while (0)
;
2359 log_rv(rv);
2360 return rv;
2361}
2362
2363CK_RV
2364NSSDBGC_SignEncryptUpdate(
2365 CK_SESSION_HANDLE hSession,
2366 CK_BYTE_PTR pPart,
2367 CK_ULONG ulPartLen,
2368 CK_BYTE_PTR pEncryptedPart,
2369 CK_ULONG_PTR pulEncryptedPartLen)
2370{
2371 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2372
2373 PR_LOG(modlog, 1, ("C_SignEncryptUpdate"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_SignEncryptUpdate"
); } } while (0)
;
2374 log_handle(3, fmt_hSession, hSession);
2375 PR_LOG(modlog, 3, (fmt_pPart, pPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPart
, pPart); } } while (0)
;
2376 PR_LOG(modlog, 3, (fmt_ulPartLen, ulPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulPartLen
, ulPartLen); } } while (0)
;
2377 PR_LOG(modlog, 3, (fmt_pEncryptedPart, pEncryptedPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pEncryptedPart
, pEncryptedPart); } } while (0)
;
2378 PR_LOG(modlog, 3, (fmt_pulEncryptedPartLen, pulEncryptedPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulEncryptedPartLen
, pulEncryptedPartLen); } } while (0)
;
2379 nssdbg_start_time(FUNC_C_SIGNENCRYPTUPDATE56, &start);
2380 rv = module_functions->C_SignEncryptUpdate(hSession,
2381 pPart,
2382 ulPartLen,
2383 pEncryptedPart,
2384 pulEncryptedPartLen);
2385 nssdbg_finish_time(FUNC_C_SIGNENCRYPTUPDATE56, start);
2386 PR_LOG(modlog, 4, (fmt_spulEncryptedPartLen, *pulEncryptedPartLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_spulEncryptedPartLen
, *pulEncryptedPartLen); } } while (0)
;
2387 log_rv(rv);
2388 return rv;
2389}
2390
2391CK_RV
2392NSSDBGC_DecryptVerifyUpdate(
2393 CK_SESSION_HANDLE hSession,
2394 CK_BYTE_PTR pEncryptedPart,
2395 CK_ULONG ulEncryptedPartLen,
2396 CK_BYTE_PTR pPart,
2397 CK_ULONG_PTR pulPartLen)
2398{
2399 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2400
2401 PR_LOG(modlog, 1, ("C_DecryptVerifyUpdate"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_DecryptVerifyUpdate"
); } } while (0)
;
2402 log_handle(3, fmt_hSession, hSession);
2403 PR_LOG(modlog, 3, (fmt_pEncryptedPart, pEncryptedPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pEncryptedPart
, pEncryptedPart); } } while (0)
;
2404 PR_LOG(modlog, 3, (fmt_ulEncryptedPartLen, ulEncryptedPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulEncryptedPartLen
, ulEncryptedPartLen); } } while (0)
;
2405 PR_LOG(modlog, 3, (fmt_pPart, pPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPart
, pPart); } } while (0)
;
2406 PR_LOG(modlog, 3, (fmt_pulPartLen, pulPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulPartLen
, pulPartLen); } } while (0)
;
2407 nssdbg_start_time(FUNC_C_DECRYPTVERIFYUPDATE57, &start);
2408 rv = module_functions->C_DecryptVerifyUpdate(hSession,
2409 pEncryptedPart,
2410 ulEncryptedPartLen,
2411 pPart,
2412 pulPartLen);
2413 nssdbg_finish_time(FUNC_C_DECRYPTVERIFYUPDATE57, start);
2414 PR_LOG(modlog, 4, (fmt_spulPartLen, *pulPartLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (fmt_spulPartLen
, *pulPartLen); } } while (0)
;
2415 log_rv(rv);
2416 return rv;
2417}
2418
2419CK_RV
2420NSSDBGC_GenerateKey(
2421 CK_SESSION_HANDLE hSession,
2422 CK_MECHANISM_PTR pMechanism,
2423 CK_ATTRIBUTE_PTR pTemplate,
2424 CK_ULONG ulCount,
2425 CK_OBJECT_HANDLE_PTR phKey)
2426{
2427 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2428
2429 PR_LOG(modlog, 1, ("C_GenerateKey"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GenerateKey"
); } } while (0)
;
2430 log_handle(3, fmt_hSession, hSession);
2431 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pMechanism
, pMechanism); } } while (0)
;
2432 PR_LOG(modlog, 3, (fmt_pTemplate, pTemplate))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pTemplate
, pTemplate); } } while (0)
;
2433 PR_LOG(modlog, 3, (fmt_ulCount, ulCount))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulCount
, ulCount); } } while (0)
;
2434 PR_LOG(modlog, 3, (fmt_phKey, phKey))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_phKey
, phKey); } } while (0)
;
2435 print_template(pTemplate, ulCount);
2436 print_mechanism(pMechanism);
2437 nssdbg_start_time(FUNC_C_GENERATEKEY58, &start);
2438 rv = module_functions->C_GenerateKey(hSession,
2439 pMechanism,
2440 pTemplate,
2441 ulCount,
2442 phKey);
2443 nssdbg_finish_time(FUNC_C_GENERATEKEY58, start);
2444 log_handle(4, fmt_sphKey, *phKey);
2445 log_rv(rv);
2446 return rv;
2447}
2448
2449CK_RV
2450NSSDBGC_GenerateKeyPair(
2451 CK_SESSION_HANDLE hSession,
2452 CK_MECHANISM_PTR pMechanism,
2453 CK_ATTRIBUTE_PTR pPublicKeyTemplate,
2454 CK_ULONG ulPublicKeyAttributeCount,
2455 CK_ATTRIBUTE_PTR pPrivateKeyTemplate,
2456 CK_ULONG ulPrivateKeyAttributeCount,
2457 CK_OBJECT_HANDLE_PTR phPublicKey,
2458 CK_OBJECT_HANDLE_PTR phPrivateKey)
2459{
2460 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2461
2462 PR_LOG(modlog, 1, ("C_GenerateKeyPair"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GenerateKeyPair"
); } } while (0)
;
2463 log_handle(3, fmt_hSession, hSession);
2464 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pMechanism
, pMechanism); } } while (0)
;
2465 PR_LOG(modlog, 3, (" pPublicKeyTemplate = 0x%p", pPublicKeyTemplate))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pPublicKeyTemplate = 0x%p"
, pPublicKeyTemplate); } } while (0)
;
2466 PR_LOG(modlog, 3, (" ulPublicKeyAttributeCount = %d", ulPublicKeyAttributeCount))do { if (((modlog)->level >= (3))) { PR_LogPrint (" ulPublicKeyAttributeCount = %d"
, ulPublicKeyAttributeCount); } } while (0)
;
2467 PR_LOG(modlog, 3, (" pPrivateKeyTemplate = 0x%p", pPrivateKeyTemplate))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pPrivateKeyTemplate = 0x%p"
, pPrivateKeyTemplate); } } while (0)
;
2468 PR_LOG(modlog, 3, (" ulPrivateKeyAttributeCount = %d", ulPrivateKeyAttributeCount))do { if (((modlog)->level >= (3))) { PR_LogPrint (" ulPrivateKeyAttributeCount = %d"
, ulPrivateKeyAttributeCount); } } while (0)
;
2469 PR_LOG(modlog, 3, (" phPublicKey = 0x%p", phPublicKey))do { if (((modlog)->level >= (3))) { PR_LogPrint (" phPublicKey = 0x%p"
, phPublicKey); } } while (0)
;
2470 print_template(pPublicKeyTemplate, ulPublicKeyAttributeCount);
2471 PR_LOG(modlog, 3, (" phPrivateKey = 0x%p", phPrivateKey))do { if (((modlog)->level >= (3))) { PR_LogPrint (" phPrivateKey = 0x%p"
, phPrivateKey); } } while (0)
;
2472 print_template(pPrivateKeyTemplate, ulPrivateKeyAttributeCount);
2473 print_mechanism(pMechanism);
2474 nssdbg_start_time(FUNC_C_GENERATEKEYPAIR59, &start);
2475 rv = module_functions->C_GenerateKeyPair(hSession,
2476 pMechanism,
2477 pPublicKeyTemplate,
2478 ulPublicKeyAttributeCount,
2479 pPrivateKeyTemplate,
2480 ulPrivateKeyAttributeCount,
2481 phPublicKey,
2482 phPrivateKey);
2483 nssdbg_finish_time(FUNC_C_GENERATEKEYPAIR59, start);
2484 log_handle(4, " *phPublicKey = 0x%x", *phPublicKey);
2485 log_handle(4, " *phPrivateKey = 0x%x", *phPrivateKey);
2486 log_rv(rv);
2487 return rv;
2488}
2489
2490CK_RV
2491NSSDBGC_WrapKey(
2492 CK_SESSION_HANDLE hSession,
2493 CK_MECHANISM_PTR pMechanism,
2494 CK_OBJECT_HANDLE hWrappingKey,
2495 CK_OBJECT_HANDLE hKey,
2496 CK_BYTE_PTR pWrappedKey,
2497 CK_ULONG_PTR pulWrappedKeyLen)
2498{
2499 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2500
2501 PR_LOG(modlog, 1, ("C_WrapKey"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_WrapKey"
); } } while (0)
;
2502 log_handle(3, fmt_hSession, hSession);
2503 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pMechanism
, pMechanism); } } while (0)
;
2504 log_handle(3, " hWrappingKey = 0x%x", hWrappingKey);
2505 log_handle(3, fmt_hKey, hKey);
2506 PR_LOG(modlog, 3, (fmt_pWrappedKey, pWrappedKey))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pWrappedKey
, pWrappedKey); } } while (0)
;
2507 PR_LOG(modlog, 3, (" pulWrappedKeyLen = 0x%p", pulWrappedKeyLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pulWrappedKeyLen = 0x%p"
, pulWrappedKeyLen); } } while (0)
;
2508 print_mechanism(pMechanism);
2509 nssdbg_start_time(FUNC_C_WRAPKEY60, &start);
2510 rv = module_functions->C_WrapKey(hSession,
2511 pMechanism,
2512 hWrappingKey,
2513 hKey,
2514 pWrappedKey,
2515 pulWrappedKeyLen);
2516 nssdbg_finish_time(FUNC_C_WRAPKEY60, start);
2517 PR_LOG(modlog, 4, (" *pulWrappedKeyLen = 0x%x", *pulWrappedKeyLen))do { if (((modlog)->level >= (4))) { PR_LogPrint (" *pulWrappedKeyLen = 0x%x"
, *pulWrappedKeyLen); } } while (0)
;
2518 log_rv(rv);
2519 return rv;
2520}
2521
2522CK_RV
2523NSSDBGC_UnwrapKey(
2524 CK_SESSION_HANDLE hSession,
2525 CK_MECHANISM_PTR pMechanism,
2526 CK_OBJECT_HANDLE hUnwrappingKey,
2527 CK_BYTE_PTR pWrappedKey,
2528 CK_ULONG ulWrappedKeyLen,
2529 CK_ATTRIBUTE_PTR pTemplate,
2530 CK_ULONG ulAttributeCount,
2531 CK_OBJECT_HANDLE_PTR phKey)
2532{
2533 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2534
2535 PR_LOG(modlog, 1, ("C_UnwrapKey"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_UnwrapKey"
); } } while (0)
;
2536 log_handle(3, fmt_hSession, hSession);
2537 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pMechanism
, pMechanism); } } while (0)
;
2538 log_handle(3, " hUnwrappingKey = 0x%x", hUnwrappingKey);
2539 PR_LOG(modlog, 3, (fmt_pWrappedKey, pWrappedKey))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pWrappedKey
, pWrappedKey); } } while (0)
;
2540 PR_LOG(modlog, 3, (" ulWrappedKeyLen = %d", ulWrappedKeyLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (" ulWrappedKeyLen = %d"
, ulWrappedKeyLen); } } while (0)
;
2541 PR_LOG(modlog, 3, (fmt_pTemplate, pTemplate))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pTemplate
, pTemplate); } } while (0)
;
2542 PR_LOG(modlog, 3, (fmt_ulAttributeCount, ulAttributeCount))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulAttributeCount
, ulAttributeCount); } } while (0)
;
2543 PR_LOG(modlog, 3, (fmt_phKey, phKey))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_phKey
, phKey); } } while (0)
;
2544 print_template(pTemplate, ulAttributeCount);
2545 print_mechanism(pMechanism);
2546 nssdbg_start_time(FUNC_C_UNWRAPKEY61, &start);
2547 rv = module_functions->C_UnwrapKey(hSession,
2548 pMechanism,
2549 hUnwrappingKey,
2550 pWrappedKey,
2551 ulWrappedKeyLen,
2552 pTemplate,
2553 ulAttributeCount,
2554 phKey);
2555 nssdbg_finish_time(FUNC_C_UNWRAPKEY61, start);
2556 log_handle(4, fmt_sphKey, *phKey);
2557 log_rv(rv);
2558 return rv;
2559}
2560
2561CK_RV
2562NSSDBGC_DeriveKey(
2563 CK_SESSION_HANDLE hSession,
2564 CK_MECHANISM_PTR pMechanism,
2565 CK_OBJECT_HANDLE hBaseKey,
2566 CK_ATTRIBUTE_PTR pTemplate,
2567 CK_ULONG ulAttributeCount,
2568 CK_OBJECT_HANDLE_PTR phKey)
2569{
2570 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2571
2572 PR_LOG(modlog, 1, ("C_DeriveKey"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_DeriveKey"
); } } while (0)
;
2573 log_handle(3, fmt_hSession, hSession);
2574 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pMechanism
, pMechanism); } } while (0)
;
2575 log_handle(3, " hBaseKey = 0x%x", hBaseKey);
2576 PR_LOG(modlog, 3, (fmt_pTemplate, pTemplate))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pTemplate
, pTemplate); } } while (0)
;
2577 PR_LOG(modlog, 3, (fmt_ulAttributeCount, ulAttributeCount))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulAttributeCount
, ulAttributeCount); } } while (0)
;
2578 PR_LOG(modlog, 3, (fmt_phKey, phKey))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_phKey
, phKey); } } while (0)
;
2579 print_template(pTemplate, ulAttributeCount);
2580 print_mechanism(pMechanism);
2581 nssdbg_start_time(FUNC_C_DERIVEKEY62, &start);
2582 rv = module_functions->C_DeriveKey(hSession,
2583 pMechanism,
2584 hBaseKey,
2585 pTemplate,
2586 ulAttributeCount,
2587 phKey);
2588 nssdbg_finish_time(FUNC_C_DERIVEKEY62, start);
2589 log_handle(4, fmt_sphKey, *phKey);
2590 log_rv(rv);
2591 return rv;
2592}
2593
2594CK_RV
2595NSSDBGC_SeedRandom(
2596 CK_SESSION_HANDLE hSession,
2597 CK_BYTE_PTR pSeed,
2598 CK_ULONG ulSeedLen)
2599{
2600 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2601
2602 PR_LOG(modlog, 1, ("C_SeedRandom"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_SeedRandom"
); } } while (0)
;
2603 log_handle(3, fmt_hSession, hSession);
2604 PR_LOG(modlog, 3, (" pSeed = 0x%p", pSeed))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pSeed = 0x%p"
, pSeed); } } while (0)
;
2605 PR_LOG(modlog, 3, (" ulSeedLen = %d", ulSeedLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (" ulSeedLen = %d"
, ulSeedLen); } } while (0)
;
2606 nssdbg_start_time(FUNC_C_SEEDRANDOM63, &start);
2607 rv = module_functions->C_SeedRandom(hSession,
2608 pSeed,
2609 ulSeedLen);
2610 nssdbg_finish_time(FUNC_C_SEEDRANDOM63, start);
2611 log_rv(rv);
2612 return rv;
2613}
2614
2615CK_RV
2616NSSDBGC_GenerateRandom(
2617 CK_SESSION_HANDLE hSession,
2618 CK_BYTE_PTR RandomData,
2619 CK_ULONG ulRandomLen)
2620{
2621 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2622
2623 PR_LOG(modlog, 1, ("C_GenerateRandom"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GenerateRandom"
); } } while (0)
;
2624 log_handle(3, fmt_hSession, hSession);
2625 PR_LOG(modlog, 3, (" RandomData = 0x%p", RandomData))do { if (((modlog)->level >= (3))) { PR_LogPrint (" RandomData = 0x%p"
, RandomData); } } while (0)
;
2626 PR_LOG(modlog, 3, (" ulRandomLen = %d", ulRandomLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (" ulRandomLen = %d"
, ulRandomLen); } } while (0)
;
2627 nssdbg_start_time(FUNC_C_GENERATERANDOM64, &start);
2628 rv = module_functions->C_GenerateRandom(hSession,
2629 RandomData,
2630 ulRandomLen);
2631 nssdbg_finish_time(FUNC_C_GENERATERANDOM64, start);
2632 log_rv(rv);
2633 return rv;
2634}
2635
2636CK_RV
2637NSSDBGC_GetFunctionStatus(
2638 CK_SESSION_HANDLE hSession)
2639{
2640 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2641
2642 PR_LOG(modlog, 1, ("C_GetFunctionStatus"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GetFunctionStatus"
); } } while (0)
;
2643 log_handle(3, fmt_hSession, hSession);
2644 nssdbg_start_time(FUNC_C_GETFUNCTIONSTATUS65, &start);
2645 rv = module_functions->C_GetFunctionStatus(hSession);
2646 nssdbg_finish_time(FUNC_C_GETFUNCTIONSTATUS65, start);
2647 log_rv(rv);
2648 return rv;
2649}
2650
2651CK_RV
2652NSSDBGC_CancelFunction(
2653 CK_SESSION_HANDLE hSession)
2654{
2655 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2656
2657 PR_LOG(modlog, 1, ("C_CancelFunction"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_CancelFunction"
); } } while (0)
;
2658 log_handle(3, fmt_hSession, hSession);
2659 nssdbg_start_time(FUNC_C_CANCELFUNCTION66, &start);
2660 rv = module_functions->C_CancelFunction(hSession);
2661 nssdbg_finish_time(FUNC_C_CANCELFUNCTION66, start);
2662 log_rv(rv);
2663 return rv;
2664}
2665
2666CK_RV
2667NSSDBGC_WaitForSlotEvent(
2668 CK_FLAGS flags,
2669 CK_SLOT_ID_PTR pSlot,
2670 CK_VOID_PTR pRserved)
2671{
2672 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2673
2674 PR_LOG(modlog, 1, ("C_WaitForSlotEvent"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_WaitForSlotEvent"
); } } while (0)
;
2675 PR_LOG(modlog, 3, (fmt_flags, flags))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_flags
, flags); } } while (0)
;
2676 PR_LOG(modlog, 3, (" pSlot = 0x%p", pSlot))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pSlot = 0x%p"
, pSlot); } } while (0)
;
2677 PR_LOG(modlog, 3, (" pRserved = 0x%p", pRserved))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pRserved = 0x%p"
, pRserved); } } while (0)
;
2678 nssdbg_start_time(FUNC_C_WAITFORSLOTEVENT67, &start);
2679 rv = module_functions->C_WaitForSlotEvent(flags,
2680 pSlot,
2681 pRserved);
2682 nssdbg_finish_time(FUNC_C_WAITFORSLOTEVENT67, start);
2683 log_rv(rv);
2684 return rv;
2685}
2686
2687CK_RV
2688NSSDBGC_GetInterfaceList(CK_INTERFACE_PTR interfaces,
2689 CK_ULONG_PTR pulCount)
2690{
2691 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2692 PR_LOG(modlog, 1, ("C_GetInterfaceList"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GetInterfaceList"
); } } while (0)
;
2693 PR_LOG(modlog, 3, (" interfaces = 0x%p", interfaces))do { if (((modlog)->level >= (3))) { PR_LogPrint (" interfaces = 0x%p"
, interfaces); } } while (0)
;
2694 PR_LOG(modlog, 3, (" pulCount = %d", pulCount))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pulCount = %d"
, pulCount); } } while (0)
;
2695 nssdbg_start_time(FUNC_C_GETINTERFACELIST68, &start);
2696 rv = module_functions->C_GetInterfaceList(interfaces,
2697 pulCount);
2698 nssdbg_finish_time(FUNC_C_GETINTERFACELIST68, start);
2699 log_rv(rv);
2700 return rv;
2701}
2702
2703CK_RV
2704NSSDBGC_GetInterface(CK_UTF8CHAR_PTR pInterfaceName,
2705 CK_VERSION_PTR pVersion,
2706 CK_INTERFACE_PTR_PTR ppInterface,
2707 CK_FLAGS flags)
2708{
2709 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2710 PR_LOG(modlog, 1, ("C_GetInterface"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_GetInterface"
); } } while (0)
;
2711 PR_LOG(modlog, 3, (" pInterfaceName = 0x%p", pInterfaceName))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pInterfaceName = 0x%p"
, pInterfaceName); } } while (0)
;
2712 PR_LOG(modlog, 3, (" pVersion = 0x%p", pVersion))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pVersion = 0x%p"
, pVersion); } } while (0)
;
2713 PR_LOG(modlog, 3, (" ppInterface = 0x%p", ppInterface))do { if (((modlog)->level >= (3))) { PR_LogPrint (" ppInterface = 0x%p"
, ppInterface); } } while (0)
;
2714 PR_LOG(modlog, 3, (fmt_flags, flags))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_flags
, flags); } } while (0)
;
2715 nssdbg_start_time(FUNC_C_GETINTERFACE69, &start);
2716 rv = module_functions->C_GetInterface(pInterfaceName,
2717 pVersion,
2718 ppInterface,
2719 flags);
2720 nssdbg_finish_time(FUNC_C_GETINTERFACE69, start);
2721 log_rv(rv);
2722 return rv;
2723}
2724
2725CK_RV
2726NSSDBGC_LoginUser(CK_SESSION_HANDLE hSession,
2727 CK_USER_TYPE userType,
2728 CK_CHAR_PTR pPin,
2729 CK_ULONG ulPinLen,
2730 CK_UTF8CHAR_PTR pUsername,
2731 CK_ULONG ulUsernameLen)
2732{
2733 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2734 PR_LOG(modlog, 1, ("C_LoginUser"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_LoginUser"
); } } while (0)
;
2735 log_handle(3, fmt_hSession, hSession);
2736 PR_LOG(modlog, 3, (" userType = 0x%x", userType))do { if (((modlog)->level >= (3))) { PR_LogPrint (" userType = 0x%x"
, userType); } } while (0)
;
2737 PR_LOG(modlog, 3, (fmt_pPin, pPin))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPin
, pPin); } } while (0)
;
2738 PR_LOG(modlog, 3, (fmt_ulPinLen, ulPinLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulPinLen
, ulPinLen); } } while (0)
;
2739 PR_LOG(modlog, 3, (" pUsername = 0x%p", pUsername))do { if (((modlog)->level >= (3))) { PR_LogPrint (" pUsername = 0x%p"
, pUsername); } } while (0)
;
2740 PR_LOG(modlog, 3, (" ulUsernameLen = %d", ulUsernameLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (" ulUsernameLen = %d"
, ulUsernameLen); } } while (0)
;
2741 nssdbg_start_time(FUNC_C_LOGINUSER70, &start);
2742 rv = module_functions->C_LoginUser(hSession,
2743 userType,
2744 pPin,
2745 ulPinLen,
2746 pUsername,
2747 ulUsernameLen);
2748 nssdbg_finish_time(FUNC_C_LOGINUSER70, start);
2749 log_rv(rv);
2750 return rv;
2751}
2752
2753CK_RV
2754NSSDBGC_SessionCancel(CK_SESSION_HANDLE hSession,
2755 CK_FLAGS flags)
2756{
2757 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2758 PR_LOG(modlog, 1, ("C_SessionCancel"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_SessionCancel"
); } } while (0)
;
2759 log_handle(3, fmt_hSession, hSession);
2760 PR_LOG(modlog, 3, (fmt_flags, flags))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_flags
, flags); } } while (0)
;
2761 nssdbg_start_time(FUNC_C_SESSIONCANCEL71, &start);
2762 rv = module_functions->C_SessionCancel(hSession,
2763 flags);
2764 nssdbg_finish_time(FUNC_C_SESSIONCANCEL71, start);
2765 log_rv(rv);
2766 return rv;
2767}
2768
2769CK_RV
2770NSSDBGC_MessageEncryptInit(CK_SESSION_HANDLE hSession,
2771 CK_MECHANISM_PTR pMechanism,
2772 CK_OBJECT_HANDLE hKey)
2773{
2774 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2775 PR_LOG(modlog, 1, ("C_MessageEncryptInit"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_MessageEncryptInit"
); } } while (0)
;
2776 log_handle(3, fmt_hSession, hSession);
2777 print_mechanism(pMechanism);
2778 log_handle(3, fmt_hKey, hKey);
2779 nssdbg_start_time(FUNC_C_MESSAGEENCRYPTINIT72, &start);
2780 rv = module_functions->C_MessageEncryptInit(hSession,
2781 pMechanism,
2782 hKey);
2783 nssdbg_finish_time(FUNC_C_MESSAGEENCRYPTINIT72, start);
2784 log_rv(rv);
2785 return rv;
2786}
2787
2788CK_RV
2789NSSDBGC_EncryptMessage(CK_SESSION_HANDLE hSession,
2790 CK_VOID_PTR pParameter,
2791 CK_ULONG ulParameterLen,
2792 CK_BYTE_PTR pAssociatedData,
2793 CK_ULONG ulAssociatedDataLen,
2794 CK_BYTE_PTR pPlaintext,
2795 CK_ULONG ulPlaintextLen,
2796 CK_BYTE_PTR pCiphertext,
2797 CK_ULONG_PTR pulCiphertextLen)
2798{
2799 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2800 PR_LOG(modlog, 1, ("C_EncryptMessage"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_EncryptMessage"
); } } while (0)
;
2801 log_handle(3, fmt_hSession, hSession);
2802 PR_LOG(modlog, 3, (fmt_pParameter, pParameter))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pParameter
, pParameter); } } while (0)
;
2803 PR_LOG(modlog, 3, (fmt_ulParameterLen, ulParameterLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulParameterLen
, ulParameterLen); } } while (0)
;
2804 PR_LOG(modlog, 3, (fmt_pAssociatedData, pAssociatedData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pAssociatedData
, pAssociatedData); } } while (0)
;
2805 PR_LOG(modlog, 3, (fmt_ulAssociatedDataLen, ulAssociatedDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulAssociatedDataLen
, ulAssociatedDataLen); } } while (0)
;
2806 PR_LOG(modlog, 3, (fmt_pPlaintext, pPlaintext))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPlaintext
, pPlaintext); } } while (0)
;
2807 PR_LOG(modlog, 3, (fmt_ulPlaintextLen, ulPlaintextLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulPlaintextLen
, ulPlaintextLen); } } while (0)
;
2808 PR_LOG(modlog, 3, (fmt_pCiphertext, pCiphertext))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pCiphertext
, pCiphertext); } } while (0)
;
2809 PR_LOG(modlog, 3, (fmt_pulCiphertextLen, pulCiphertextLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulCiphertextLen
, pulCiphertextLen); } } while (0)
;
2810 nssdbg_start_time(FUNC_C_ENCRYPTMESSAGE73, &start);
2811 rv = module_functions->C_EncryptMessage(hSession,
2812 pParameter,
2813 ulParameterLen,
2814 pAssociatedData,
2815 ulAssociatedDataLen,
2816 pPlaintext,
2817 ulPlaintextLen,
2818 pCiphertext,
2819 pulCiphertextLen);
2820 nssdbg_finish_time(FUNC_C_ENCRYPTMESSAGE73, start);
2821 log_rv(rv);
2822 return rv;
2823}
2824
2825CK_RV
2826NSSDBGC_EncryptMessageBegin(CK_SESSION_HANDLE hSession,
2827 CK_VOID_PTR pParameter,
2828 CK_ULONG ulParameterLen,
2829 CK_BYTE_PTR pAssociatedData,
2830 CK_ULONG ulAssociatedDataLen)
2831{
2832 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2833 PR_LOG(modlog, 1, ("C_EncryptMessageBegin"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_EncryptMessageBegin"
); } } while (0)
;
2834 log_handle(3, fmt_hSession, hSession);
2835 PR_LOG(modlog, 3, (fmt_pParameter, pParameter))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pParameter
, pParameter); } } while (0)
;
2836 PR_LOG(modlog, 3, (fmt_ulParameterLen, ulParameterLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulParameterLen
, ulParameterLen); } } while (0)
;
2837 PR_LOG(modlog, 3, (fmt_pAssociatedData, pAssociatedData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pAssociatedData
, pAssociatedData); } } while (0)
;
2838 PR_LOG(modlog, 3, (fmt_ulAssociatedDataLen, ulAssociatedDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulAssociatedDataLen
, ulAssociatedDataLen); } } while (0)
;
2839 nssdbg_start_time(FUNC_C_ENCRYPTMESSAGEBEGIN74, &start);
2840 rv = module_functions->C_EncryptMessageBegin(hSession,
2841 pParameter,
2842 ulParameterLen,
2843 pAssociatedData,
2844 ulAssociatedDataLen);
2845 nssdbg_finish_time(FUNC_C_ENCRYPTMESSAGEBEGIN74, start);
2846 log_rv(rv);
2847 return rv;
2848}
2849
2850CK_RV
2851NSSDBGC_EncryptMessageNext(CK_SESSION_HANDLE hSession,
2852 CK_VOID_PTR pParameter,
2853 CK_ULONG ulParameterLen,
2854 CK_BYTE_PTR pPlaintextPart,
2855 CK_ULONG ulPlaintextPartLen,
2856 CK_BYTE_PTR pCiphertextPart,
2857 CK_ULONG_PTR pulCiphertextPartLen,
2858 CK_FLAGS flags)
2859{
2860 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2861 PR_LOG(modlog, 1, ("C_EncryptMessageNext"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_EncryptMessageNext"
); } } while (0)
;
2862 log_handle(3, fmt_hSession, hSession);
2863 PR_LOG(modlog, 3, (fmt_pParameter, pParameter))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pParameter
, pParameter); } } while (0)
;
2864 PR_LOG(modlog, 3, (fmt_ulParameterLen, ulParameterLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulParameterLen
, ulParameterLen); } } while (0)
;
2865 PR_LOG(modlog, 3, (fmt_pPlaintextPart, pPlaintextPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPlaintextPart
, pPlaintextPart); } } while (0)
;
2866 PR_LOG(modlog, 3, (fmt_ulPlaintextPartLen, ulPlaintextPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulPlaintextPartLen
, ulPlaintextPartLen); } } while (0)
;
2867 PR_LOG(modlog, 3, (fmt_pCiphertextPart, pCiphertextPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pCiphertextPart
, pCiphertextPart); } } while (0)
;
2868 PR_LOG(modlog, 3, (fmt_pulCiphertextPartLen, pulCiphertextPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulCiphertextPartLen
, pulCiphertextPartLen); } } while (0)
;
2869 nssdbg_start_time(FUNC_C_ENCRYPTMESSAGENEXT75, &start);
2870 rv = module_functions->C_EncryptMessageNext(hSession,
2871 pParameter,
2872 ulParameterLen,
2873 pPlaintextPart,
2874 ulPlaintextPartLen,
2875 pCiphertextPart,
2876 pulCiphertextPartLen,
2877 flags);
2878 nssdbg_finish_time(FUNC_C_ENCRYPTMESSAGENEXT75, start);
2879 log_rv(rv);
2880 return rv;
2881}
2882
2883CK_RV
2884NSSDBGC_MessageEncryptFinal(CK_SESSION_HANDLE hSession)
2885{
2886 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2887 PR_LOG(modlog, 1, ("C_MessageEncryptFinal"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_MessageEncryptFinal"
); } } while (0)
;
2888 log_handle(3, fmt_hSession, hSession);
2889 nssdbg_start_time(FUNC_C_MESSAGEENCRYPTFINAL76, &start);
2890 rv = module_functions->C_MessageEncryptFinal(hSession);
2891 nssdbg_finish_time(FUNC_C_MESSAGEENCRYPTFINAL76, start);
2892 log_rv(rv);
2893 return rv;
2894}
2895
2896CK_RV
2897NSSDBGC_MessageDecryptInit(CK_SESSION_HANDLE hSession,
2898 CK_MECHANISM_PTR pMechanism,
2899 CK_OBJECT_HANDLE hKey)
2900{
2901 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2902 PR_LOG(modlog, 1, ("C_MessageDecryptInit"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_MessageDecryptInit"
); } } while (0)
;
2903 log_handle(3, fmt_hSession, hSession);
2904 print_mechanism(pMechanism);
2905 log_handle(3, fmt_hKey, hKey);
2906 nssdbg_start_time(FUNC_C_MESSAGEDECRYPTINIT77, &start);
2907 rv = module_functions->C_MessageDecryptInit(hSession,
2908 pMechanism,
2909 hKey);
2910 nssdbg_finish_time(FUNC_C_MESSAGEDECRYPTINIT77, start);
2911 log_rv(rv);
2912 return rv;
2913}
2914
2915CK_RV
2916NSSDBGC_DecryptMessage(CK_SESSION_HANDLE hSession,
2917 CK_VOID_PTR pParameter,
2918 CK_ULONG ulParameterLen,
2919 CK_BYTE_PTR pAssociatedData,
2920 CK_ULONG ulAssociatedDataLen,
2921 CK_BYTE_PTR pCiphertext,
2922 CK_ULONG ulCiphertextLen,
2923 CK_BYTE_PTR pPlaintext,
2924 CK_ULONG_PTR pulPlaintextLen)
2925{
2926 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2927 PR_LOG(modlog, 1, ("C_DecryptMessage"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_DecryptMessage"
); } } while (0)
;
2928 log_handle(3, fmt_hSession, hSession);
2929 PR_LOG(modlog, 3, (fmt_pParameter, pParameter))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pParameter
, pParameter); } } while (0)
;
2930 PR_LOG(modlog, 3, (fmt_ulParameterLen, ulParameterLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulParameterLen
, ulParameterLen); } } while (0)
;
2931 PR_LOG(modlog, 3, (fmt_pAssociatedData, pAssociatedData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pAssociatedData
, pAssociatedData); } } while (0)
;
2932 PR_LOG(modlog, 3, (fmt_ulAssociatedDataLen, ulAssociatedDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulAssociatedDataLen
, ulAssociatedDataLen); } } while (0)
;
2933 PR_LOG(modlog, 3, (fmt_pCiphertext, pCiphertext))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pCiphertext
, pCiphertext); } } while (0)
;
2934 PR_LOG(modlog, 3, (fmt_ulCiphertextLen, ulCiphertextLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulCiphertextLen
, ulCiphertextLen); } } while (0)
;
2935 PR_LOG(modlog, 3, (fmt_pPlaintext, pPlaintext))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPlaintext
, pPlaintext); } } while (0)
;
2936 PR_LOG(modlog, 3, (fmt_pulPlaintextLen, pulPlaintextLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulPlaintextLen
, pulPlaintextLen); } } while (0)
;
2937 nssdbg_start_time(FUNC_C_DECRYPTMESSAGE78, &start);
2938 rv = module_functions->C_DecryptMessage(hSession,
2939 pParameter,
2940 ulParameterLen,
2941 pAssociatedData,
2942 ulAssociatedDataLen,
2943 pCiphertext,
2944 ulCiphertextLen,
2945 pPlaintext,
2946 pulPlaintextLen);
2947 nssdbg_finish_time(FUNC_C_DECRYPTMESSAGE78, start);
2948 log_rv(rv);
2949 return rv;
2950}
2951
2952CK_RV
2953NSSDBGC_DecryptMessageBegin(CK_SESSION_HANDLE hSession,
2954 CK_VOID_PTR pParameter,
2955 CK_ULONG ulParameterLen,
2956 CK_BYTE_PTR pAssociatedData,
2957 CK_ULONG ulAssociatedDataLen)
2958{
2959 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2960 PR_LOG(modlog, 1, ("C_DecryptMessageBegin"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_DecryptMessageBegin"
); } } while (0)
;
2961 log_handle(3, fmt_hSession, hSession);
2962 PR_LOG(modlog, 3, (fmt_pParameter, pParameter))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pParameter
, pParameter); } } while (0)
;
2963 PR_LOG(modlog, 3, (fmt_ulParameterLen, ulParameterLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulParameterLen
, ulParameterLen); } } while (0)
;
2964 PR_LOG(modlog, 3, (fmt_pAssociatedData, pAssociatedData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pAssociatedData
, pAssociatedData); } } while (0)
;
2965 PR_LOG(modlog, 3, (fmt_ulAssociatedDataLen, ulAssociatedDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulAssociatedDataLen
, ulAssociatedDataLen); } } while (0)
;
2966 nssdbg_start_time(FUNC_C_DECRYPTMESSAGEBEGIN79, &start);
2967 rv = module_functions->C_DecryptMessageBegin(hSession,
2968 pParameter,
2969 ulParameterLen,
2970 pAssociatedData,
2971 ulAssociatedDataLen);
2972 nssdbg_finish_time(FUNC_C_DECRYPTMESSAGEBEGIN79, start);
2973 log_rv(rv);
2974 return rv;
2975}
2976
2977CK_RV
2978NSSDBGC_DecryptMessageNext(CK_SESSION_HANDLE hSession,
2979 CK_VOID_PTR pParameter,
2980 CK_ULONG ulParameterLen,
2981 CK_BYTE_PTR pCiphertextPart,
2982 CK_ULONG ulCiphertextPartLen,
2983 CK_BYTE_PTR pPlaintextPart,
2984 CK_ULONG_PTR pulPlaintextPartLen,
2985 CK_FLAGS flags)
2986{
2987 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
2988 PR_LOG(modlog, 1, ("C_DecryptMessageNext"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_DecryptMessageNext"
); } } while (0)
;
2989 log_handle(3, fmt_hSession, hSession);
2990 PR_LOG(modlog, 3, (fmt_pParameter, pParameter))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pParameter
, pParameter); } } while (0)
;
2991 PR_LOG(modlog, 3, (fmt_ulParameterLen, ulParameterLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulParameterLen
, ulParameterLen); } } while (0)
;
2992 PR_LOG(modlog, 3, (fmt_pCiphertextPart, pCiphertextPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pCiphertextPart
, pCiphertextPart); } } while (0)
;
2993 PR_LOG(modlog, 3, (fmt_ulCiphertextPartLen, ulCiphertextPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulCiphertextPartLen
, ulCiphertextPartLen); } } while (0)
;
2994 PR_LOG(modlog, 3, (fmt_pPlaintextPart, pPlaintextPart))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pPlaintextPart
, pPlaintextPart); } } while (0)
;
2995 PR_LOG(modlog, 3, (fmt_pulPlaintextPartLen, pulPlaintextPartLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulPlaintextPartLen
, pulPlaintextPartLen); } } while (0)
;
2996 nssdbg_start_time(FUNC_C_DECRYPTMESSAGENEXT80, &start);
2997 rv = module_functions->C_DecryptMessageNext(hSession,
2998 pParameter,
2999 ulParameterLen,
3000 pCiphertextPart,
3001 ulCiphertextPartLen,
3002 pPlaintextPart,
3003 pulPlaintextPartLen,
3004 flags);
3005 nssdbg_finish_time(FUNC_C_DECRYPTMESSAGENEXT80, start);
3006 log_rv(rv);
3007 return rv;
3008}
3009
3010CK_RV
3011NSSDBGC_MessageDecryptFinal(CK_SESSION_HANDLE hSession)
3012{
3013 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
3014 PR_LOG(modlog, 1, ("C_MessageDecryptFinal"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_MessageDecryptFinal"
); } } while (0)
;
3015 log_handle(3, fmt_hSession, hSession);
3016 nssdbg_start_time(FUNC_C_MESSAGEDECRYPTFINAL81, &start);
3017 rv = module_functions->C_MessageDecryptFinal(hSession);
3018 nssdbg_finish_time(FUNC_C_MESSAGEDECRYPTFINAL81, start);
3019 log_rv(rv);
3020 return rv;
3021}
3022
3023CK_RV
3024NSSDBGC_MessageSignInit(CK_SESSION_HANDLE hSession,
3025 CK_MECHANISM_PTR pMechanism,
3026 CK_OBJECT_HANDLE hKey)
3027{
3028 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
3029 PR_LOG(modlog, 1, ("C_MessageSignInit"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_MessageSignInit"
); } } while (0)
;
3030 log_handle(3, fmt_hSession, hSession);
3031 print_mechanism(pMechanism);
3032 log_handle(3, fmt_hKey, hKey);
3033 nssdbg_start_time(FUNC_C_MESSAGESIGNINIT82, &start);
3034 rv = module_functions->C_MessageSignInit(hSession,
3035 pMechanism,
3036 hKey);
3037 nssdbg_finish_time(FUNC_C_MESSAGESIGNINIT82, start);
3038 log_rv(rv);
3039 return rv;
3040}
3041
3042CK_RV
3043NSSDBGC_SignMessage(CK_SESSION_HANDLE hSession,
3044 CK_VOID_PTR pParameter,
3045 CK_ULONG ulParameterLen,
3046 CK_BYTE_PTR pData,
3047 CK_ULONG ulDataLen,
3048 CK_BYTE_PTR pSignature,
3049 CK_ULONG_PTR pulSignatureLen)
3050{
3051 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
3052 PR_LOG(modlog, 1, ("C_SignMessage"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_SignMessage"
); } } while (0)
;
3053 log_handle(3, fmt_hSession, hSession);
3054 PR_LOG(modlog, 3, (fmt_pParameter, pParameter))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pParameter
, pParameter); } } while (0)
;
3055 PR_LOG(modlog, 3, (fmt_ulParameterLen, ulParameterLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulParameterLen
, ulParameterLen); } } while (0)
;
3056 PR_LOG(modlog, 3, (fmt_pData, pData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pData
, pData); } } while (0)
;
3057 PR_LOG(modlog, 3, (fmt_ulDataLen, ulDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulDataLen
, ulDataLen); } } while (0)
;
3058 PR_LOG(modlog, 3, (fmt_pSignature, pSignature))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pSignature
, pSignature); } } while (0)
;
3059 PR_LOG(modlog, 3, (fmt_pulSignatureLen, pulSignatureLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulSignatureLen
, pulSignatureLen); } } while (0)
;
3060 nssdbg_start_time(FUNC_C_SIGNMESSAGE83, &start);
3061 rv = module_functions->C_SignMessage(hSession,
3062 pParameter,
3063 ulParameterLen,
3064 pData,
3065 ulDataLen,
3066 pSignature,
3067 pulSignatureLen);
3068 nssdbg_finish_time(FUNC_C_SIGNMESSAGE83, start);
3069 log_rv(rv);
3070 return rv;
3071}
3072
3073CK_RV
3074NSSDBGC_SignMessageBegin(CK_SESSION_HANDLE hSession,
3075 CK_VOID_PTR pParameter,
3076 CK_ULONG ulParameterLen)
3077{
3078 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
3079 PR_LOG(modlog, 1, ("C_SignMessageBegin"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_SignMessageBegin"
); } } while (0)
;
3080 log_handle(3, fmt_hSession, hSession);
3081 PR_LOG(modlog, 3, (fmt_pParameter, pParameter))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pParameter
, pParameter); } } while (0)
;
3082 PR_LOG(modlog, 3, (fmt_ulParameterLen, ulParameterLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulParameterLen
, ulParameterLen); } } while (0)
;
3083 nssdbg_start_time(FUNC_C_SIGNMESSAGEBEGIN84, &start);
3084 rv = module_functions->C_SignMessageBegin(hSession,
3085 pParameter,
3086 ulParameterLen);
3087 nssdbg_finish_time(FUNC_C_SIGNMESSAGEBEGIN84, start);
3088 log_rv(rv);
3089 return rv;
3090}
3091
3092CK_RV
3093NSSDBGC_SignMessageNext(CK_SESSION_HANDLE hSession,
3094 CK_VOID_PTR pParameter,
3095 CK_ULONG ulParameterLen,
3096 CK_BYTE_PTR pData,
3097 CK_ULONG ulDataLen,
3098 CK_BYTE_PTR pSignature,
3099 CK_ULONG_PTR pulSignatureLen)
3100{
3101 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
3102 PR_LOG(modlog, 1, ("C_SignMessageNext"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_SignMessageNext"
); } } while (0)
;
3103 log_handle(3, fmt_hSession, hSession);
3104 PR_LOG(modlog, 3, (fmt_pParameter, pParameter))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pParameter
, pParameter); } } while (0)
;
3105 PR_LOG(modlog, 3, (fmt_ulParameterLen, ulParameterLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulParameterLen
, ulParameterLen); } } while (0)
;
3106 PR_LOG(modlog, 3, (fmt_pData, pData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pData
, pData); } } while (0)
;
3107 PR_LOG(modlog, 3, (fmt_ulDataLen, ulDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulDataLen
, ulDataLen); } } while (0)
;
3108 PR_LOG(modlog, 3, (fmt_pSignature, pSignature))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pSignature
, pSignature); } } while (0)
;
3109 PR_LOG(modlog, 3, (fmt_pulSignatureLen, pulSignatureLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pulSignatureLen
, pulSignatureLen); } } while (0)
;
3110 nssdbg_start_time(FUNC_C_SIGNMESSAGENEXT85, &start);
3111 rv = module_functions->C_SignMessageNext(hSession,
3112 pParameter,
3113 ulParameterLen,
3114 pData,
3115 ulDataLen,
3116 pSignature,
3117 pulSignatureLen);
3118 nssdbg_finish_time(FUNC_C_SIGNMESSAGENEXT85, start);
3119 log_rv(rv);
3120 return rv;
3121}
3122
3123CK_RV
3124NSSDBGC_MessageSignFinal(CK_SESSION_HANDLE hSession)
3125{
3126 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
3127 PR_LOG(modlog, 1, ("C_MessageSignFinal"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_MessageSignFinal"
); } } while (0)
;
3128 log_handle(3, fmt_hSession, hSession);
3129 nssdbg_start_time(FUNC_C_MESSAGESIGNFINAL86, &start);
3130 rv = module_functions->C_MessageSignFinal(hSession);
3131 nssdbg_finish_time(FUNC_C_MESSAGESIGNFINAL86, start);
3132 log_rv(rv);
3133 return rv;
3134}
3135
3136CK_RV
3137NSSDBGC_MessageVerifyInit(CK_SESSION_HANDLE hSession,
3138 CK_MECHANISM_PTR pMechanism,
3139 CK_OBJECT_HANDLE hKey)
3140{
3141 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
3142 PR_LOG(modlog, 1, ("C_MessageVerifyInit"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_MessageVerifyInit"
); } } while (0)
;
3143 log_handle(3, fmt_hSession, hSession);
3144 print_mechanism(pMechanism);
3145 log_handle(3, fmt_hKey, hKey);
3146 nssdbg_start_time(FUNC_C_MESSAGEVERIFYINIT87, &start);
3147 rv = module_functions->C_MessageVerifyInit(hSession,
3148 pMechanism,
3149 hKey);
3150 nssdbg_finish_time(FUNC_C_MESSAGEVERIFYINIT87, start);
3151 log_rv(rv);
3152 return rv;
3153}
3154
3155CK_RV
3156NSSDBGC_VerifyMessage(CK_SESSION_HANDLE hSession,
3157 CK_VOID_PTR pParameter,
3158 CK_ULONG ulParameterLen,
3159 CK_BYTE_PTR pData,
3160 CK_ULONG ulDataLen,
3161 CK_BYTE_PTR pSignature,
3162 CK_ULONG ulSignatureLen)
3163{
3164 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
3165 PR_LOG(modlog, 1, ("C_VerifyMessage"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_VerifyMessage"
); } } while (0)
;
3166 log_handle(3, fmt_hSession, hSession);
3167 PR_LOG(modlog, 3, (fmt_pParameter, pParameter))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pParameter
, pParameter); } } while (0)
;
3168 PR_LOG(modlog, 3, (fmt_ulParameterLen, ulParameterLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulParameterLen
, ulParameterLen); } } while (0)
;
3169 PR_LOG(modlog, 3, (fmt_pData, pData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pData
, pData); } } while (0)
;
3170 PR_LOG(modlog, 3, (fmt_ulDataLen, ulDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulDataLen
, ulDataLen); } } while (0)
;
3171 PR_LOG(modlog, 3, (fmt_pSignature, pSignature))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pSignature
, pSignature); } } while (0)
;
3172 PR_LOG(modlog, 3, (fmt_ulSignatureLen, ulSignatureLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulSignatureLen
, ulSignatureLen); } } while (0)
;
3173 nssdbg_start_time(FUNC_C_VERIFYMESSAGE88, &start);
3174 rv = module_functions->C_VerifyMessage(hSession,
3175 pParameter,
3176 ulParameterLen,
3177 pData,
3178 ulDataLen,
3179 pSignature,
3180 ulSignatureLen);
3181 nssdbg_finish_time(FUNC_C_VERIFYMESSAGE88, start);
3182 log_rv(rv);
3183 return rv;
3184}
3185
3186CK_RV
3187NSSDBGC_VerifyMessageBegin(CK_SESSION_HANDLE hSession,
3188 CK_VOID_PTR pParameter,
3189 CK_ULONG ulParameterLen)
3190{
3191 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
3192 PR_LOG(modlog, 1, ("C_VerifyMessageBegin"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_VerifyMessageBegin"
); } } while (0)
;
3193 log_handle(3, fmt_hSession, hSession);
3194 PR_LOG(modlog, 3, (fmt_pParameter, pParameter))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pParameter
, pParameter); } } while (0)
;
3195 PR_LOG(modlog, 3, (fmt_ulParameterLen, ulParameterLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulParameterLen
, ulParameterLen); } } while (0)
;
3196 nssdbg_start_time(FUNC_C_VERIFYMESSAGEBEGIN89, &start);
3197 rv = module_functions->C_VerifyMessageBegin(hSession,
3198 pParameter,
3199 ulParameterLen);
3200 nssdbg_finish_time(FUNC_C_VERIFYMESSAGEBEGIN89, start);
3201 log_rv(rv);
3202 return rv;
3203}
3204
3205CK_RV
3206NSSDBGC_VerifyMessageNext(CK_SESSION_HANDLE hSession,
3207 CK_VOID_PTR pParameter,
3208 CK_ULONG ulParameterLen,
3209 CK_BYTE_PTR pData,
3210 CK_ULONG ulDataLen,
3211 CK_BYTE_PTR pSignature,
3212 CK_ULONG ulSignatureLen)
3213{
3214 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
3215 PR_LOG(modlog, 1, ("C_VerifyMessageNext"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_VerifyMessageNext"
); } } while (0)
;
3216 log_handle(3, fmt_hSession, hSession);
3217 PR_LOG(modlog, 3, (fmt_pParameter, pParameter))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pParameter
, pParameter); } } while (0)
;
3218 PR_LOG(modlog, 3, (fmt_ulParameterLen, ulParameterLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulParameterLen
, ulParameterLen); } } while (0)
;
3219 PR_LOG(modlog, 3, (fmt_pData, pData))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pData
, pData); } } while (0)
;
3220 PR_LOG(modlog, 3, (fmt_ulDataLen, ulDataLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulDataLen
, ulDataLen); } } while (0)
;
3221 PR_LOG(modlog, 3, (fmt_pSignature, pSignature))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_pSignature
, pSignature); } } while (0)
;
3222 PR_LOG(modlog, 3, (fmt_ulSignatureLen, ulSignatureLen))do { if (((modlog)->level >= (3))) { PR_LogPrint (fmt_ulSignatureLen
, ulSignatureLen); } } while (0)
;
3223 nssdbg_start_time(FUNC_C_VERIFYMESSAGENEXT90, &start);
3224 rv = module_functions->C_VerifyMessageNext(hSession,
3225 pParameter,
3226 ulParameterLen,
3227 pData,
3228 ulDataLen,
3229 pSignature,
3230 ulSignatureLen);
3231 nssdbg_finish_time(FUNC_C_VERIFYMESSAGENEXT90, start);
3232 log_rv(rv);
3233 return rv;
3234}
3235
3236CK_RV
3237NSSDBGC_MessageVerifyFinal(CK_SESSION_HANDLE hSession)
3238{
3239 COMMON_DEFINITIONSCK_RV rv; PRIntervalTime start;
3240 PR_LOG(modlog, 1, ("C_MessageVerifyFinal"))do { if (((modlog)->level >= (1))) { PR_LogPrint ("C_MessageVerifyFinal"
); } } while (0)
;
3241 log_handle(3, fmt_hSession, hSession);
3242 nssdbg_start_time(FUNC_C_MESSAGEVERIFYFINAL91, &start);
3243 rv = module_functions->C_MessageVerifyFinal(hSession);
3244 nssdbg_finish_time(FUNC_C_MESSAGEVERIFYFINAL91, start);
3245 log_rv(rv);
3246 return rv;
3247}
3248
3249CK_FUNCTION_LIST_3_0_PTR
3250nss_InsertDeviceLog(
3251 CK_FUNCTION_LIST_3_0_PTR devEPV)
3252{
3253 module_functions = devEPV;
3254 debug_functions.version = devEPV->version;
3255 modlog = PR_NewLogModule("nss_mod_log");
3256 debug_functions.C_Initialize = NSSDBGC_Initialize;
3257 debug_functions.C_Finalize = NSSDBGC_Finalize;
3258 debug_functions.C_GetInfo = NSSDBGC_GetInfo;
3259 debug_functions.C_GetFunctionList = NSSDBGC_GetFunctionList;
3260 debug_functions.C_GetSlotList = NSSDBGC_GetSlotList;
3261 debug_functions.C_GetSlotInfo = NSSDBGC_GetSlotInfo;
3262 debug_functions.C_GetTokenInfo = NSSDBGC_GetTokenInfo;
3263 debug_functions.C_GetMechanismList = NSSDBGC_GetMechanismList;
3264 debug_functions.C_GetMechanismInfo = NSSDBGC_GetMechanismInfo;
3265 debug_functions.C_InitToken = NSSDBGC_InitToken;
3266 debug_functions.C_InitPIN = NSSDBGC_InitPIN;
3267 debug_functions.C_SetPIN = NSSDBGC_SetPIN;
3268 debug_functions.C_OpenSession = NSSDBGC_OpenSession;
3269 debug_functions.C_CloseSession = NSSDBGC_CloseSession;
3270 debug_functions.C_CloseAllSessions = NSSDBGC_CloseAllSessions;
3271 debug_functions.C_GetSessionInfo = NSSDBGC_GetSessionInfo;
3272 debug_functions.C_GetOperationState = NSSDBGC_GetOperationState;
3273 debug_functions.C_SetOperationState = NSSDBGC_SetOperationState;
3274 debug_functions.C_Login = NSSDBGC_Login;
3275 debug_functions.C_Logout = NSSDBGC_Logout;
3276 debug_functions.C_CreateObject = NSSDBGC_CreateObject;
3277 debug_functions.C_CopyObject = NSSDBGC_CopyObject;
3278 debug_functions.C_DestroyObject = NSSDBGC_DestroyObject;
3279 debug_functions.C_GetObjectSize = NSSDBGC_GetObjectSize;
3280 debug_functions.C_GetAttributeValue = NSSDBGC_GetAttributeValue;
3281 debug_functions.C_SetAttributeValue = NSSDBGC_SetAttributeValue;
3282 debug_functions.C_FindObjectsInit = NSSDBGC_FindObjectsInit;
3283 debug_functions.C_FindObjects = NSSDBGC_FindObjects;
3284 debug_functions.C_FindObjectsFinal = NSSDBGC_FindObjectsFinal;
3285 debug_functions.C_EncryptInit = NSSDBGC_EncryptInit;
3286 debug_functions.C_Encrypt = NSSDBGC_Encrypt;
3287 debug_functions.C_EncryptUpdate = NSSDBGC_EncryptUpdate;
3288 debug_functions.C_EncryptFinal = NSSDBGC_EncryptFinal;
3289 debug_functions.C_DecryptInit = NSSDBGC_DecryptInit;
3290 debug_functions.C_Decrypt = NSSDBGC_Decrypt;
3291 debug_functions.C_DecryptUpdate = NSSDBGC_DecryptUpdate;
3292 debug_functions.C_DecryptFinal = NSSDBGC_DecryptFinal;
3293 debug_functions.C_DigestInit = NSSDBGC_DigestInit;
3294 debug_functions.C_Digest = NSSDBGC_Digest;
3295 debug_functions.C_DigestUpdate = NSSDBGC_DigestUpdate;
3296 debug_functions.C_DigestKey = NSSDBGC_DigestKey;
3297 debug_functions.C_DigestFinal = NSSDBGC_DigestFinal;
3298 debug_functions.C_SignInit = NSSDBGC_SignInit;
3299 debug_functions.C_Sign = NSSDBGC_Sign;
3300 debug_functions.C_SignUpdate = NSSDBGC_SignUpdate;
3301 debug_functions.C_SignFinal = NSSDBGC_SignFinal;
3302 debug_functions.C_SignRecoverInit = NSSDBGC_SignRecoverInit;
3303 debug_functions.C_SignRecover = NSSDBGC_SignRecover;
3304 debug_functions.C_VerifyInit = NSSDBGC_VerifyInit;
3305 debug_functions.C_Verify = NSSDBGC_Verify;
3306 debug_functions.C_VerifyUpdate = NSSDBGC_VerifyUpdate;
3307 debug_functions.C_VerifyFinal = NSSDBGC_VerifyFinal;
3308 debug_functions.C_VerifyRecoverInit = NSSDBGC_VerifyRecoverInit;
3309 debug_functions.C_VerifyRecover = NSSDBGC_VerifyRecover;
3310 debug_functions.C_DigestEncryptUpdate = NSSDBGC_DigestEncryptUpdate;
3311 debug_functions.C_DecryptDigestUpdate = NSSDBGC_DecryptDigestUpdate;
3312 debug_functions.C_SignEncryptUpdate = NSSDBGC_SignEncryptUpdate;
3313 debug_functions.C_DecryptVerifyUpdate = NSSDBGC_DecryptVerifyUpdate;
3314 debug_functions.C_GenerateKey = NSSDBGC_GenerateKey;
3315 debug_functions.C_GenerateKeyPair = NSSDBGC_GenerateKeyPair;
3316 debug_functions.C_WrapKey = NSSDBGC_WrapKey;
3317 debug_functions.C_UnwrapKey = NSSDBGC_UnwrapKey;
3318 debug_functions.C_DeriveKey = NSSDBGC_DeriveKey;
3319 debug_functions.C_SeedRandom = NSSDBGC_SeedRandom;
3320 debug_functions.C_GenerateRandom = NSSDBGC_GenerateRandom;
3321 debug_functions.C_GetFunctionStatus = NSSDBGC_GetFunctionStatus;
3322 debug_functions.C_CancelFunction = NSSDBGC_CancelFunction;
3323 debug_functions.C_WaitForSlotEvent = NSSDBGC_WaitForSlotEvent;
3324 debug_functions.C_GetInterfaceList = NSSDBGC_GetInterfaceList;
3325 debug_functions.C_GetInterface = NSSDBGC_GetInterface;
3326 debug_functions.C_LoginUser = NSSDBGC_LoginUser;
3327 debug_functions.C_SessionCancel = NSSDBGC_SessionCancel;
3328 debug_functions.C_MessageEncryptInit = NSSDBGC_MessageEncryptInit;
3329 debug_functions.C_EncryptMessage = NSSDBGC_EncryptMessage;
3330 debug_functions.C_EncryptMessageBegin = NSSDBGC_EncryptMessageBegin;
3331 debug_functions.C_EncryptMessageNext = NSSDBGC_EncryptMessageNext;
3332 debug_functions.C_MessageEncryptFinal = NSSDBGC_MessageEncryptFinal;
3333 debug_functions.C_MessageDecryptInit = NSSDBGC_MessageDecryptInit;
3334 debug_functions.C_DecryptMessage = NSSDBGC_DecryptMessage;
3335 debug_functions.C_DecryptMessageBegin = NSSDBGC_DecryptMessageBegin;
3336 debug_functions.C_DecryptMessageNext = NSSDBGC_DecryptMessageNext;
3337 debug_functions.C_MessageDecryptFinal = NSSDBGC_MessageDecryptFinal;
3338 debug_functions.C_MessageSignInit = NSSDBGC_MessageSignInit;
3339 debug_functions.C_SignMessage = NSSDBGC_SignMessage;
3340 debug_functions.C_SignMessageBegin = NSSDBGC_SignMessageBegin;
3341 debug_functions.C_SignMessageNext = NSSDBGC_SignMessageNext;
3342 debug_functions.C_MessageSignFinal = NSSDBGC_MessageSignFinal;
3343 debug_functions.C_MessageVerifyInit = NSSDBGC_MessageVerifyInit;
3344 debug_functions.C_VerifyMessage = NSSDBGC_VerifyMessage;
3345 debug_functions.C_VerifyMessageBegin = NSSDBGC_VerifyMessageBegin;
3346 debug_functions.C_VerifyMessageNext = NSSDBGC_VerifyMessageNext;
3347 debug_functions.C_MessageVerifyFinal = NSSDBGC_MessageVerifyFinal;
3348 return &debug_functions;
3349}
3350
3351/*
3352 * scale the time factor up accordingly.
3353 * This routine tries to keep at least 2 significant figures on output.
3354 * If the time is 0, then indicate that with a 'z' for units.
3355 * If the time is greater than 10 minutes, output the time in minutes.
3356 * If the time is less than 10 minutes but greater than 10 seconds output
3357 * the time in second.
3358 * If the time is less than 10 seconds but greater than 10 milliseconds
3359 * output * the time in millisecond.
3360 * If the time is less than 10 milliseconds but greater than 0 ticks output
3361 * the time in microsecond.
3362 *
3363 */
3364static PRUint32
3365getPrintTime(PRIntervalTime time, char **type)
3366{
3367 PRUint32 prTime;
3368
3369 /* detect a programming error by outputting 'bu' to the output stream
3370 * rather than crashing */
3371 *type = "bug";
3372 if (time == 0) {
3373 *type = "z";
3374 return 0;
3375 }
3376
3377 prTime = PR_IntervalToSeconds(time);
3378
3379 if (prTime >= 600) {
3380 *type = "m";
3381 return prTime / 60;
3382 }
3383 if (prTime >= 10) {
3384 *type = "s";
3385 return prTime;
3386 }
3387 prTime = PR_IntervalToMilliseconds(time);
3388 if (prTime >= 10) {
3389 *type = "ms";
3390 return prTime;
3391 }
3392 *type = "us";
3393 return PR_IntervalToMicroseconds(time);
3394}
3395
3396static void
3397print_final_statistics(void)
3398{
3399 int total_calls = 0;
3400 PRIntervalTime total_time = 0;
3401 PRUint32 pr_total_time;
3402 char *type;
3403 char *fname;
3404 FILE *outfile = NULL((void*)0);
3405 int i;
3406
3407 fname = PR_GetEnvSecure("NSS_OUTPUT_FILE");
3408 if (fname) {
4
Assuming 'fname' is non-null
5
Taking true branch
3409 /* need to add an optional process id to the filename */
3410 outfile = fopen(fname, "w+");
6
Stream opened here
7
Assuming that 'fopen' is successful
3411 }
3412 if (!outfile
7.1
'outfile' is non-null
7.1
'outfile' is non-null
) {
8
Taking false branch
3413 outfile = stdoutstdout;
3414 }
3415
3416 fprintf(outfile, "%-25s %10s %12s %12s %10s\n", "Function", "# Calls",
3417 "Time", "Avg.", "% Time");
3418 fprintf(outfile, "\n");
3419 for (i = 0; i < nssdbg_prof_size; i++) {
9
Assuming 'i' is >= 'nssdbg_prof_size'
10
Loop condition is false. Execution continues on line 3423
3420 total_calls += nssdbg_prof_data[i].calls;
3421 total_time += nssdbg_prof_data[i].time;
3422 }
3423 for (i = 0; i
10.1
'i' is >= 'nssdbg_prof_size'
10.1
'i' is >= 'nssdbg_prof_size'
< nssdbg_prof_size; i++) {
11
Loop condition is false. Execution continues on line 3442
3424 PRIntervalTime time = nssdbg_prof_data[i].time;
3425 PRUint32 usTime = PR_IntervalToMicroseconds(time);
3426 PRUint32 prTime = 0;
3427 PRUint32 calls = nssdbg_prof_data[i].calls;
3428 /* don't print out functions that weren't even called */
3429 if (calls == 0) {
3430 continue;
3431 }
3432
3433 prTime = getPrintTime(time, &type);
3434
3435 fprintf(outfile, "%-25s %10d %10d%2s ", nssdbg_prof_data[i].function,
3436 calls, prTime, type);
3437 /* for now always output the average in microseconds */
3438 fprintf(outfile, "%10.2f%2s", (float)usTime / (float)calls, "us");
3439 fprintf(outfile, "%10.2f%%", ((float)time / (float)total_time) * 100);
3440 fprintf(outfile, "\n");
3441 }
3442 fprintf(outfile, "\n");
3443
3444 pr_total_time = getPrintTime(total_time, &type);
3445
3446 fprintf(outfile, "%25s %10d %10d%2s\n", "Totals", total_calls,
3447 pr_total_time, type);
3448 fprintf(outfile, "\n\nMaximum number of concurrent open sessions: %d\n\n",
3449 maxOpenSessions);
3450 fflush(outfile);
3451 if (outfile != stdoutstdout) {
12
Assuming 'outfile' is equal to 'stdout'
13
Taking false branch
3452 fclose(outfile);
3453 }
3454}
14
Opened stream never closed. Potential resource leak