Index: nss/lib/ckfw/wrap.c |
diff --git a/nss/lib/ckfw/wrap.c b/nss/lib/ckfw/wrap.c |
index 3a0b0df21ff1a4e96703e9f6d5e749b08f8f4071..44c2e8e5b189bfe88350543e700b7be5d3c3aae9 100644 |
--- a/nss/lib/ckfw/wrap.c |
+++ b/nss/lib/ckfw/wrap.c |
@@ -92,41 +92,46 @@ |
/* figure out out locking semantics */ |
static CK_RV |
nssCKFW_GetThreadSafeState(CK_C_INITIALIZE_ARGS_PTR pInitArgs, |
- CryptokiLockingState *pLocking_state) { |
- int functionCount = 0; |
+ CryptokiLockingState *pLocking_state) |
+{ |
+ int functionCount = 0; |
- /* parsed according to (PKCS #11 Section 11.4) */ |
- /* no args, the degenerate version of case 1 */ |
- if (!pInitArgs) { |
- *pLocking_state = SingleThreaded; |
- return CKR_OK; |
- } |
+ /* parsed according to (PKCS #11 Section 11.4) */ |
+ /* no args, the degenerate version of case 1 */ |
+ if (!pInitArgs) { |
+ *pLocking_state = SingleThreaded; |
+ return CKR_OK; |
+ } |
- /* CKF_OS_LOCKING_OK set, Cases 2 and 4 */ |
- if (pInitArgs->flags & CKF_OS_LOCKING_OK) { |
- *pLocking_state = MultiThreaded; |
- return CKR_OK; |
- } |
- if ((CK_CREATEMUTEX) NULL != pInitArgs->CreateMutex) functionCount++; |
- if ((CK_DESTROYMUTEX) NULL != pInitArgs->DestroyMutex) functionCount++; |
- if ((CK_LOCKMUTEX) NULL != pInitArgs->LockMutex) functionCount++; |
- if ((CK_UNLOCKMUTEX) NULL != pInitArgs->UnlockMutex) functionCount++; |
- |
- /* CKF_OS_LOCKING_OK is not set, and not functions supplied, |
- * explicit case 1 */ |
- if (0 == functionCount) { |
- *pLocking_state = SingleThreaded; |
- return CKR_OK; |
- } |
- |
- /* OS_LOCKING_OK is not set and functions have been supplied. Since |
- * ckfw uses nssbase library which explicitly calls NSPR, and since |
- * there is no way to reliably override these explicit calls to NSPR, |
- * therefore we can't support applications which have their own threading |
- * module. Return CKR_CANT_LOCK if they supplied the correct number of |
- * arguments, or CKR_ARGUMENTS_BAD if they did not in either case we will |
- * fail the initialize */ |
- return (4 == functionCount) ? CKR_CANT_LOCK : CKR_ARGUMENTS_BAD; |
+ /* CKF_OS_LOCKING_OK set, Cases 2 and 4 */ |
+ if (pInitArgs->flags & CKF_OS_LOCKING_OK) { |
+ *pLocking_state = MultiThreaded; |
+ return CKR_OK; |
+ } |
+ if ((CK_CREATEMUTEX)NULL != pInitArgs->CreateMutex) |
+ functionCount++; |
+ if ((CK_DESTROYMUTEX)NULL != pInitArgs->DestroyMutex) |
+ functionCount++; |
+ if ((CK_LOCKMUTEX)NULL != pInitArgs->LockMutex) |
+ functionCount++; |
+ if ((CK_UNLOCKMUTEX)NULL != pInitArgs->UnlockMutex) |
+ functionCount++; |
+ |
+ /* CKF_OS_LOCKING_OK is not set, and not functions supplied, |
+ * explicit case 1 */ |
+ if (0 == functionCount) { |
+ *pLocking_state = SingleThreaded; |
+ return CKR_OK; |
+ } |
+ |
+ /* OS_LOCKING_OK is not set and functions have been supplied. Since |
+ * ckfw uses nssbase library which explicitly calls NSPR, and since |
+ * there is no way to reliably override these explicit calls to NSPR, |
+ * therefore we can't support applications which have their own threading |
+ * module. Return CKR_CANT_LOCK if they supplied the correct number of |
+ * arguments, or CKR_ARGUMENTS_BAD if they did not in either case we will |
+ * fail the initialize */ |
+ return (4 == functionCount) ? CKR_CANT_LOCK : CKR_ARGUMENTS_BAD; |
} |
static PRInt32 liveInstances; |
@@ -136,60 +141,58 @@ static PRInt32 liveInstances; |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_Initialize |
-( |
- NSSCKFWInstance **pFwInstance, |
- NSSCKMDInstance *mdInstance, |
- CK_VOID_PTR pInitArgs |
-) |
+NSSCKFWC_Initialize( |
+ NSSCKFWInstance **pFwInstance, |
+ NSSCKMDInstance *mdInstance, |
+ CK_VOID_PTR pInitArgs) |
{ |
- CK_RV error = CKR_OK; |
- CryptokiLockingState locking_state; |
- |
- if( (NSSCKFWInstance **)NULL == pFwInstance ) { |
- error = CKR_GENERAL_ERROR; |
- goto loser; |
- } |
- |
- if (*pFwInstance) { |
- error = CKR_CRYPTOKI_ALREADY_INITIALIZED; |
- goto loser; |
- } |
- |
- if (!mdInstance) { |
- error = CKR_GENERAL_ERROR; |
- goto loser; |
- } |
- |
- error = nssCKFW_GetThreadSafeState(pInitArgs,&locking_state); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- *pFwInstance = nssCKFWInstance_Create(pInitArgs, locking_state, mdInstance, &error); |
- if (!*pFwInstance) { |
- goto loser; |
- } |
- PR_ATOMIC_INCREMENT(&liveInstances); |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CANT_LOCK: |
- case CKR_CRYPTOKI_ALREADY_INITIALIZED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_NEED_TO_CREATE_THREADS: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ CK_RV error = CKR_OK; |
+ CryptokiLockingState locking_state; |
+ |
+ if ((NSSCKFWInstance **)NULL == pFwInstance) { |
+ error = CKR_GENERAL_ERROR; |
+ goto loser; |
+ } |
+ |
+ if (*pFwInstance) { |
+ error = CKR_CRYPTOKI_ALREADY_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ if (!mdInstance) { |
+ error = CKR_GENERAL_ERROR; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFW_GetThreadSafeState(pInitArgs, &locking_state); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ *pFwInstance = nssCKFWInstance_Create(pInitArgs, locking_state, mdInstance, &error); |
+ if (!*pFwInstance) { |
+ goto loser; |
+ } |
+ PR_ATOMIC_INCREMENT(&liveInstances); |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CANT_LOCK: |
+ case CKR_CRYPTOKI_ALREADY_INITIALIZED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_NEED_TO_CREATE_THREADS: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -197,59 +200,57 @@ NSSCKFWC_Initialize |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_Finalize |
-( |
- NSSCKFWInstance **pFwInstance |
-) |
+NSSCKFWC_Finalize( |
+ NSSCKFWInstance **pFwInstance) |
{ |
- CK_RV error = CKR_OK; |
- |
- if( (NSSCKFWInstance **)NULL == pFwInstance ) { |
- error = CKR_GENERAL_ERROR; |
- goto loser; |
- } |
- |
- if (!*pFwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- error = nssCKFWInstance_Destroy(*pFwInstance); |
- |
- /* In any case */ |
- *pFwInstance = (NSSCKFWInstance *)NULL; |
- |
- loser: |
- switch( error ) { |
- PRInt32 remainingInstances; |
- case CKR_OK: |
- remainingInstances = PR_ATOMIC_DECREMENT(&liveInstances); |
- if (!remainingInstances) { |
- nssArena_Shutdown(); |
- } |
- break; |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- break; |
- default: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- /* |
- * A thread's error stack is automatically destroyed when the thread |
- * terminates or, for the primordial thread, by PR_Cleanup. On |
- * Windows with MinGW, the thread private data destructor PR_Free |
- * registered by this module is actually a thunk for PR_Free defined |
- * in this module. When the thread that unloads this module terminates |
- * or calls PR_Cleanup, the thunk for PR_Free is already gone with the |
- * module. Therefore we need to destroy the error stack before the |
- * module is unloaded. |
- */ |
- nss_DestroyErrorStack(); |
- return error; |
+ CK_RV error = CKR_OK; |
+ |
+ if ((NSSCKFWInstance **)NULL == pFwInstance) { |
+ error = CKR_GENERAL_ERROR; |
+ goto loser; |
+ } |
+ |
+ if (!*pFwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWInstance_Destroy(*pFwInstance); |
+ |
+ /* In any case */ |
+ *pFwInstance = (NSSCKFWInstance *)NULL; |
+ |
+loser: |
+ switch (error) { |
+ PRInt32 remainingInstances; |
+ case CKR_OK: |
+ remainingInstances = PR_ATOMIC_DECREMENT(&liveInstances); |
+ if (!remainingInstances) { |
+ nssArena_Shutdown(); |
+ } |
+ break; |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ break; |
+ default: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ /* |
+ * A thread's error stack is automatically destroyed when the thread |
+ * terminates or, for the primordial thread, by PR_Cleanup. On |
+ * Windows with MinGW, the thread private data destructor PR_Free |
+ * registered by this module is actually a thunk for PR_Free defined |
+ * in this module. When the thread that unloads this module terminates |
+ * or calls PR_Cleanup, the thunk for PR_Free is already gone with the |
+ * module. Therefore we need to destroy the error stack before the |
+ * module is unloaded. |
+ */ |
+ nss_DestroyErrorStack(); |
+ return error; |
} |
/* |
@@ -257,57 +258,55 @@ NSSCKFWC_Finalize |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_GetInfo |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_INFO_PTR pInfo |
-) |
+NSSCKFWC_GetInfo( |
+ NSSCKFWInstance *fwInstance, |
+ CK_INFO_PTR pInfo) |
{ |
- CK_RV error = CKR_OK; |
+ CK_RV error = CKR_OK; |
- if( (CK_INFO_PTR)CK_NULL_PTR == pInfo ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
+ if ((CK_INFO_PTR)CK_NULL_PTR == pInfo) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
- /* |
- * A purify error here means a caller error |
- */ |
- (void)nsslibc_memset(pInfo, 0, sizeof(CK_INFO)); |
+ /* |
+ * A purify error here means a caller error |
+ */ |
+ (void)nsslibc_memset(pInfo, 0, sizeof(CK_INFO)); |
- pInfo->cryptokiVersion = nssCKFWInstance_GetCryptokiVersion(fwInstance); |
+ pInfo->cryptokiVersion = nssCKFWInstance_GetCryptokiVersion(fwInstance); |
- error = nssCKFWInstance_GetManufacturerID(fwInstance, pInfo->manufacturerID); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
+ error = nssCKFWInstance_GetManufacturerID(fwInstance, pInfo->manufacturerID); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
- pInfo->flags = nssCKFWInstance_GetFlags(fwInstance); |
+ pInfo->flags = nssCKFWInstance_GetFlags(fwInstance); |
- error = nssCKFWInstance_GetLibraryDescription(fwInstance, pInfo->libraryDescription); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
+ error = nssCKFWInstance_GetLibraryDescription(fwInstance, pInfo->libraryDescription); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
- pInfo->libraryVersion = nssCKFWInstance_GetLibraryVersion(fwInstance); |
+ pInfo->libraryVersion = nssCKFWInstance_GetLibraryVersion(fwInstance); |
- return CKR_OK; |
+ return CKR_OK; |
- loser: |
- switch( error ) { |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- break; |
- default: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
+loser: |
+ switch (error) { |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ break; |
+ default: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
- return error; |
+ return error; |
} |
- |
+ |
/* |
* C_GetFunctionList is implemented entirely in the Module's file which |
* includes the Framework API insert file. It requires no "actual" |
@@ -319,179 +318,175 @@ NSSCKFWC_GetInfo |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_GetSlotList |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_BBOOL tokenPresent, |
- CK_SLOT_ID_PTR pSlotList, |
- CK_ULONG_PTR pulCount |
-) |
+NSSCKFWC_GetSlotList( |
+ NSSCKFWInstance *fwInstance, |
+ CK_BBOOL tokenPresent, |
+ CK_SLOT_ID_PTR pSlotList, |
+ CK_ULONG_PTR pulCount) |
{ |
- CK_RV error = CKR_OK; |
- CK_ULONG nSlots; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- switch( tokenPresent ) { |
- case CK_TRUE: |
- case CK_FALSE: |
- break; |
- default: |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- if( (CK_ULONG_PTR)CK_NULL_PTR == pulCount ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
- if( (CK_ULONG)0 == nSlots ) { |
- goto loser; |
- } |
- |
- if( (CK_SLOT_ID_PTR)CK_NULL_PTR == pSlotList ) { |
- *pulCount = nSlots; |
- return CKR_OK; |
- } |
- |
- /* |
- * A purify error here indicates caller error. |
- */ |
- (void)nsslibc_memset(pSlotList, 0, *pulCount * sizeof(CK_SLOT_ID)); |
+ CK_RV error = CKR_OK; |
+ CK_ULONG nSlots; |
- if( *pulCount < nSlots ) { |
- *pulCount = nSlots; |
- error = CKR_BUFFER_TOO_SMALL; |
- goto loser; |
- } else { |
- CK_ULONG i; |
- *pulCount = nSlots; |
- |
- /* |
- * Our secret "mapping": CK_SLOT_IDs are integers [1,N], and we |
- * just index one when we need it. |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ switch (tokenPresent) { |
+ case CK_TRUE: |
+ case CK_FALSE: |
+ break; |
+ default: |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ if ((CK_ULONG_PTR)CK_NULL_PTR == pulCount) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
+ if ((CK_ULONG)0 == nSlots) { |
+ goto loser; |
+ } |
+ |
+ if ((CK_SLOT_ID_PTR)CK_NULL_PTR == pSlotList) { |
+ *pulCount = nSlots; |
+ return CKR_OK; |
+ } |
+ |
+ /* |
+ * A purify error here indicates caller error. |
*/ |
+ (void)nsslibc_memset(pSlotList, 0, *pulCount * sizeof(CK_SLOT_ID)); |
+ |
+ if (*pulCount < nSlots) { |
+ *pulCount = nSlots; |
+ error = CKR_BUFFER_TOO_SMALL; |
+ goto loser; |
+ } else { |
+ CK_ULONG i; |
+ *pulCount = nSlots; |
+ |
+ /* |
+ * Our secret "mapping": CK_SLOT_IDs are integers [1,N], and we |
+ * just index one when we need it. |
+ */ |
+ |
+ for (i = 0; i < nSlots; i++) { |
+ pSlotList[i] = i + 1; |
+ } |
- for( i = 0; i < nSlots; i++ ) { |
- pSlotList[i] = i+1; |
+ return CKR_OK; |
} |
- return CKR_OK; |
- } |
- |
- loser: |
- switch( error ) { |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+loser: |
+ switch (error) { |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
- |
+ |
/* |
* NSSCKFWC_GetSlotInfo |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_GetSlotInfo |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SLOT_ID slotID, |
- CK_SLOT_INFO_PTR pInfo |
-) |
+NSSCKFWC_GetSlotInfo( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SLOT_ID slotID, |
+ CK_SLOT_INFO_PTR pInfo) |
{ |
- CK_RV error = CKR_OK; |
- CK_ULONG nSlots; |
- NSSCKFWSlot **slots; |
- NSSCKFWSlot *fwSlot; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
- if( (CK_ULONG)0 == nSlots ) { |
- goto loser; |
- } |
- |
- if( (slotID < 1) || (slotID > nSlots) ) { |
- error = CKR_SLOT_ID_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_SLOT_INFO_PTR)CK_NULL_PTR == pInfo ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- /* |
- * A purify error here indicates caller error. |
- */ |
- (void)nsslibc_memset(pInfo, 0, sizeof(CK_SLOT_INFO)); |
- |
- slots = nssCKFWInstance_GetSlots(fwInstance, &error); |
- if( (NSSCKFWSlot **)NULL == slots ) { |
- goto loser; |
- } |
- |
- fwSlot = slots[ slotID-1 ]; |
- |
- error = nssCKFWSlot_GetSlotDescription(fwSlot, pInfo->slotDescription); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- error = nssCKFWSlot_GetManufacturerID(fwSlot, pInfo->manufacturerID); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- if( nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- pInfo->flags |= CKF_TOKEN_PRESENT; |
- } |
- |
- if( nssCKFWSlot_GetRemovableDevice(fwSlot) ) { |
- pInfo->flags |= CKF_REMOVABLE_DEVICE; |
- } |
- |
- if( nssCKFWSlot_GetHardwareSlot(fwSlot) ) { |
- pInfo->flags |= CKF_HW_SLOT; |
- } |
- |
- pInfo->hardwareVersion = nssCKFWSlot_GetHardwareVersion(fwSlot); |
- pInfo->firmwareVersion = nssCKFWSlot_GetFirmwareVersion(fwSlot); |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_SLOT_ID_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- } |
- |
- return error; |
+ CK_RV error = CKR_OK; |
+ CK_ULONG nSlots; |
+ NSSCKFWSlot **slots; |
+ NSSCKFWSlot *fwSlot; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
+ if ((CK_ULONG)0 == nSlots) { |
+ goto loser; |
+ } |
+ |
+ if ((slotID < 1) || (slotID > nSlots)) { |
+ error = CKR_SLOT_ID_INVALID; |
+ goto loser; |
+ } |
+ |
+ if ((CK_SLOT_INFO_PTR)CK_NULL_PTR == pInfo) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ /* |
+ * A purify error here indicates caller error. |
+ */ |
+ (void)nsslibc_memset(pInfo, 0, sizeof(CK_SLOT_INFO)); |
+ |
+ slots = nssCKFWInstance_GetSlots(fwInstance, &error); |
+ if ((NSSCKFWSlot **)NULL == slots) { |
+ goto loser; |
+ } |
+ |
+ fwSlot = slots[slotID - 1]; |
+ |
+ error = nssCKFWSlot_GetSlotDescription(fwSlot, pInfo->slotDescription); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSlot_GetManufacturerID(fwSlot, pInfo->manufacturerID); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ if (nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ pInfo->flags |= CKF_TOKEN_PRESENT; |
+ } |
+ |
+ if (nssCKFWSlot_GetRemovableDevice(fwSlot)) { |
+ pInfo->flags |= CKF_REMOVABLE_DEVICE; |
+ } |
+ |
+ if (nssCKFWSlot_GetHardwareSlot(fwSlot)) { |
+ pInfo->flags |= CKF_HW_SLOT; |
+ } |
+ |
+ pInfo->hardwareVersion = nssCKFWSlot_GetHardwareVersion(fwSlot); |
+ pInfo->firmwareVersion = nssCKFWSlot_GetFirmwareVersion(fwSlot); |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_SLOT_ID_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -499,876 +494,860 @@ NSSCKFWC_GetSlotInfo |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_GetTokenInfo |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SLOT_ID slotID, |
- CK_TOKEN_INFO_PTR pInfo |
-) |
+NSSCKFWC_GetTokenInfo( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SLOT_ID slotID, |
+ CK_TOKEN_INFO_PTR pInfo) |
{ |
- CK_RV error = CKR_OK; |
- CK_ULONG nSlots; |
- NSSCKFWSlot **slots; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
- if( (CK_ULONG)0 == nSlots ) { |
- goto loser; |
- } |
- |
- if( (slotID < 1) || (slotID > nSlots) ) { |
- error = CKR_SLOT_ID_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_TOKEN_INFO_PTR)CK_NULL_PTR == pInfo ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- /* |
- * A purify error here indicates caller error. |
- */ |
- (void)nsslibc_memset(pInfo, 0, sizeof(CK_TOKEN_INFO)); |
- |
- slots = nssCKFWInstance_GetSlots(fwInstance, &error); |
- if( (NSSCKFWSlot **)NULL == slots ) { |
- goto loser; |
- } |
- |
- fwSlot = slots[ slotID-1 ]; |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- error = nssCKFWToken_GetLabel(fwToken, pInfo->label); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- error = nssCKFWToken_GetManufacturerID(fwToken, pInfo->manufacturerID); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- error = nssCKFWToken_GetModel(fwToken, pInfo->model); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- error = nssCKFWToken_GetSerialNumber(fwToken, pInfo->serialNumber); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- if( nssCKFWToken_GetHasRNG(fwToken) ) { |
- pInfo->flags |= CKF_RNG; |
- } |
- |
- if( nssCKFWToken_GetIsWriteProtected(fwToken) ) { |
- pInfo->flags |= CKF_WRITE_PROTECTED; |
- } |
- |
- if( nssCKFWToken_GetLoginRequired(fwToken) ) { |
- pInfo->flags |= CKF_LOGIN_REQUIRED; |
- } |
- |
- if( nssCKFWToken_GetUserPinInitialized(fwToken) ) { |
- pInfo->flags |= CKF_USER_PIN_INITIALIZED; |
- } |
- |
- if( nssCKFWToken_GetRestoreKeyNotNeeded(fwToken) ) { |
- pInfo->flags |= CKF_RESTORE_KEY_NOT_NEEDED; |
- } |
- |
- if( nssCKFWToken_GetHasClockOnToken(fwToken) ) { |
- pInfo->flags |= CKF_CLOCK_ON_TOKEN; |
- } |
- |
- if( nssCKFWToken_GetHasProtectedAuthenticationPath(fwToken) ) { |
- pInfo->flags |= CKF_PROTECTED_AUTHENTICATION_PATH; |
- } |
- |
- if( nssCKFWToken_GetSupportsDualCryptoOperations(fwToken) ) { |
- pInfo->flags |= CKF_DUAL_CRYPTO_OPERATIONS; |
- } |
- |
- pInfo->ulMaxSessionCount = nssCKFWToken_GetMaxSessionCount(fwToken); |
- pInfo->ulSessionCount = nssCKFWToken_GetSessionCount(fwToken); |
- pInfo->ulMaxRwSessionCount = nssCKFWToken_GetMaxRwSessionCount(fwToken); |
- pInfo->ulRwSessionCount= nssCKFWToken_GetRwSessionCount(fwToken); |
- pInfo->ulMaxPinLen = nssCKFWToken_GetMaxPinLen(fwToken); |
- pInfo->ulMinPinLen = nssCKFWToken_GetMinPinLen(fwToken); |
- pInfo->ulTotalPublicMemory = nssCKFWToken_GetTotalPublicMemory(fwToken); |
- pInfo->ulFreePublicMemory = nssCKFWToken_GetFreePublicMemory(fwToken); |
- pInfo->ulTotalPrivateMemory = nssCKFWToken_GetTotalPrivateMemory(fwToken); |
- pInfo->ulFreePrivateMemory = nssCKFWToken_GetFreePrivateMemory(fwToken); |
- pInfo->hardwareVersion = nssCKFWToken_GetHardwareVersion(fwToken); |
- pInfo->firmwareVersion = nssCKFWToken_GetFirmwareVersion(fwToken); |
- |
- error = nssCKFWToken_GetUTCTime(fwToken, pInfo->utcTime); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_DEVICE_REMOVED: |
- case CKR_TOKEN_NOT_PRESENT: |
- if (fwToken) |
- nssCKFWToken_Destroy(fwToken); |
- break; |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_SLOT_ID_INVALID: |
- case CKR_TOKEN_NOT_RECOGNIZED: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
-} |
+ CK_RV error = CKR_OK; |
+ CK_ULONG nSlots; |
+ NSSCKFWSlot **slots; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
-/* |
- * NSSCKFWC_WaitForSlotEvent |
- * |
- */ |
-NSS_IMPLEMENT CK_RV |
-NSSCKFWC_WaitForSlotEvent |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_FLAGS flags, |
- CK_SLOT_ID_PTR pSlot, |
- CK_VOID_PTR pReserved |
-) |
-{ |
- CK_RV error = CKR_OK; |
- CK_ULONG nSlots; |
- CK_BBOOL block; |
- NSSCKFWSlot **slots; |
- NSSCKFWSlot *fwSlot; |
- CK_ULONG i; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- if( flags & ~CKF_DONT_BLOCK ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- block = (flags & CKF_DONT_BLOCK) ? CK_TRUE : CK_FALSE; |
- |
- nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
- if( (CK_ULONG)0 == nSlots ) { |
- goto loser; |
- } |
- |
- if( (CK_SLOT_ID_PTR)CK_NULL_PTR == pSlot ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- if( (CK_VOID_PTR)CK_NULL_PTR != pReserved ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- slots = nssCKFWInstance_GetSlots(fwInstance, &error); |
- if( (NSSCKFWSlot **)NULL == slots ) { |
- goto loser; |
- } |
- |
- fwSlot = nssCKFWInstance_WaitForSlotEvent(fwInstance, block, &error); |
- if (!fwSlot) { |
- goto loser; |
- } |
- |
- for( i = 0; i < nSlots; i++ ) { |
- if( fwSlot == slots[i] ) { |
- *pSlot = (CK_SLOT_ID)(CK_ULONG)(i+1); |
- return CKR_OK; |
- } |
- } |
- |
- error = CKR_GENERAL_ERROR; /* returned something not in the slot list */ |
- |
- loser: |
- switch( error ) { |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_NO_EVENT: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
-} |
+ nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
+ if ((CK_ULONG)0 == nSlots) { |
+ goto loser; |
+ } |
-/* |
- * NSSCKFWC_GetMechanismList |
- * |
- */ |
-NSS_IMPLEMENT CK_RV |
-NSSCKFWC_GetMechanismList |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SLOT_ID slotID, |
- CK_MECHANISM_TYPE_PTR pMechanismList, |
- CK_ULONG_PTR pulCount |
-) |
-{ |
- CK_RV error = CKR_OK; |
- CK_ULONG nSlots; |
- NSSCKFWSlot **slots; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; |
- CK_ULONG count; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
- if( (CK_ULONG)0 == nSlots ) { |
- goto loser; |
- } |
- |
- if( (slotID < 1) || (slotID > nSlots) ) { |
- error = CKR_SLOT_ID_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_ULONG_PTR)CK_NULL_PTR == pulCount ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- slots = nssCKFWInstance_GetSlots(fwInstance, &error); |
- if( (NSSCKFWSlot **)NULL == slots ) { |
- goto loser; |
- } |
- |
- fwSlot = slots[ slotID-1 ]; |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- count = nssCKFWToken_GetMechanismCount(fwToken); |
- |
- if( (CK_MECHANISM_TYPE_PTR)CK_NULL_PTR == pMechanismList ) { |
- *pulCount = count; |
- return CKR_OK; |
- } |
+ if ((slotID < 1) || (slotID > nSlots)) { |
+ error = CKR_SLOT_ID_INVALID; |
+ goto loser; |
+ } |
- if( *pulCount < count ) { |
- *pulCount = count; |
- error = CKR_BUFFER_TOO_SMALL; |
- goto loser; |
- } |
+ if ((CK_TOKEN_INFO_PTR)CK_NULL_PTR == pInfo) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
- /* |
- * A purify error here indicates caller error. |
- */ |
- (void)nsslibc_memset(pMechanismList, 0, *pulCount * sizeof(CK_MECHANISM_TYPE)); |
+ /* |
+ * A purify error here indicates caller error. |
+ */ |
+ (void)nsslibc_memset(pInfo, 0, sizeof(CK_TOKEN_INFO)); |
+ |
+ slots = nssCKFWInstance_GetSlots(fwInstance, &error); |
+ if ((NSSCKFWSlot **)NULL == slots) { |
+ goto loser; |
+ } |
+ |
+ fwSlot = slots[slotID - 1]; |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWToken_GetLabel(fwToken, pInfo->label); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWToken_GetManufacturerID(fwToken, pInfo->manufacturerID); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWToken_GetModel(fwToken, pInfo->model); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWToken_GetSerialNumber(fwToken, pInfo->serialNumber); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ if (nssCKFWToken_GetHasRNG(fwToken)) { |
+ pInfo->flags |= CKF_RNG; |
+ } |
+ |
+ if (nssCKFWToken_GetIsWriteProtected(fwToken)) { |
+ pInfo->flags |= CKF_WRITE_PROTECTED; |
+ } |
+ |
+ if (nssCKFWToken_GetLoginRequired(fwToken)) { |
+ pInfo->flags |= CKF_LOGIN_REQUIRED; |
+ } |
+ |
+ if (nssCKFWToken_GetUserPinInitialized(fwToken)) { |
+ pInfo->flags |= CKF_USER_PIN_INITIALIZED; |
+ } |
+ |
+ if (nssCKFWToken_GetRestoreKeyNotNeeded(fwToken)) { |
+ pInfo->flags |= CKF_RESTORE_KEY_NOT_NEEDED; |
+ } |
+ |
+ if (nssCKFWToken_GetHasClockOnToken(fwToken)) { |
+ pInfo->flags |= CKF_CLOCK_ON_TOKEN; |
+ } |
+ |
+ if (nssCKFWToken_GetHasProtectedAuthenticationPath(fwToken)) { |
+ pInfo->flags |= CKF_PROTECTED_AUTHENTICATION_PATH; |
+ } |
- *pulCount = count; |
+ if (nssCKFWToken_GetSupportsDualCryptoOperations(fwToken)) { |
+ pInfo->flags |= CKF_DUAL_CRYPTO_OPERATIONS; |
+ } |
- if( 0 != count ) { |
- error = nssCKFWToken_GetMechanismTypes(fwToken, pMechanismList); |
- } else { |
- error = CKR_OK; |
- } |
+ pInfo->ulMaxSessionCount = nssCKFWToken_GetMaxSessionCount(fwToken); |
+ pInfo->ulSessionCount = nssCKFWToken_GetSessionCount(fwToken); |
+ pInfo->ulMaxRwSessionCount = nssCKFWToken_GetMaxRwSessionCount(fwToken); |
+ pInfo->ulRwSessionCount = nssCKFWToken_GetRwSessionCount(fwToken); |
+ pInfo->ulMaxPinLen = nssCKFWToken_GetMaxPinLen(fwToken); |
+ pInfo->ulMinPinLen = nssCKFWToken_GetMinPinLen(fwToken); |
+ pInfo->ulTotalPublicMemory = nssCKFWToken_GetTotalPublicMemory(fwToken); |
+ pInfo->ulFreePublicMemory = nssCKFWToken_GetFreePublicMemory(fwToken); |
+ pInfo->ulTotalPrivateMemory = nssCKFWToken_GetTotalPrivateMemory(fwToken); |
+ pInfo->ulFreePrivateMemory = nssCKFWToken_GetFreePrivateMemory(fwToken); |
+ pInfo->hardwareVersion = nssCKFWToken_GetHardwareVersion(fwToken); |
+ pInfo->firmwareVersion = nssCKFWToken_GetFirmwareVersion(fwToken); |
+ |
+ error = nssCKFWToken_GetUTCTime(fwToken, pInfo->utcTime); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
- if( CKR_OK == error ) { |
return CKR_OK; |
- } |
- |
- loser: |
- switch( error ) { |
- case CKR_DEVICE_REMOVED: |
- case CKR_TOKEN_NOT_PRESENT: |
- if (fwToken) |
- nssCKFWToken_Destroy(fwToken); |
- break; |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_SLOT_ID_INVALID: |
- case CKR_TOKEN_NOT_RECOGNIZED: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
-} |
-/* |
- * NSSCKFWC_GetMechanismInfo |
- * |
- */ |
-NSS_IMPLEMENT CK_RV |
-NSSCKFWC_GetMechanismInfo |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SLOT_ID slotID, |
- CK_MECHANISM_TYPE type, |
- CK_MECHANISM_INFO_PTR pInfo |
-) |
-{ |
- CK_RV error = CKR_OK; |
- CK_ULONG nSlots; |
- NSSCKFWSlot **slots; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; |
- NSSCKFWMechanism *fwMechanism; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
- if( (CK_ULONG)0 == nSlots ) { |
- goto loser; |
- } |
- |
- if( (slotID < 1) || (slotID > nSlots) ) { |
- error = CKR_SLOT_ID_INVALID; |
- goto loser; |
- } |
- |
- slots = nssCKFWInstance_GetSlots(fwInstance, &error); |
- if( (NSSCKFWSlot **)NULL == slots ) { |
- goto loser; |
- } |
- |
- fwSlot = slots[ slotID-1 ]; |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- if( (CK_MECHANISM_INFO_PTR)CK_NULL_PTR == pInfo ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- /* |
- * A purify error here indicates caller error. |
- */ |
- (void)nsslibc_memset(pInfo, 0, sizeof(CK_MECHANISM_INFO)); |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- fwMechanism = nssCKFWToken_GetMechanism(fwToken, type, &error); |
- if (!fwMechanism) { |
- goto loser; |
- } |
- |
- pInfo->ulMinKeySize = nssCKFWMechanism_GetMinKeySize(fwMechanism, &error); |
- pInfo->ulMaxKeySize = nssCKFWMechanism_GetMaxKeySize(fwMechanism, &error); |
- |
- if( nssCKFWMechanism_GetInHardware(fwMechanism, &error) ) { |
- pInfo->flags |= CKF_HW; |
- } |
- if( nssCKFWMechanism_GetCanEncrypt(fwMechanism, &error) ) { |
- pInfo->flags |= CKF_ENCRYPT; |
- } |
- if( nssCKFWMechanism_GetCanDecrypt(fwMechanism, &error) ) { |
- pInfo->flags |= CKF_DECRYPT; |
- } |
- if( nssCKFWMechanism_GetCanDigest(fwMechanism, &error) ) { |
- pInfo->flags |= CKF_DIGEST; |
- } |
- if( nssCKFWMechanism_GetCanSign(fwMechanism, &error) ) { |
- pInfo->flags |= CKF_SIGN; |
- } |
- if( nssCKFWMechanism_GetCanSignRecover(fwMechanism, &error) ) { |
- pInfo->flags |= CKF_SIGN_RECOVER; |
- } |
- if( nssCKFWMechanism_GetCanVerify(fwMechanism, &error) ) { |
- pInfo->flags |= CKF_VERIFY; |
- } |
- if( nssCKFWMechanism_GetCanVerifyRecover(fwMechanism, &error) ) { |
- pInfo->flags |= CKF_VERIFY_RECOVER; |
- } |
- if( nssCKFWMechanism_GetCanGenerate(fwMechanism, &error) ) { |
- pInfo->flags |= CKF_GENERATE; |
- } |
- if( nssCKFWMechanism_GetCanGenerateKeyPair(fwMechanism, &error) ) { |
- pInfo->flags |= CKF_GENERATE_KEY_PAIR; |
- } |
- if( nssCKFWMechanism_GetCanWrap(fwMechanism, &error) ) { |
- pInfo->flags |= CKF_WRAP; |
- } |
- if( nssCKFWMechanism_GetCanUnwrap(fwMechanism, &error) ) { |
- pInfo->flags |= CKF_UNWRAP; |
- } |
- if( nssCKFWMechanism_GetCanDerive(fwMechanism, &error) ) { |
- pInfo->flags |= CKF_DERIVE; |
- } |
- nssCKFWMechanism_Destroy(fwMechanism); |
- |
- return error; |
- |
- loser: |
- switch( error ) { |
- case CKR_DEVICE_REMOVED: |
- case CKR_TOKEN_NOT_PRESENT: |
- if (fwToken) |
- nssCKFWToken_Destroy(fwToken); |
- break; |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_MECHANISM_INVALID: |
- case CKR_SLOT_ID_INVALID: |
- case CKR_TOKEN_NOT_RECOGNIZED: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
-} |
+loser: |
+ switch (error) { |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_TOKEN_NOT_PRESENT: |
+ if (fwToken) |
+ nssCKFWToken_Destroy(fwToken); |
+ break; |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_SLOT_ID_INVALID: |
+ case CKR_TOKEN_NOT_RECOGNIZED: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
-/* |
- * NSSCKFWC_InitToken |
- * |
- */ |
-NSS_IMPLEMENT CK_RV |
-NSSCKFWC_InitToken |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SLOT_ID slotID, |
- CK_CHAR_PTR pPin, |
- CK_ULONG ulPinLen, |
- CK_CHAR_PTR pLabel |
-) |
-{ |
- CK_RV error = CKR_OK; |
- CK_ULONG nSlots; |
- NSSCKFWSlot **slots; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; |
- NSSItem pin; |
- NSSUTF8 *label; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
- if( (CK_ULONG)0 == nSlots ) { |
- goto loser; |
- } |
- |
- if( (slotID < 1) || (slotID > nSlots) ) { |
- error = CKR_SLOT_ID_INVALID; |
- goto loser; |
- } |
- |
- slots = nssCKFWInstance_GetSlots(fwInstance, &error); |
- if( (NSSCKFWSlot **)NULL == slots ) { |
- goto loser; |
- } |
- |
- fwSlot = slots[ slotID-1 ]; |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- pin.size = (PRUint32)ulPinLen; |
- pin.data = (void *)pPin; |
- label = (NSSUTF8 *)pLabel; /* identity conversion */ |
- |
- error = nssCKFWToken_InitToken(fwToken, &pin, label); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_DEVICE_REMOVED: |
- case CKR_TOKEN_NOT_PRESENT: |
- if (fwToken) |
- nssCKFWToken_Destroy(fwToken); |
- break; |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_PIN_INCORRECT: |
- case CKR_PIN_LOCKED: |
- case CKR_SESSION_EXISTS: |
- case CKR_SLOT_ID_INVALID: |
- case CKR_TOKEN_NOT_RECOGNIZED: |
- case CKR_TOKEN_WRITE_PROTECTED: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ return error; |
} |
/* |
- * NSSCKFWC_InitPIN |
+ * NSSCKFWC_WaitForSlotEvent |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_InitPIN |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_CHAR_PTR pPin, |
- CK_ULONG ulPinLen |
-) |
+NSSCKFWC_WaitForSlotEvent( |
+ NSSCKFWInstance *fwInstance, |
+ CK_FLAGS flags, |
+ CK_SLOT_ID_PTR pSlot, |
+ CK_VOID_PTR pReserved) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSItem pin, *arg; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_CHAR_PTR)CK_NULL_PTR == pPin ) { |
- arg = (NSSItem *)NULL; |
- } else { |
- arg = &pin; |
- pin.size = (PRUint32)ulPinLen; |
- pin.data = (void *)pPin; |
- } |
- |
- error = nssCKFWSession_InitPIN(fwSession, arg); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_PIN_INVALID: |
- case CKR_PIN_LEN_RANGE: |
- case CKR_SESSION_READ_ONLY: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_TOKEN_WRITE_PROTECTED: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ CK_RV error = CKR_OK; |
+ CK_ULONG nSlots; |
+ CK_BBOOL block; |
+ NSSCKFWSlot **slots; |
+ NSSCKFWSlot *fwSlot; |
+ CK_ULONG i; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ if (flags & ~CKF_DONT_BLOCK) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ block = (flags & CKF_DONT_BLOCK) ? CK_TRUE : CK_FALSE; |
+ |
+ nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
+ if ((CK_ULONG)0 == nSlots) { |
+ goto loser; |
+ } |
+ |
+ if ((CK_SLOT_ID_PTR)CK_NULL_PTR == pSlot) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ if ((CK_VOID_PTR)CK_NULL_PTR != pReserved) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ slots = nssCKFWInstance_GetSlots(fwInstance, &error); |
+ if ((NSSCKFWSlot **)NULL == slots) { |
+ goto loser; |
+ } |
+ |
+ fwSlot = nssCKFWInstance_WaitForSlotEvent(fwInstance, block, &error); |
+ if (!fwSlot) { |
+ goto loser; |
+ } |
+ |
+ for (i = 0; i < nSlots; i++) { |
+ if (fwSlot == slots[i]) { |
+ *pSlot = (CK_SLOT_ID)(CK_ULONG)(i + 1); |
+ return CKR_OK; |
+ } |
+ } |
+ |
+ error = CKR_GENERAL_ERROR; /* returned something not in the slot list */ |
+ |
+loser: |
+ switch (error) { |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_NO_EVENT: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
- * NSSCKFWC_SetPIN |
+ * NSSCKFWC_GetMechanismList |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_SetPIN |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_CHAR_PTR pOldPin, |
- CK_ULONG ulOldLen, |
- CK_CHAR_PTR pNewPin, |
- CK_ULONG ulNewLen |
-) |
+NSSCKFWC_GetMechanismList( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SLOT_ID slotID, |
+ CK_MECHANISM_TYPE_PTR pMechanismList, |
+ CK_ULONG_PTR pulCount) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSItem oldPin, newPin, *oldArg, *newArg; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_CHAR_PTR)CK_NULL_PTR == pOldPin ) { |
- oldArg = (NSSItem *)NULL; |
- } else { |
- oldArg = &oldPin; |
- oldPin.size = (PRUint32)ulOldLen; |
- oldPin.data = (void *)pOldPin; |
- } |
- |
- if( (CK_CHAR_PTR)CK_NULL_PTR == pNewPin ) { |
- newArg = (NSSItem *)NULL; |
- } else { |
- newArg = &newPin; |
- newPin.size = (PRUint32)ulNewLen; |
- newPin.data = (void *)pNewPin; |
- } |
- |
- error = nssCKFWSession_SetPIN(fwSession, oldArg, newArg); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_PIN_INCORRECT: |
- case CKR_PIN_INVALID: |
- case CKR_PIN_LEN_RANGE: |
- case CKR_PIN_LOCKED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_SESSION_READ_ONLY: |
- case CKR_TOKEN_WRITE_PROTECTED: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
-} |
+ CK_RV error = CKR_OK; |
+ CK_ULONG nSlots; |
+ NSSCKFWSlot **slots; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; |
+ CK_ULONG count; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
+ if ((CK_ULONG)0 == nSlots) { |
+ goto loser; |
+ } |
+ |
+ if ((slotID < 1) || (slotID > nSlots)) { |
+ error = CKR_SLOT_ID_INVALID; |
+ goto loser; |
+ } |
+ |
+ if ((CK_ULONG_PTR)CK_NULL_PTR == pulCount) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ slots = nssCKFWInstance_GetSlots(fwInstance, &error); |
+ if ((NSSCKFWSlot **)NULL == slots) { |
+ goto loser; |
+ } |
+ |
+ fwSlot = slots[slotID - 1]; |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ count = nssCKFWToken_GetMechanismCount(fwToken); |
+ |
+ if ((CK_MECHANISM_TYPE_PTR)CK_NULL_PTR == pMechanismList) { |
+ *pulCount = count; |
+ return CKR_OK; |
+ } |
+ |
+ if (*pulCount < count) { |
+ *pulCount = count; |
+ error = CKR_BUFFER_TOO_SMALL; |
+ goto loser; |
+ } |
+ |
+ /* |
+ * A purify error here indicates caller error. |
+ */ |
+ (void)nsslibc_memset(pMechanismList, 0, *pulCount * sizeof(CK_MECHANISM_TYPE)); |
+ |
+ *pulCount = count; |
+ |
+ if (0 != count) { |
+ error = nssCKFWToken_GetMechanismTypes(fwToken, pMechanismList); |
+ } else { |
+ error = CKR_OK; |
+ } |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
+ |
+loser: |
+ switch (error) { |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_TOKEN_NOT_PRESENT: |
+ if (fwToken) |
+ nssCKFWToken_Destroy(fwToken); |
+ break; |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_SLOT_ID_INVALID: |
+ case CKR_TOKEN_NOT_RECOGNIZED: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
+} |
+ |
+/* |
+ * NSSCKFWC_GetMechanismInfo |
+ * |
+ */ |
+NSS_IMPLEMENT CK_RV |
+NSSCKFWC_GetMechanismInfo( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SLOT_ID slotID, |
+ CK_MECHANISM_TYPE type, |
+ CK_MECHANISM_INFO_PTR pInfo) |
+{ |
+ CK_RV error = CKR_OK; |
+ CK_ULONG nSlots; |
+ NSSCKFWSlot **slots; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; |
+ NSSCKFWMechanism *fwMechanism; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
+ if ((CK_ULONG)0 == nSlots) { |
+ goto loser; |
+ } |
+ |
+ if ((slotID < 1) || (slotID > nSlots)) { |
+ error = CKR_SLOT_ID_INVALID; |
+ goto loser; |
+ } |
+ |
+ slots = nssCKFWInstance_GetSlots(fwInstance, &error); |
+ if ((NSSCKFWSlot **)NULL == slots) { |
+ goto loser; |
+ } |
+ |
+ fwSlot = slots[slotID - 1]; |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ if ((CK_MECHANISM_INFO_PTR)CK_NULL_PTR == pInfo) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ /* |
+ * A purify error here indicates caller error. |
+ */ |
+ (void)nsslibc_memset(pInfo, 0, sizeof(CK_MECHANISM_INFO)); |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ fwMechanism = nssCKFWToken_GetMechanism(fwToken, type, &error); |
+ if (!fwMechanism) { |
+ goto loser; |
+ } |
+ |
+ pInfo->ulMinKeySize = nssCKFWMechanism_GetMinKeySize(fwMechanism, &error); |
+ pInfo->ulMaxKeySize = nssCKFWMechanism_GetMaxKeySize(fwMechanism, &error); |
+ |
+ if (nssCKFWMechanism_GetInHardware(fwMechanism, &error)) { |
+ pInfo->flags |= CKF_HW; |
+ } |
+ if (nssCKFWMechanism_GetCanEncrypt(fwMechanism, &error)) { |
+ pInfo->flags |= CKF_ENCRYPT; |
+ } |
+ if (nssCKFWMechanism_GetCanDecrypt(fwMechanism, &error)) { |
+ pInfo->flags |= CKF_DECRYPT; |
+ } |
+ if (nssCKFWMechanism_GetCanDigest(fwMechanism, &error)) { |
+ pInfo->flags |= CKF_DIGEST; |
+ } |
+ if (nssCKFWMechanism_GetCanSign(fwMechanism, &error)) { |
+ pInfo->flags |= CKF_SIGN; |
+ } |
+ if (nssCKFWMechanism_GetCanSignRecover(fwMechanism, &error)) { |
+ pInfo->flags |= CKF_SIGN_RECOVER; |
+ } |
+ if (nssCKFWMechanism_GetCanVerify(fwMechanism, &error)) { |
+ pInfo->flags |= CKF_VERIFY; |
+ } |
+ if (nssCKFWMechanism_GetCanVerifyRecover(fwMechanism, &error)) { |
+ pInfo->flags |= CKF_VERIFY_RECOVER; |
+ } |
+ if (nssCKFWMechanism_GetCanGenerate(fwMechanism, &error)) { |
+ pInfo->flags |= CKF_GENERATE; |
+ } |
+ if (nssCKFWMechanism_GetCanGenerateKeyPair(fwMechanism, &error)) { |
+ pInfo->flags |= CKF_GENERATE_KEY_PAIR; |
+ } |
+ if (nssCKFWMechanism_GetCanWrap(fwMechanism, &error)) { |
+ pInfo->flags |= CKF_WRAP; |
+ } |
+ if (nssCKFWMechanism_GetCanUnwrap(fwMechanism, &error)) { |
+ pInfo->flags |= CKF_UNWRAP; |
+ } |
+ if (nssCKFWMechanism_GetCanDerive(fwMechanism, &error)) { |
+ pInfo->flags |= CKF_DERIVE; |
+ } |
+ nssCKFWMechanism_Destroy(fwMechanism); |
+ |
+ return error; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_TOKEN_NOT_PRESENT: |
+ if (fwToken) |
+ nssCKFWToken_Destroy(fwToken); |
+ break; |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_MECHANISM_INVALID: |
+ case CKR_SLOT_ID_INVALID: |
+ case CKR_TOKEN_NOT_RECOGNIZED: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
+} |
+ |
+/* |
+ * NSSCKFWC_InitToken |
+ * |
+ */ |
+NSS_IMPLEMENT CK_RV |
+NSSCKFWC_InitToken( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SLOT_ID slotID, |
+ CK_CHAR_PTR pPin, |
+ CK_ULONG ulPinLen, |
+ CK_CHAR_PTR pLabel) |
+{ |
+ CK_RV error = CKR_OK; |
+ CK_ULONG nSlots; |
+ NSSCKFWSlot **slots; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; |
+ NSSItem pin; |
+ NSSUTF8 *label; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
+ if ((CK_ULONG)0 == nSlots) { |
+ goto loser; |
+ } |
+ |
+ if ((slotID < 1) || (slotID > nSlots)) { |
+ error = CKR_SLOT_ID_INVALID; |
+ goto loser; |
+ } |
+ |
+ slots = nssCKFWInstance_GetSlots(fwInstance, &error); |
+ if ((NSSCKFWSlot **)NULL == slots) { |
+ goto loser; |
+ } |
+ |
+ fwSlot = slots[slotID - 1]; |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ pin.size = (PRUint32)ulPinLen; |
+ pin.data = (void *)pPin; |
+ label = (NSSUTF8 *)pLabel; /* identity conversion */ |
+ |
+ error = nssCKFWToken_InitToken(fwToken, &pin, label); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_TOKEN_NOT_PRESENT: |
+ if (fwToken) |
+ nssCKFWToken_Destroy(fwToken); |
+ break; |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_PIN_INCORRECT: |
+ case CKR_PIN_LOCKED: |
+ case CKR_SESSION_EXISTS: |
+ case CKR_SLOT_ID_INVALID: |
+ case CKR_TOKEN_NOT_RECOGNIZED: |
+ case CKR_TOKEN_WRITE_PROTECTED: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
+} |
+ |
+/* |
+ * NSSCKFWC_InitPIN |
+ * |
+ */ |
+NSS_IMPLEMENT CK_RV |
+NSSCKFWC_InitPIN( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_CHAR_PTR pPin, |
+ CK_ULONG ulPinLen) |
+{ |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSItem pin, *arg; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ if ((CK_CHAR_PTR)CK_NULL_PTR == pPin) { |
+ arg = (NSSItem *)NULL; |
+ } else { |
+ arg = &pin; |
+ pin.size = (PRUint32)ulPinLen; |
+ pin.data = (void *)pPin; |
+ } |
+ |
+ error = nssCKFWSession_InitPIN(fwSession, arg); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_PIN_INVALID: |
+ case CKR_PIN_LEN_RANGE: |
+ case CKR_SESSION_READ_ONLY: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_TOKEN_WRITE_PROTECTED: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
+} |
+ |
+/* |
+ * NSSCKFWC_SetPIN |
+ * |
+ */ |
+NSS_IMPLEMENT CK_RV |
+NSSCKFWC_SetPIN( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_CHAR_PTR pOldPin, |
+ CK_ULONG ulOldLen, |
+ CK_CHAR_PTR pNewPin, |
+ CK_ULONG ulNewLen) |
+{ |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSItem oldPin, newPin, *oldArg, *newArg; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ if ((CK_CHAR_PTR)CK_NULL_PTR == pOldPin) { |
+ oldArg = (NSSItem *)NULL; |
+ } else { |
+ oldArg = &oldPin; |
+ oldPin.size = (PRUint32)ulOldLen; |
+ oldPin.data = (void *)pOldPin; |
+ } |
+ |
+ if ((CK_CHAR_PTR)CK_NULL_PTR == pNewPin) { |
+ newArg = (NSSItem *)NULL; |
+ } else { |
+ newArg = &newPin; |
+ newPin.size = (PRUint32)ulNewLen; |
+ newPin.data = (void *)pNewPin; |
+ } |
+ |
+ error = nssCKFWSession_SetPIN(fwSession, oldArg, newArg); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_PIN_INCORRECT: |
+ case CKR_PIN_INVALID: |
+ case CKR_PIN_LEN_RANGE: |
+ case CKR_PIN_LOCKED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_SESSION_READ_ONLY: |
+ case CKR_TOKEN_WRITE_PROTECTED: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
+} |
/* |
* NSSCKFWC_OpenSession |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_OpenSession |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SLOT_ID slotID, |
- CK_FLAGS flags, |
- CK_VOID_PTR pApplication, |
- CK_NOTIFY Notify, |
- CK_SESSION_HANDLE_PTR phSession |
-) |
+NSSCKFWC_OpenSession( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SLOT_ID slotID, |
+ CK_FLAGS flags, |
+ CK_VOID_PTR pApplication, |
+ CK_NOTIFY Notify, |
+ CK_SESSION_HANDLE_PTR phSession) |
{ |
- CK_RV error = CKR_OK; |
- CK_ULONG nSlots; |
- NSSCKFWSlot **slots; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; |
- NSSCKFWSession *fwSession; |
- CK_BBOOL rw; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
- if( (CK_ULONG)0 == nSlots ) { |
- goto loser; |
- } |
- |
- if( (slotID < 1) || (slotID > nSlots) ) { |
- error = CKR_SLOT_ID_INVALID; |
- goto loser; |
- } |
- |
- if( flags & CKF_RW_SESSION ) { |
- rw = CK_TRUE; |
- } else { |
- rw = CK_FALSE; |
- } |
- |
- if( flags & CKF_SERIAL_SESSION ) { |
- ; |
- } else { |
- error = CKR_SESSION_PARALLEL_NOT_SUPPORTED; |
- goto loser; |
- } |
- |
- if( flags & ~(CKF_RW_SESSION|CKF_SERIAL_SESSION) ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- if( (CK_SESSION_HANDLE_PTR)CK_NULL_PTR == phSession ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- /* |
- * A purify error here indicates caller error. |
- */ |
- *phSession = (CK_SESSION_HANDLE)0; |
- |
- slots = nssCKFWInstance_GetSlots(fwInstance, &error); |
- if( (NSSCKFWSlot **)NULL == slots ) { |
- goto loser; |
- } |
- |
- fwSlot = slots[ slotID-1 ]; |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- fwSession = nssCKFWToken_OpenSession(fwToken, rw, pApplication, |
- Notify, &error); |
- if (!fwSession) { |
- goto loser; |
- } |
- |
- *phSession = nssCKFWInstance_CreateSessionHandle(fwInstance, |
- fwSession, &error); |
- if( (CK_SESSION_HANDLE)0 == *phSession ) { |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_SESSION_COUNT: |
- case CKR_SESSION_EXISTS: |
- case CKR_SESSION_PARALLEL_NOT_SUPPORTED: |
- case CKR_SESSION_READ_WRITE_SO_EXISTS: |
- case CKR_SLOT_ID_INVALID: |
- case CKR_TOKEN_NOT_PRESENT: |
- case CKR_TOKEN_NOT_RECOGNIZED: |
- case CKR_TOKEN_WRITE_PROTECTED: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ CK_RV error = CKR_OK; |
+ CK_ULONG nSlots; |
+ NSSCKFWSlot **slots; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; |
+ NSSCKFWSession *fwSession; |
+ CK_BBOOL rw; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
+ if ((CK_ULONG)0 == nSlots) { |
+ goto loser; |
+ } |
+ |
+ if ((slotID < 1) || (slotID > nSlots)) { |
+ error = CKR_SLOT_ID_INVALID; |
+ goto loser; |
+ } |
+ |
+ if (flags & CKF_RW_SESSION) { |
+ rw = CK_TRUE; |
+ } else { |
+ rw = CK_FALSE; |
+ } |
+ |
+ if (flags & CKF_SERIAL_SESSION) { |
+ ; |
+ } else { |
+ error = CKR_SESSION_PARALLEL_NOT_SUPPORTED; |
+ goto loser; |
+ } |
+ |
+ if (flags & ~(CKF_RW_SESSION | CKF_SERIAL_SESSION)) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ if ((CK_SESSION_HANDLE_PTR)CK_NULL_PTR == phSession) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ /* |
+ * A purify error here indicates caller error. |
+ */ |
+ *phSession = (CK_SESSION_HANDLE)0; |
+ |
+ slots = nssCKFWInstance_GetSlots(fwInstance, &error); |
+ if ((NSSCKFWSlot **)NULL == slots) { |
+ goto loser; |
+ } |
+ |
+ fwSlot = slots[slotID - 1]; |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWToken_OpenSession(fwToken, rw, pApplication, |
+ Notify, &error); |
+ if (!fwSession) { |
+ goto loser; |
+ } |
+ |
+ *phSession = nssCKFWInstance_CreateSessionHandle(fwInstance, |
+ fwSession, &error); |
+ if ((CK_SESSION_HANDLE)0 == *phSession) { |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_SESSION_COUNT: |
+ case CKR_SESSION_EXISTS: |
+ case CKR_SESSION_PARALLEL_NOT_SUPPORTED: |
+ case CKR_SESSION_READ_WRITE_SO_EXISTS: |
+ case CKR_SLOT_ID_INVALID: |
+ case CKR_TOKEN_NOT_PRESENT: |
+ case CKR_TOKEN_NOT_RECOGNIZED: |
+ case CKR_TOKEN_WRITE_PROTECTED: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -1376,58 +1355,56 @@ NSSCKFWC_OpenSession |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_CloseSession |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession |
-) |
+NSSCKFWC_CloseSession( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- nssCKFWInstance_DestroySessionHandle(fwInstance, hSession); |
- error = nssCKFWSession_Destroy(fwSession, CK_TRUE); |
- |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ nssCKFWInstance_DestroySessionHandle(fwInstance, hSession); |
+ error = nssCKFWSession_Destroy(fwSession, CK_TRUE); |
+ |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -1435,78 +1412,76 @@ NSSCKFWC_CloseSession |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_CloseAllSessions |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SLOT_ID slotID |
-) |
+NSSCKFWC_CloseAllSessions( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SLOT_ID slotID) |
{ |
- CK_RV error = CKR_OK; |
- CK_ULONG nSlots; |
- NSSCKFWSlot **slots; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
- if( (CK_ULONG)0 == nSlots ) { |
- goto loser; |
- } |
- |
- if( (slotID < 1) || (slotID > nSlots) ) { |
- error = CKR_SLOT_ID_INVALID; |
- goto loser; |
- } |
- |
- slots = nssCKFWInstance_GetSlots(fwInstance, &error); |
- if( (NSSCKFWSlot **)NULL == slots ) { |
- goto loser; |
- } |
- |
- fwSlot = slots[ slotID-1 ]; |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- error = nssCKFWToken_CloseAllSessions(fwToken); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_SLOT_ID_INVALID: |
- case CKR_TOKEN_NOT_PRESENT: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ CK_RV error = CKR_OK; |
+ CK_ULONG nSlots; |
+ NSSCKFWSlot **slots; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); |
+ if ((CK_ULONG)0 == nSlots) { |
+ goto loser; |
+ } |
+ |
+ if ((slotID < 1) || (slotID > nSlots)) { |
+ error = CKR_SLOT_ID_INVALID; |
+ goto loser; |
+ } |
+ |
+ slots = nssCKFWInstance_GetSlots(fwInstance, &error); |
+ if ((NSSCKFWSlot **)NULL == slots) { |
+ goto loser; |
+ } |
+ |
+ fwSlot = slots[slotID - 1]; |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWToken_CloseAllSessions(fwToken); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_SLOT_ID_INVALID: |
+ case CKR_TOKEN_NOT_PRESENT: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -1514,169 +1489,165 @@ NSSCKFWC_CloseAllSessions |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_GetSessionInfo |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_SESSION_INFO_PTR pInfo |
-) |
+NSSCKFWC_GetSessionInfo( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_SESSION_INFO_PTR pInfo) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWSlot *fwSlot; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_SESSION_INFO_PTR)CK_NULL_PTR == pInfo ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- /* |
- * A purify error here indicates caller error. |
- */ |
- (void)nsslibc_memset(pInfo, 0, sizeof(CK_SESSION_INFO)); |
- |
- fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
- if (!fwSlot) { |
- error = CKR_GENERAL_ERROR; |
- goto loser; |
- } |
- |
- pInfo->slotID = nssCKFWSlot_GetSlotID(fwSlot); |
- pInfo->state = nssCKFWSession_GetSessionState(fwSession); |
- |
- if( CK_TRUE == nssCKFWSession_IsRWSession(fwSession) ) { |
- pInfo->flags |= CKF_RW_SESSION; |
- } |
- |
- pInfo->flags |= CKF_SERIAL_SESSION; /* Always true */ |
- |
- pInfo->ulDeviceError = nssCKFWSession_GetDeviceError(fwSession); |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWSlot *fwSlot; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ if ((CK_SESSION_INFO_PTR)CK_NULL_PTR == pInfo) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ /* |
+ * A purify error here indicates caller error. |
+ */ |
+ (void)nsslibc_memset(pInfo, 0, sizeof(CK_SESSION_INFO)); |
+ |
+ fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
+ if (!fwSlot) { |
+ error = CKR_GENERAL_ERROR; |
+ goto loser; |
+ } |
+ |
+ pInfo->slotID = nssCKFWSlot_GetSlotID(fwSlot); |
+ pInfo->state = nssCKFWSession_GetSessionState(fwSession); |
+ |
+ if (CK_TRUE == nssCKFWSession_IsRWSession(fwSession)) { |
+ pInfo->flags |= CKF_RW_SESSION; |
+ } |
+ |
+ pInfo->flags |= CKF_SERIAL_SESSION; /* Always true */ |
+ |
+ pInfo->ulDeviceError = nssCKFWSession_GetDeviceError(fwSession); |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
-/* |
- * NSSCKFWC_GetOperationState |
- * |
- */ |
-NSS_IMPLEMENT CK_RV |
-NSSCKFWC_GetOperationState |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pOperationState, |
- CK_ULONG_PTR pulOperationStateLen |
-) |
-{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- CK_ULONG len; |
- NSSItem buf; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_ULONG_PTR)CK_NULL_PTR == pulOperationStateLen ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- len = nssCKFWSession_GetOperationStateLen(fwSession, &error); |
- if( ((CK_ULONG)0 == len) && (CKR_OK != error) ) { |
- goto loser; |
- } |
- |
- if( (CK_BYTE_PTR)CK_NULL_PTR == pOperationState ) { |
+/* |
+ * NSSCKFWC_GetOperationState |
+ * |
+ */ |
+NSS_IMPLEMENT CK_RV |
+NSSCKFWC_GetOperationState( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pOperationState, |
+ CK_ULONG_PTR pulOperationStateLen) |
+{ |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ CK_ULONG len; |
+ NSSItem buf; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ if ((CK_ULONG_PTR)CK_NULL_PTR == pulOperationStateLen) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ len = nssCKFWSession_GetOperationStateLen(fwSession, &error); |
+ if (((CK_ULONG)0 == len) && (CKR_OK != error)) { |
+ goto loser; |
+ } |
+ |
+ if ((CK_BYTE_PTR)CK_NULL_PTR == pOperationState) { |
+ *pulOperationStateLen = len; |
+ return CKR_OK; |
+ } |
+ |
+ if (*pulOperationStateLen < len) { |
+ *pulOperationStateLen = len; |
+ error = CKR_BUFFER_TOO_SMALL; |
+ goto loser; |
+ } |
+ |
+ buf.size = (PRUint32)*pulOperationStateLen; |
+ buf.data = (void *)pOperationState; |
*pulOperationStateLen = len; |
+ error = nssCKFWSession_GetOperationState(fwSession, &buf); |
+ |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
return CKR_OK; |
- } |
- if( *pulOperationStateLen < len ) { |
- *pulOperationStateLen = len; |
- error = CKR_BUFFER_TOO_SMALL; |
- goto loser; |
- } |
- |
- buf.size = (PRUint32)*pulOperationStateLen; |
- buf.data = (void *)pOperationState; |
- *pulOperationStateLen = len; |
- error = nssCKFWSession_GetOperationState(fwSession, &buf); |
- |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_STATE_UNSAVEABLE: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_STATE_UNSAVEABLE: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -1684,100 +1655,98 @@ NSSCKFWC_GetOperationState |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_SetOperationState |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pOperationState, |
- CK_ULONG ulOperationStateLen, |
- CK_OBJECT_HANDLE hEncryptionKey, |
- CK_OBJECT_HANDLE hAuthenticationKey |
-) |
+NSSCKFWC_SetOperationState( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pOperationState, |
+ CK_ULONG ulOperationStateLen, |
+ CK_OBJECT_HANDLE hEncryptionKey, |
+ CK_OBJECT_HANDLE hAuthenticationKey) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *eKey; |
- NSSCKFWObject *aKey; |
- NSSItem state; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- if( (CK_BYTE_PTR)CK_NULL_PTR == pOperationState ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- /* |
- * We could loop through the buffer, to catch any purify errors |
- * in a place with a "user error" note. |
- */ |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *eKey; |
+ NSSCKFWObject *aKey; |
+ NSSItem state; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ if ((CK_BYTE_PTR)CK_NULL_PTR == pOperationState) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ /* |
+ * We could loop through the buffer, to catch any purify errors |
+ * in a place with a "user error" note. |
+ */ |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ if ((CK_OBJECT_HANDLE)0 == hEncryptionKey) { |
+ eKey = (NSSCKFWObject *)NULL; |
+ } else { |
+ eKey = nssCKFWInstance_ResolveObjectHandle(fwInstance, hEncryptionKey); |
+ if (!eKey) { |
+ error = CKR_KEY_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ } |
+ |
+ if ((CK_OBJECT_HANDLE)0 == hAuthenticationKey) { |
+ aKey = (NSSCKFWObject *)NULL; |
+ } else { |
+ aKey = nssCKFWInstance_ResolveObjectHandle(fwInstance, hAuthenticationKey); |
+ if (!aKey) { |
+ error = CKR_KEY_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ } |
+ |
+ state.data = pOperationState; |
+ state.size = ulOperationStateLen; |
+ |
+ error = nssCKFWSession_SetOperationState(fwSession, &state, eKey, aKey); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_OBJECT_HANDLE)0 == hEncryptionKey ) { |
- eKey = (NSSCKFWObject *)NULL; |
- } else { |
- eKey = nssCKFWInstance_ResolveObjectHandle(fwInstance, hEncryptionKey); |
- if (!eKey) { |
- error = CKR_KEY_HANDLE_INVALID; |
- goto loser; |
- } |
- } |
- |
- if( (CK_OBJECT_HANDLE)0 == hAuthenticationKey ) { |
- aKey = (NSSCKFWObject *)NULL; |
- } else { |
- aKey = nssCKFWInstance_ResolveObjectHandle(fwInstance, hAuthenticationKey); |
- if (!aKey) { |
- error = CKR_KEY_HANDLE_INVALID; |
- goto loser; |
- } |
- } |
- |
- state.data = pOperationState; |
- state.size = ulOperationStateLen; |
- |
- error = nssCKFWSession_SetOperationState(fwSession, &state, eKey, aKey); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_KEY_CHANGED: |
- case CKR_KEY_NEEDED: |
- case CKR_KEY_NOT_NEEDED: |
- case CKR_SAVED_STATE_INVALID: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_KEY_CHANGED: |
+ case CKR_KEY_NEEDED: |
+ case CKR_KEY_NOT_NEEDED: |
+ case CKR_SAVED_STATE_INVALID: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -1785,77 +1754,75 @@ NSSCKFWC_SetOperationState |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_Login |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_USER_TYPE userType, |
- CK_CHAR_PTR pPin, |
- CK_ULONG ulPinLen |
-) |
+NSSCKFWC_Login( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_USER_TYPE userType, |
+ CK_CHAR_PTR pPin, |
+ CK_ULONG ulPinLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSItem pin, *arg; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_CHAR_PTR)CK_NULL_PTR == pPin ) { |
- arg = (NSSItem *)NULL; |
- } else { |
- arg = &pin; |
- pin.size = (PRUint32)ulPinLen; |
- pin.data = (void *)pPin; |
- } |
- |
- error = nssCKFWSession_Login(fwSession, userType, arg); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_PIN_EXPIRED: |
- case CKR_PIN_INCORRECT: |
- case CKR_PIN_LOCKED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_SESSION_READ_ONLY_EXISTS: |
- case CKR_USER_ALREADY_LOGGED_IN: |
- case CKR_USER_ANOTHER_ALREADY_LOGGED_IN: |
- case CKR_USER_PIN_NOT_INITIALIZED: |
- case CKR_USER_TOO_MANY_TYPES: |
- case CKR_USER_TYPE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSItem pin, *arg; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ if ((CK_CHAR_PTR)CK_NULL_PTR == pPin) { |
+ arg = (NSSItem *)NULL; |
+ } else { |
+ arg = &pin; |
+ pin.size = (PRUint32)ulPinLen; |
+ pin.data = (void *)pPin; |
+ } |
+ |
+ error = nssCKFWSession_Login(fwSession, userType, arg); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_PIN_EXPIRED: |
+ case CKR_PIN_INCORRECT: |
+ case CKR_PIN_LOCKED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_SESSION_READ_ONLY_EXISTS: |
+ case CKR_USER_ALREADY_LOGGED_IN: |
+ case CKR_USER_ANOTHER_ALREADY_LOGGED_IN: |
+ case CKR_USER_PIN_NOT_INITIALIZED: |
+ case CKR_USER_TOO_MANY_TYPES: |
+ case CKR_USER_TYPE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -1863,57 +1830,55 @@ NSSCKFWC_Login |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_Logout |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession |
-) |
+NSSCKFWC_Logout( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_Logout(fwSession); |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_Logout(fwSession); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -1921,85 +1886,83 @@ NSSCKFWC_Logout |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_CreateObject |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_ATTRIBUTE_PTR pTemplate, |
- CK_ULONG ulCount, |
- CK_OBJECT_HANDLE_PTR phObject |
-) |
+NSSCKFWC_CreateObject( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_ATTRIBUTE_PTR pTemplate, |
+ CK_ULONG ulCount, |
+ CK_OBJECT_HANDLE_PTR phObject) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwObject; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_OBJECT_HANDLE_PTR)CK_NULL_PTR == phObject ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- /* |
- * A purify error here indicates caller error. |
- */ |
- *phObject = (CK_OBJECT_HANDLE)0; |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwObject; |
- fwObject = nssCKFWSession_CreateObject(fwSession, pTemplate, |
- ulCount, &error); |
- if (!fwObject) { |
- goto loser; |
- } |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
- *phObject = nssCKFWInstance_CreateObjectHandle(fwInstance, fwObject, &error); |
- if( (CK_OBJECT_HANDLE)0 == *phObject ) { |
- nssCKFWObject_Destroy(fwObject); |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_ATTRIBUTE_READ_ONLY: |
- case CKR_ATTRIBUTE_TYPE_INVALID: |
- case CKR_ATTRIBUTE_VALUE_INVALID: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_SESSION_READ_ONLY: |
- case CKR_TEMPLATE_INCOMPLETE: |
- case CKR_TEMPLATE_INCONSISTENT: |
- case CKR_TOKEN_WRITE_PROTECTED: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ if ((CK_OBJECT_HANDLE_PTR)CK_NULL_PTR == phObject) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ /* |
+ * A purify error here indicates caller error. |
+ */ |
+ *phObject = (CK_OBJECT_HANDLE)0; |
+ |
+ fwObject = nssCKFWSession_CreateObject(fwSession, pTemplate, |
+ ulCount, &error); |
+ if (!fwObject) { |
+ goto loser; |
+ } |
+ |
+ *phObject = nssCKFWInstance_CreateObjectHandle(fwInstance, fwObject, &error); |
+ if ((CK_OBJECT_HANDLE)0 == *phObject) { |
+ nssCKFWObject_Destroy(fwObject); |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_ATTRIBUTE_READ_ONLY: |
+ case CKR_ATTRIBUTE_TYPE_INVALID: |
+ case CKR_ATTRIBUTE_VALUE_INVALID: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_SESSION_READ_ONLY: |
+ case CKR_TEMPLATE_INCOMPLETE: |
+ case CKR_TEMPLATE_INCONSISTENT: |
+ case CKR_TOKEN_WRITE_PROTECTED: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -2007,94 +1970,92 @@ NSSCKFWC_CreateObject |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_CopyObject |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_OBJECT_HANDLE hObject, |
- CK_ATTRIBUTE_PTR pTemplate, |
- CK_ULONG ulCount, |
- CK_OBJECT_HANDLE_PTR phNewObject |
-) |
+NSSCKFWC_CopyObject( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_OBJECT_HANDLE hObject, |
+ CK_ATTRIBUTE_PTR pTemplate, |
+ CK_ULONG ulCount, |
+ CK_OBJECT_HANDLE_PTR phNewObject) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwObject; |
- NSSCKFWObject *fwNewObject; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_OBJECT_HANDLE_PTR)CK_NULL_PTR == phNewObject ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- /* |
- * A purify error here indicates caller error. |
- */ |
- *phNewObject = (CK_OBJECT_HANDLE)0; |
- |
- fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hObject); |
- if (!fwObject) { |
- error = CKR_OBJECT_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwNewObject = nssCKFWSession_CopyObject(fwSession, fwObject, |
- pTemplate, ulCount, &error); |
- if (!fwNewObject) { |
- goto loser; |
- } |
- |
- *phNewObject = nssCKFWInstance_CreateObjectHandle(fwInstance, |
- fwNewObject, &error); |
- if( (CK_OBJECT_HANDLE)0 == *phNewObject ) { |
- nssCKFWObject_Destroy(fwNewObject); |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_ATTRIBUTE_READ_ONLY: |
- case CKR_ATTRIBUTE_TYPE_INVALID: |
- case CKR_ATTRIBUTE_VALUE_INVALID: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OBJECT_HANDLE_INVALID: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_SESSION_READ_ONLY: |
- case CKR_TEMPLATE_INCONSISTENT: |
- case CKR_TOKEN_WRITE_PROTECTED: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwObject; |
+ NSSCKFWObject *fwNewObject; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ if ((CK_OBJECT_HANDLE_PTR)CK_NULL_PTR == phNewObject) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ /* |
+ * A purify error here indicates caller error. |
+ */ |
+ *phNewObject = (CK_OBJECT_HANDLE)0; |
+ |
+ fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hObject); |
+ if (!fwObject) { |
+ error = CKR_OBJECT_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwNewObject = nssCKFWSession_CopyObject(fwSession, fwObject, |
+ pTemplate, ulCount, &error); |
+ if (!fwNewObject) { |
+ goto loser; |
+ } |
+ |
+ *phNewObject = nssCKFWInstance_CreateObjectHandle(fwInstance, |
+ fwNewObject, &error); |
+ if ((CK_OBJECT_HANDLE)0 == *phNewObject) { |
+ nssCKFWObject_Destroy(fwNewObject); |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_ATTRIBUTE_READ_ONLY: |
+ case CKR_ATTRIBUTE_TYPE_INVALID: |
+ case CKR_ATTRIBUTE_VALUE_INVALID: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OBJECT_HANDLE_INVALID: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_SESSION_READ_ONLY: |
+ case CKR_TEMPLATE_INCONSISTENT: |
+ case CKR_TOKEN_WRITE_PROTECTED: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -2102,65 +2063,63 @@ NSSCKFWC_CopyObject |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_DestroyObject |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_OBJECT_HANDLE hObject |
-) |
+NSSCKFWC_DestroyObject( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_OBJECT_HANDLE hObject) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwObject; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hObject); |
- if (!fwObject) { |
- error = CKR_OBJECT_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- nssCKFWInstance_DestroyObjectHandle(fwInstance, hObject); |
- nssCKFWObject_Destroy(fwObject); |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OBJECT_HANDLE_INVALID: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_SESSION_READ_ONLY: |
- case CKR_TOKEN_WRITE_PROTECTED: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwObject; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hObject); |
+ if (!fwObject) { |
+ error = CKR_OBJECT_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ nssCKFWInstance_DestroyObjectHandle(fwInstance, hObject); |
+ nssCKFWObject_Destroy(fwObject); |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OBJECT_HANDLE_INVALID: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_SESSION_READ_ONLY: |
+ case CKR_TOKEN_WRITE_PROTECTED: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -2168,77 +2127,75 @@ NSSCKFWC_DestroyObject |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_GetObjectSize |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_OBJECT_HANDLE hObject, |
- CK_ULONG_PTR pulSize |
-) |
+NSSCKFWC_GetObjectSize( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_OBJECT_HANDLE hObject, |
+ CK_ULONG_PTR pulSize) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwObject; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hObject); |
- if (!fwObject) { |
- error = CKR_OBJECT_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_ULONG_PTR)CK_NULL_PTR == pulSize ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- /* |
- * A purify error here indicates caller error. |
- */ |
- *pulSize = (CK_ULONG)0; |
- |
- *pulSize = nssCKFWObject_GetObjectSize(fwObject, &error); |
- if( ((CK_ULONG)0 == *pulSize) && (CKR_OK != error) ) { |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_INFORMATION_SENSITIVE: |
- case CKR_OBJECT_HANDLE_INVALID: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwObject; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hObject); |
+ if (!fwObject) { |
+ error = CKR_OBJECT_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ if ((CK_ULONG_PTR)CK_NULL_PTR == pulSize) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ /* |
+ * A purify error here indicates caller error. |
+ */ |
+ *pulSize = (CK_ULONG)0; |
+ |
+ *pulSize = nssCKFWObject_GetObjectSize(fwObject, &error); |
+ if (((CK_ULONG)0 == *pulSize) && (CKR_OK != error)) { |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_INFORMATION_SENSITIVE: |
+ case CKR_OBJECT_HANDLE_INVALID: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -2246,229 +2203,233 @@ NSSCKFWC_GetObjectSize |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_GetAttributeValue |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_OBJECT_HANDLE hObject, |
- CK_ATTRIBUTE_PTR pTemplate, |
- CK_ULONG ulCount |
-) |
+NSSCKFWC_GetAttributeValue( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_OBJECT_HANDLE hObject, |
+ CK_ATTRIBUTE_PTR pTemplate, |
+ CK_ULONG ulCount) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwObject; |
- CK_BBOOL sensitive = CK_FALSE; |
- CK_BBOOL invalid = CK_FALSE; |
- CK_BBOOL tooSmall = CK_FALSE; |
- CK_ULONG i; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hObject); |
- if (!fwObject) { |
- error = CKR_OBJECT_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_ATTRIBUTE_PTR)CK_NULL_PTR == pTemplate ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- for( i = 0; i < ulCount; i++ ) { |
- CK_ULONG size = nssCKFWObject_GetAttributeSize(fwObject, |
- pTemplate[i].type, &error); |
- if( (CK_ULONG)0 == size ) { |
- switch( error ) { |
- case CKR_ATTRIBUTE_SENSITIVE: |
- case CKR_INFORMATION_SENSITIVE: |
- sensitive = CK_TRUE; |
- pTemplate[i].ulValueLen = (CK_ULONG)(-1); |
- continue; |
- case CKR_ATTRIBUTE_TYPE_INVALID: |
- invalid = CK_TRUE; |
- pTemplate[i].ulValueLen = (CK_ULONG)(-1); |
- continue; |
- case CKR_OK: |
- break; |
- default: |
- goto loser; |
- } |
- } |
- |
- if( (CK_VOID_PTR)CK_NULL_PTR == pTemplate[i].pValue ) { |
- pTemplate[i].ulValueLen = size; |
- } else { |
- NSSItem it, *p; |
- |
- if( pTemplate[i].ulValueLen < size ) { |
- tooSmall = CK_TRUE; |
- continue; |
- } |
- |
- it.size = (PRUint32)pTemplate[i].ulValueLen; |
- it.data = (void *)pTemplate[i].pValue; |
- p = nssCKFWObject_GetAttribute(fwObject, pTemplate[i].type, &it, |
- (NSSArena *)NULL, &error); |
- if (!p) { |
- switch( error ) { |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwObject; |
+ CK_BBOOL sensitive = CK_FALSE; |
+ CK_BBOOL invalid = CK_FALSE; |
+ CK_BBOOL tooSmall = CK_FALSE; |
+ CK_ULONG i; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hObject); |
+ if (!fwObject) { |
+ error = CKR_OBJECT_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ if ((CK_ATTRIBUTE_PTR)CK_NULL_PTR == pTemplate) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ for (i = 0; i < ulCount; i++) { |
+ CK_ULONG size = nssCKFWObject_GetAttributeSize(fwObject, |
+ pTemplate[i].type, &error); |
+ if ((CK_ULONG)0 == size) { |
+ switch (error) { |
+ case CKR_ATTRIBUTE_SENSITIVE: |
+ case CKR_INFORMATION_SENSITIVE: |
+ sensitive = |
+ CK_TRUE; |
+ pTemplate[i].ulValueLen = |
+ (CK_ULONG)(-1); |
+ continue; |
+ case CKR_ATTRIBUTE_TYPE_INVALID: |
+ invalid = |
+ CK_TRUE; |
+ pTemplate[i].ulValueLen = |
+ (CK_ULONG)(-1); |
+ continue; |
+ case CKR_OK: |
+ break; |
+ default: |
+ goto loser; |
+ } |
+ } |
+ |
+ if ((CK_VOID_PTR)CK_NULL_PTR == pTemplate[i].pValue) { |
+ pTemplate[i].ulValueLen = size; |
+ } else { |
+ NSSItem it, *p; |
+ |
+ if (pTemplate[i].ulValueLen < size) { |
+ tooSmall = CK_TRUE; |
+ continue; |
+ } |
+ |
+ it.size = (PRUint32)pTemplate[i].ulValueLen; |
+ it.data = (void *)pTemplate[i].pValue; |
+ p = nssCKFWObject_GetAttribute(fwObject, pTemplate[i].type, &it, |
+ (NSSArena *)NULL, &error); |
+ if (!p) { |
+ switch (error) { |
+ case CKR_ATTRIBUTE_SENSITIVE: |
+ case CKR_INFORMATION_SENSITIVE: |
+ sensitive = |
+ CK_TRUE; |
+ pTemplate[i].ulValueLen = |
+ (CK_ULONG)(-1); |
+ continue; |
+ case CKR_ATTRIBUTE_TYPE_INVALID: |
+ invalid = |
+ CK_TRUE; |
+ pTemplate[i].ulValueLen = |
+ (CK_ULONG)(-1); |
+ continue; |
+ default: |
+ goto loser; |
+ } |
+ } |
+ |
+ pTemplate[i].ulValueLen = size; |
+ } |
+ } |
+ |
+ if (sensitive) { |
+ error = CKR_ATTRIBUTE_SENSITIVE; |
+ goto loser; |
+ } else if (invalid) { |
+ error = CKR_ATTRIBUTE_TYPE_INVALID; |
+ goto loser; |
+ } else if (tooSmall) { |
+ error = CKR_BUFFER_TOO_SMALL; |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
case CKR_ATTRIBUTE_SENSITIVE: |
- case CKR_INFORMATION_SENSITIVE: |
- sensitive = CK_TRUE; |
- pTemplate[i].ulValueLen = (CK_ULONG)(-1); |
- continue; |
case CKR_ATTRIBUTE_TYPE_INVALID: |
- invalid = CK_TRUE; |
- pTemplate[i].ulValueLen = (CK_ULONG)(-1); |
- continue; |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OBJECT_HANDLE_INVALID: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
+} |
+ |
+/* |
+ * NSSCKFWC_SetAttributeValue |
+ * |
+ */ |
+NSS_IMPLEMENT CK_RV |
+NSSCKFWC_SetAttributeValue( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_OBJECT_HANDLE hObject, |
+ CK_ATTRIBUTE_PTR pTemplate, |
+ CK_ULONG ulCount) |
+{ |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwObject; |
+ CK_ULONG i; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hObject); |
+ if (!fwObject) { |
+ error = CKR_OBJECT_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ if ((CK_ATTRIBUTE_PTR)CK_NULL_PTR == pTemplate) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ for (i = 0; i < ulCount; i++) { |
+ NSSItem value; |
+ |
+ value.data = pTemplate[i].pValue; |
+ value.size = pTemplate[i].ulValueLen; |
+ |
+ error = nssCKFWObject_SetAttribute(fwObject, fwSession, |
+ pTemplate[i].type, &value); |
+ |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_ATTRIBUTE_READ_ONLY: |
+ case CKR_ATTRIBUTE_TYPE_INVALID: |
+ case CKR_ATTRIBUTE_VALUE_INVALID: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OBJECT_HANDLE_INVALID: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_SESSION_READ_ONLY: |
+ case CKR_TEMPLATE_INCONSISTENT: |
+ case CKR_TOKEN_WRITE_PROTECTED: |
+ break; |
default: |
- goto loser; |
- } |
- } |
- |
- pTemplate[i].ulValueLen = size; |
- } |
- } |
- |
- if( sensitive ) { |
- error = CKR_ATTRIBUTE_SENSITIVE; |
- goto loser; |
- } else if( invalid ) { |
- error = CKR_ATTRIBUTE_TYPE_INVALID; |
- goto loser; |
- } else if( tooSmall ) { |
- error = CKR_BUFFER_TOO_SMALL; |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_ATTRIBUTE_SENSITIVE: |
- case CKR_ATTRIBUTE_TYPE_INVALID: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OBJECT_HANDLE_INVALID: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
-} |
- |
-/* |
- * NSSCKFWC_SetAttributeValue |
- * |
- */ |
-NSS_IMPLEMENT CK_RV |
-NSSCKFWC_SetAttributeValue |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_OBJECT_HANDLE hObject, |
- CK_ATTRIBUTE_PTR pTemplate, |
- CK_ULONG ulCount |
-) |
-{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwObject; |
- CK_ULONG i; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hObject); |
- if (!fwObject) { |
- error = CKR_OBJECT_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_ATTRIBUTE_PTR)CK_NULL_PTR == pTemplate ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- for (i=0; i < ulCount; i++) { |
- NSSItem value; |
- |
- value.data = pTemplate[i].pValue; |
- value.size = pTemplate[i].ulValueLen; |
- |
- error = nssCKFWObject_SetAttribute(fwObject, fwSession, |
- pTemplate[i].type, &value); |
- |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_ATTRIBUTE_READ_ONLY: |
- case CKR_ATTRIBUTE_TYPE_INVALID: |
- case CKR_ATTRIBUTE_VALUE_INVALID: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OBJECT_HANDLE_INVALID: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_SESSION_READ_ONLY: |
- case CKR_TEMPLATE_INCONSISTENT: |
- case CKR_TOKEN_WRITE_PROTECTED: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -2476,85 +2437,83 @@ NSSCKFWC_SetAttributeValue |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_FindObjectsInit |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_ATTRIBUTE_PTR pTemplate, |
- CK_ULONG ulCount |
-) |
+NSSCKFWC_FindObjectsInit( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_ATTRIBUTE_PTR pTemplate, |
+ CK_ULONG ulCount) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWFindObjects *fwFindObjects; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- if( ((CK_ATTRIBUTE_PTR)CK_NULL_PTR == pTemplate) && (ulCount != 0) ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- fwFindObjects = nssCKFWSession_GetFWFindObjects(fwSession, &error); |
- if (fwFindObjects) { |
- error = CKR_OPERATION_ACTIVE; |
- goto loser; |
- } |
- |
- if( CKR_OPERATION_NOT_INITIALIZED != error ) { |
- goto loser; |
- } |
- |
- fwFindObjects = nssCKFWSession_FindObjectsInit(fwSession, |
- pTemplate, ulCount, &error); |
- if (!fwFindObjects) { |
- goto loser; |
- } |
- |
- error = nssCKFWSession_SetFWFindObjects(fwSession, fwFindObjects); |
- |
- if( CKR_OK != error ) { |
- nssCKFWFindObjects_Destroy(fwFindObjects); |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_ATTRIBUTE_TYPE_INVALID: |
- case CKR_ATTRIBUTE_VALUE_INVALID: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_ACTIVE: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWFindObjects *fwFindObjects; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ if (((CK_ATTRIBUTE_PTR)CK_NULL_PTR == pTemplate) && (ulCount != 0)) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ fwFindObjects = nssCKFWSession_GetFWFindObjects(fwSession, &error); |
+ if (fwFindObjects) { |
+ error = CKR_OPERATION_ACTIVE; |
+ goto loser; |
+ } |
+ |
+ if (CKR_OPERATION_NOT_INITIALIZED != error) { |
+ goto loser; |
+ } |
+ |
+ fwFindObjects = nssCKFWSession_FindObjectsInit(fwSession, |
+ pTemplate, ulCount, &error); |
+ if (!fwFindObjects) { |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_SetFWFindObjects(fwSession, fwFindObjects); |
+ |
+ if (CKR_OK != error) { |
+ nssCKFWFindObjects_Destroy(fwFindObjects); |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_ATTRIBUTE_TYPE_INVALID: |
+ case CKR_ATTRIBUTE_VALUE_INVALID: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_ACTIVE: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -2562,93 +2521,91 @@ NSSCKFWC_FindObjectsInit |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_FindObjects |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_OBJECT_HANDLE_PTR phObject, |
- CK_ULONG ulMaxObjectCount, |
- CK_ULONG_PTR pulObjectCount |
-) |
+NSSCKFWC_FindObjects( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_OBJECT_HANDLE_PTR phObject, |
+ CK_ULONG ulMaxObjectCount, |
+ CK_ULONG_PTR pulObjectCount) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWFindObjects *fwFindObjects; |
- CK_ULONG i; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_OBJECT_HANDLE_PTR)CK_NULL_PTR == phObject ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- /* |
- * A purify error here indicates caller error. |
- */ |
- (void)nsslibc_memset(phObject, 0, sizeof(CK_OBJECT_HANDLE) * ulMaxObjectCount); |
- *pulObjectCount = (CK_ULONG)0; |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWFindObjects *fwFindObjects; |
+ CK_ULONG i; |
- fwFindObjects = nssCKFWSession_GetFWFindObjects(fwSession, &error); |
- if (!fwFindObjects) { |
- goto loser; |
- } |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
- for( i = 0; i < ulMaxObjectCount; i++ ) { |
- NSSCKFWObject *fwObject = nssCKFWFindObjects_Next(fwFindObjects, |
- NULL, &error); |
- if (!fwObject) { |
- break; |
- } |
- |
- phObject[i] = nssCKFWInstance_FindObjectHandle(fwInstance, fwObject); |
- if( (CK_OBJECT_HANDLE)0 == phObject[i] ) { |
- phObject[i] = nssCKFWInstance_CreateObjectHandle(fwInstance, fwObject, &error); |
- } |
- if( (CK_OBJECT_HANDLE)0 == phObject[i] ) { |
- /* This isn't right either, is it? */ |
- nssCKFWObject_Destroy(fwObject); |
- goto loser; |
- } |
- } |
- |
- *pulObjectCount = i; |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ if ((CK_OBJECT_HANDLE_PTR)CK_NULL_PTR == phObject) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ /* |
+ * A purify error here indicates caller error. |
+ */ |
+ (void)nsslibc_memset(phObject, 0, sizeof(CK_OBJECT_HANDLE) * ulMaxObjectCount); |
+ *pulObjectCount = (CK_ULONG)0; |
+ |
+ fwFindObjects = nssCKFWSession_GetFWFindObjects(fwSession, &error); |
+ if (!fwFindObjects) { |
+ goto loser; |
+ } |
+ |
+ for (i = 0; i < ulMaxObjectCount; i++) { |
+ NSSCKFWObject *fwObject = nssCKFWFindObjects_Next(fwFindObjects, |
+ NULL, &error); |
+ if (!fwObject) { |
+ break; |
+ } |
+ |
+ phObject[i] = nssCKFWInstance_FindObjectHandle(fwInstance, fwObject); |
+ if ((CK_OBJECT_HANDLE)0 == phObject[i]) { |
+ phObject[i] = nssCKFWInstance_CreateObjectHandle(fwInstance, fwObject, &error); |
+ } |
+ if ((CK_OBJECT_HANDLE)0 == phObject[i]) { |
+ /* This isn't right either, is it? */ |
+ nssCKFWObject_Destroy(fwObject); |
+ goto loser; |
+ } |
+ } |
+ |
+ *pulObjectCount = i; |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -2656,67 +2613,65 @@ NSSCKFWC_FindObjects |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_FindObjectsFinal |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession |
-) |
+NSSCKFWC_FindObjectsFinal( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWFindObjects *fwFindObjects; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwFindObjects = nssCKFWSession_GetFWFindObjects(fwSession, &error); |
- if (!fwFindObjects) { |
- error = CKR_OPERATION_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- nssCKFWFindObjects_Destroy(fwFindObjects); |
- error = nssCKFWSession_SetFWFindObjects(fwSession, |
- (NSSCKFWFindObjects *)NULL); |
- |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWFindObjects *fwFindObjects; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwFindObjects = nssCKFWSession_GetFWFindObjects(fwSession, &error); |
+ if (!fwFindObjects) { |
+ error = CKR_OPERATION_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ nssCKFWFindObjects_Destroy(fwFindObjects); |
+ error = nssCKFWSession_SetFWFindObjects(fwSession, |
+ (NSSCKFWFindObjects *)NULL); |
+ |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -2724,97 +2679,95 @@ NSSCKFWC_FindObjectsFinal |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_EncryptInit |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_MECHANISM_PTR pMechanism, |
- CK_OBJECT_HANDLE hKey |
-) |
+NSSCKFWC_EncryptInit( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_MECHANISM_PTR pMechanism, |
+ CK_OBJECT_HANDLE hKey) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwObject; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken; |
- NSSCKFWMechanism *fwMechanism; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); |
- if (!fwObject) { |
- error = CKR_KEY_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
- if (!fwSlot) { |
- error = CKR_GENERAL_ERROR; /* should never happen! */ |
- goto loser; |
- } |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
- if (!fwMechanism) { |
- goto loser; |
- } |
- |
- error = nssCKFWMechanism_EncryptInit(fwMechanism, pMechanism, |
- fwSession, fwObject); |
- |
- nssCKFWMechanism_Destroy(fwMechanism); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwObject; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken; |
+ NSSCKFWMechanism *fwMechanism; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); |
+ if (!fwObject) { |
+ error = CKR_KEY_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
+ if (!fwSlot) { |
+ error = CKR_GENERAL_ERROR; /* should never happen! */ |
+ goto loser; |
+ } |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
+ if (!fwMechanism) { |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWMechanism_EncryptInit(fwMechanism, pMechanism, |
+ fwSession, fwObject); |
+ |
+ nssCKFWMechanism_Destroy(fwMechanism); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_KEY_FUNCTION_NOT_PERMITTED: |
- case CKR_KEY_HANDLE_INVALID: |
- case CKR_KEY_SIZE_RANGE: |
- case CKR_KEY_TYPE_INCONSISTENT: |
- case CKR_MECHANISM_INVALID: |
- case CKR_MECHANISM_PARAM_INVALID: |
- case CKR_OPERATION_ACTIVE: |
- case CKR_PIN_EXPIRED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_KEY_FUNCTION_NOT_PERMITTED: |
+ case CKR_KEY_HANDLE_INVALID: |
+ case CKR_KEY_SIZE_RANGE: |
+ case CKR_KEY_TYPE_INCONSISTENT: |
+ case CKR_MECHANISM_INVALID: |
+ case CKR_MECHANISM_PARAM_INVALID: |
+ case CKR_OPERATION_ACTIVE: |
+ case CKR_PIN_EXPIRED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -2822,64 +2775,62 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_Encrypt |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pData, |
- CK_ULONG ulDataLen, |
- CK_BYTE_PTR pEncryptedData, |
- CK_ULONG_PTR pulEncryptedDataLen |
-) |
+NSSCKFWC_Encrypt( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pData, |
+ CK_ULONG ulDataLen, |
+ CK_BYTE_PTR pEncryptedData, |
+ CK_ULONG_PTR pulEncryptedDataLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_UpdateFinal(fwSession, |
- NSSCKFWCryptoOperationType_Encrypt, |
- NSSCKFWCryptoOperationState_EncryptDecrypt, |
- pData, ulDataLen, pEncryptedData, pulEncryptedDataLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_UpdateFinal(fwSession, |
+ NSSCKFWCryptoOperationType_Encrypt, |
+ NSSCKFWCryptoOperationState_EncryptDecrypt, |
+ pData, ulDataLen, pEncryptedData, pulEncryptedDataLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DATA_INVALID: |
- case CKR_DATA_LEN_RANGE: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_SESSION_CLOSED: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DATA_INVALID: |
+ case CKR_DATA_LEN_RANGE: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_SESSION_CLOSED: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -2887,63 +2838,61 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_EncryptUpdate |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pPart, |
- CK_ULONG ulPartLen, |
- CK_BYTE_PTR pEncryptedPart, |
- CK_ULONG_PTR pulEncryptedPartLen |
-) |
+NSSCKFWC_EncryptUpdate( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pPart, |
+ CK_ULONG ulPartLen, |
+ CK_BYTE_PTR pEncryptedPart, |
+ CK_ULONG_PTR pulEncryptedPartLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_Update(fwSession, |
- NSSCKFWCryptoOperationType_Encrypt, |
- NSSCKFWCryptoOperationState_EncryptDecrypt, |
- pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_Update(fwSession, |
+ NSSCKFWCryptoOperationType_Encrypt, |
+ NSSCKFWCryptoOperationState_EncryptDecrypt, |
+ pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DATA_LEN_RANGE: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DATA_LEN_RANGE: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -2951,61 +2900,59 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_EncryptFinal |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pLastEncryptedPart, |
- CK_ULONG_PTR pulLastEncryptedPartLen |
-) |
+NSSCKFWC_EncryptFinal( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pLastEncryptedPart, |
+ CK_ULONG_PTR pulLastEncryptedPartLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_Final(fwSession, |
- NSSCKFWCryptoOperationType_Encrypt, |
- NSSCKFWCryptoOperationState_EncryptDecrypt, |
- pLastEncryptedPart, pulLastEncryptedPartLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_Final(fwSession, |
+ NSSCKFWCryptoOperationType_Encrypt, |
+ NSSCKFWCryptoOperationState_EncryptDecrypt, |
+ pLastEncryptedPart, pulLastEncryptedPartLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DATA_LEN_RANGE: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DATA_LEN_RANGE: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -3013,97 +2960,95 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_DecryptInit |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_MECHANISM_PTR pMechanism, |
- CK_OBJECT_HANDLE hKey |
-) |
+NSSCKFWC_DecryptInit( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_MECHANISM_PTR pMechanism, |
+ CK_OBJECT_HANDLE hKey) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwObject; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken; |
- NSSCKFWMechanism *fwMechanism; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); |
- if (!fwObject) { |
- error = CKR_KEY_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
- if (!fwSlot) { |
- error = CKR_GENERAL_ERROR; /* should never happen! */ |
- goto loser; |
- } |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
- if (!fwMechanism) { |
- goto loser; |
- } |
- |
- error = nssCKFWMechanism_DecryptInit(fwMechanism, pMechanism, |
- fwSession, fwObject); |
- nssCKFWMechanism_Destroy(fwMechanism); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwObject; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken; |
+ NSSCKFWMechanism *fwMechanism; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); |
+ if (!fwObject) { |
+ error = CKR_KEY_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
+ if (!fwSlot) { |
+ error = CKR_GENERAL_ERROR; /* should never happen! */ |
+ goto loser; |
+ } |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
+ if (!fwMechanism) { |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWMechanism_DecryptInit(fwMechanism, pMechanism, |
+ fwSession, fwObject); |
+ nssCKFWMechanism_Destroy(fwMechanism); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_KEY_FUNCTION_NOT_PERMITTED: |
- case CKR_KEY_HANDLE_INVALID: |
- case CKR_KEY_SIZE_RANGE: |
- case CKR_KEY_TYPE_INCONSISTENT: |
- case CKR_MECHANISM_INVALID: |
- case CKR_MECHANISM_PARAM_INVALID: |
- case CKR_OPERATION_ACTIVE: |
- case CKR_PIN_EXPIRED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_KEY_FUNCTION_NOT_PERMITTED: |
+ case CKR_KEY_HANDLE_INVALID: |
+ case CKR_KEY_SIZE_RANGE: |
+ case CKR_KEY_TYPE_INCONSISTENT: |
+ case CKR_MECHANISM_INVALID: |
+ case CKR_MECHANISM_PARAM_INVALID: |
+ case CKR_OPERATION_ACTIVE: |
+ case CKR_PIN_EXPIRED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -3111,71 +3056,69 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_Decrypt |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pEncryptedData, |
- CK_ULONG ulEncryptedDataLen, |
- CK_BYTE_PTR pData, |
- CK_ULONG_PTR pulDataLen |
-) |
+NSSCKFWC_Decrypt( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pEncryptedData, |
+ CK_ULONG ulEncryptedDataLen, |
+ CK_BYTE_PTR pData, |
+ CK_ULONG_PTR pulDataLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_UpdateFinal(fwSession, |
- NSSCKFWCryptoOperationType_Decrypt, |
- NSSCKFWCryptoOperationState_EncryptDecrypt, |
- pEncryptedData, ulEncryptedDataLen, pData, pulDataLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_UpdateFinal(fwSession, |
+ NSSCKFWCryptoOperationType_Decrypt, |
+ NSSCKFWCryptoOperationState_EncryptDecrypt, |
+ pEncryptedData, ulEncryptedDataLen, pData, pulDataLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_ENCRYPTED_DATA_INVALID: |
- case CKR_ENCRYPTED_DATA_LEN_RANGE: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- case CKR_DATA_LEN_RANGE: |
- error = CKR_ENCRYPTED_DATA_LEN_RANGE; |
- break; |
- case CKR_DATA_INVALID: |
- error = CKR_ENCRYPTED_DATA_INVALID; |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_ENCRYPTED_DATA_INVALID: |
+ case CKR_ENCRYPTED_DATA_LEN_RANGE: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ case CKR_DATA_LEN_RANGE: |
+ error = CKR_ENCRYPTED_DATA_LEN_RANGE; |
+ break; |
+ case CKR_DATA_INVALID: |
+ error = CKR_ENCRYPTED_DATA_INVALID; |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -3183,71 +3126,69 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_DecryptUpdate |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pEncryptedPart, |
- CK_ULONG ulEncryptedPartLen, |
- CK_BYTE_PTR pPart, |
- CK_ULONG_PTR pulPartLen |
-) |
+NSSCKFWC_DecryptUpdate( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pEncryptedPart, |
+ CK_ULONG ulEncryptedPartLen, |
+ CK_BYTE_PTR pPart, |
+ CK_ULONG_PTR pulPartLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_Update(fwSession, |
- NSSCKFWCryptoOperationType_Decrypt, |
- NSSCKFWCryptoOperationState_EncryptDecrypt, |
- pEncryptedPart, ulEncryptedPartLen, pPart, pulPartLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_Update(fwSession, |
+ NSSCKFWCryptoOperationType_Decrypt, |
+ NSSCKFWCryptoOperationState_EncryptDecrypt, |
+ pEncryptedPart, ulEncryptedPartLen, pPart, pulPartLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_ENCRYPTED_DATA_INVALID: |
- case CKR_ENCRYPTED_DATA_LEN_RANGE: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- case CKR_DATA_LEN_RANGE: |
- error = CKR_ENCRYPTED_DATA_LEN_RANGE; |
- break; |
- case CKR_DATA_INVALID: |
- error = CKR_ENCRYPTED_DATA_INVALID; |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_ENCRYPTED_DATA_INVALID: |
+ case CKR_ENCRYPTED_DATA_LEN_RANGE: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ case CKR_DATA_LEN_RANGE: |
+ error = CKR_ENCRYPTED_DATA_LEN_RANGE; |
+ break; |
+ case CKR_DATA_INVALID: |
+ error = CKR_ENCRYPTED_DATA_INVALID; |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -3255,69 +3196,67 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_DecryptFinal |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pLastPart, |
- CK_ULONG_PTR pulLastPartLen |
-) |
+NSSCKFWC_DecryptFinal( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pLastPart, |
+ CK_ULONG_PTR pulLastPartLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_Final(fwSession, |
- NSSCKFWCryptoOperationType_Decrypt, |
- NSSCKFWCryptoOperationState_EncryptDecrypt, |
- pLastPart, pulLastPartLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_Final(fwSession, |
+ NSSCKFWCryptoOperationType_Decrypt, |
+ NSSCKFWCryptoOperationState_EncryptDecrypt, |
+ pLastPart, pulLastPartLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_ENCRYPTED_DATA_INVALID: |
- case CKR_ENCRYPTED_DATA_LEN_RANGE: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- case CKR_DATA_LEN_RANGE: |
- error = CKR_ENCRYPTED_DATA_LEN_RANGE; |
- break; |
- case CKR_DATA_INVALID: |
- error = CKR_ENCRYPTED_DATA_INVALID; |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_ENCRYPTED_DATA_INVALID: |
+ case CKR_ENCRYPTED_DATA_LEN_RANGE: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ case CKR_DATA_LEN_RANGE: |
+ error = CKR_ENCRYPTED_DATA_LEN_RANGE; |
+ break; |
+ case CKR_DATA_INVALID: |
+ error = CKR_ENCRYPTED_DATA_INVALID; |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -3325,85 +3264,83 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_DigestInit |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_MECHANISM_PTR pMechanism |
-) |
+NSSCKFWC_DigestInit( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_MECHANISM_PTR pMechanism) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken; |
- NSSCKFWMechanism *fwMechanism; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
- if (!fwSlot) { |
- error = CKR_GENERAL_ERROR; /* should never happen! */ |
- goto loser; |
- } |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
- if (!fwMechanism) { |
- goto loser; |
- } |
- |
- error = nssCKFWMechanism_DigestInit(fwMechanism, pMechanism, fwSession); |
- |
- nssCKFWMechanism_Destroy(fwMechanism); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken; |
+ NSSCKFWMechanism *fwMechanism; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
+ if (!fwSlot) { |
+ error = CKR_GENERAL_ERROR; /* should never happen! */ |
+ goto loser; |
+ } |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
+ if (!fwMechanism) { |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWMechanism_DigestInit(fwMechanism, pMechanism, fwSession); |
+ |
+ nssCKFWMechanism_Destroy(fwMechanism); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_MECHANISM_INVALID: |
- case CKR_MECHANISM_PARAM_INVALID: |
- case CKR_OPERATION_ACTIVE: |
- case CKR_PIN_EXPIRED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_MECHANISM_INVALID: |
+ case CKR_MECHANISM_PARAM_INVALID: |
+ case CKR_OPERATION_ACTIVE: |
+ case CKR_PIN_EXPIRED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -3411,62 +3348,60 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_Digest |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pData, |
- CK_ULONG ulDataLen, |
- CK_BYTE_PTR pDigest, |
- CK_ULONG_PTR pulDigestLen |
-) |
+NSSCKFWC_Digest( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pData, |
+ CK_ULONG ulDataLen, |
+ CK_BYTE_PTR pDigest, |
+ CK_ULONG_PTR pulDigestLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_UpdateFinal(fwSession, |
- NSSCKFWCryptoOperationType_Digest, |
- NSSCKFWCryptoOperationState_Digest, |
- pData, ulDataLen, pDigest, pulDigestLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_UpdateFinal(fwSession, |
+ NSSCKFWCryptoOperationType_Digest, |
+ NSSCKFWCryptoOperationState_Digest, |
+ pData, ulDataLen, pDigest, pulDigestLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -3474,59 +3409,57 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_DigestUpdate |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pData, |
- CK_ULONG ulDataLen |
-) |
+NSSCKFWC_DigestUpdate( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pData, |
+ CK_ULONG ulDataLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_DigestUpdate(fwSession, |
- NSSCKFWCryptoOperationType_Digest, |
- NSSCKFWCryptoOperationState_Digest, |
- pData, ulDataLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_DigestUpdate(fwSession, |
+ NSSCKFWCryptoOperationType_Digest, |
+ NSSCKFWCryptoOperationState_Digest, |
+ pData, ulDataLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -3534,64 +3467,62 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_DigestKey |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_OBJECT_HANDLE hKey |
-) |
+NSSCKFWC_DigestKey( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_OBJECT_HANDLE hKey) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwObject; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); |
- if (!fwObject) { |
- error = CKR_KEY_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_DigestKey(fwSession, fwObject); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwObject; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); |
+ if (!fwObject) { |
+ error = CKR_KEY_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_DigestKey(fwSession, fwObject); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_KEY_HANDLE_INVALID: |
- case CKR_KEY_INDIGESTIBLE: |
- case CKR_KEY_SIZE_RANGE: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_KEY_HANDLE_INVALID: |
+ case CKR_KEY_INDIGESTIBLE: |
+ case CKR_KEY_SIZE_RANGE: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -3599,60 +3530,58 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_DigestFinal |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pDigest, |
- CK_ULONG_PTR pulDigestLen |
-) |
+NSSCKFWC_DigestFinal( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pDigest, |
+ CK_ULONG_PTR pulDigestLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_Final(fwSession, |
- NSSCKFWCryptoOperationType_Digest, |
- NSSCKFWCryptoOperationState_Digest, |
- pDigest, pulDigestLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_Final(fwSession, |
+ NSSCKFWCryptoOperationType_Digest, |
+ NSSCKFWCryptoOperationState_Digest, |
+ pDigest, pulDigestLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -3660,98 +3589,96 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_SignInit |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_MECHANISM_PTR pMechanism, |
- CK_OBJECT_HANDLE hKey |
-) |
+NSSCKFWC_SignInit( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_MECHANISM_PTR pMechanism, |
+ CK_OBJECT_HANDLE hKey) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwObject; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken; |
- NSSCKFWMechanism *fwMechanism; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); |
- if (!fwObject) { |
- error = CKR_KEY_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
- if (!fwSlot) { |
- error = CKR_GENERAL_ERROR; /* should never happen! */ |
- goto loser; |
- } |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
- if (!fwMechanism) { |
- goto loser; |
- } |
- |
- error = nssCKFWMechanism_SignInit(fwMechanism, pMechanism, fwSession, |
- fwObject); |
- |
- nssCKFWMechanism_Destroy(fwMechanism); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwObject; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken; |
+ NSSCKFWMechanism *fwMechanism; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); |
+ if (!fwObject) { |
+ error = CKR_KEY_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
+ if (!fwSlot) { |
+ error = CKR_GENERAL_ERROR; /* should never happen! */ |
+ goto loser; |
+ } |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
+ if (!fwMechanism) { |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWMechanism_SignInit(fwMechanism, pMechanism, fwSession, |
+ fwObject); |
+ |
+ nssCKFWMechanism_Destroy(fwMechanism); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_KEY_FUNCTION_NOT_PERMITTED: |
- case CKR_KEY_HANDLE_INVALID: |
- case CKR_KEY_SIZE_RANGE: |
- case CKR_KEY_TYPE_INCONSISTENT: |
- case CKR_MECHANISM_INVALID: |
- case CKR_MECHANISM_PARAM_INVALID: |
- case CKR_OPERATION_ACTIVE: |
- case CKR_PIN_EXPIRED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_KEY_FUNCTION_NOT_PERMITTED: |
+ case CKR_KEY_HANDLE_INVALID: |
+ case CKR_KEY_SIZE_RANGE: |
+ case CKR_KEY_TYPE_INCONSISTENT: |
+ case CKR_MECHANISM_INVALID: |
+ case CKR_MECHANISM_PARAM_INVALID: |
+ case CKR_OPERATION_ACTIVE: |
+ case CKR_PIN_EXPIRED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -3759,66 +3686,64 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_Sign |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pData, |
- CK_ULONG ulDataLen, |
- CK_BYTE_PTR pSignature, |
- CK_ULONG_PTR pulSignatureLen |
-) |
+NSSCKFWC_Sign( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pData, |
+ CK_ULONG ulDataLen, |
+ CK_BYTE_PTR pSignature, |
+ CK_ULONG_PTR pulSignatureLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_UpdateFinal(fwSession, |
- NSSCKFWCryptoOperationType_Sign, |
- NSSCKFWCryptoOperationState_SignVerify, |
- pData, ulDataLen, pSignature, pulSignatureLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_UpdateFinal(fwSession, |
+ NSSCKFWCryptoOperationType_Sign, |
+ NSSCKFWCryptoOperationState_SignVerify, |
+ pData, ulDataLen, pSignature, pulSignatureLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DATA_INVALID: |
- case CKR_DATA_LEN_RANGE: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- case CKR_FUNCTION_REJECTED: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DATA_INVALID: |
+ case CKR_DATA_LEN_RANGE: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ case CKR_FUNCTION_REJECTED: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -3826,61 +3751,59 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_SignUpdate |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pPart, |
- CK_ULONG ulPartLen |
-) |
+NSSCKFWC_SignUpdate( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pPart, |
+ CK_ULONG ulPartLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_DigestUpdate(fwSession, |
- NSSCKFWCryptoOperationType_Sign, |
- NSSCKFWCryptoOperationState_SignVerify, |
- pPart, ulPartLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_DigestUpdate(fwSession, |
+ NSSCKFWCryptoOperationType_Sign, |
+ NSSCKFWCryptoOperationState_SignVerify, |
+ pPart, ulPartLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DATA_LEN_RANGE: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DATA_LEN_RANGE: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -3888,63 +3811,61 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_SignFinal |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pSignature, |
- CK_ULONG_PTR pulSignatureLen |
-) |
+NSSCKFWC_SignFinal( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pSignature, |
+ CK_ULONG_PTR pulSignatureLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_Final(fwSession, |
- NSSCKFWCryptoOperationType_Sign, |
- NSSCKFWCryptoOperationState_SignVerify, |
- pSignature, pulSignatureLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_Final(fwSession, |
+ NSSCKFWCryptoOperationType_Sign, |
+ NSSCKFWCryptoOperationState_SignVerify, |
+ pSignature, pulSignatureLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DATA_LEN_RANGE: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- case CKR_FUNCTION_REJECTED: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DATA_LEN_RANGE: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ case CKR_FUNCTION_REJECTED: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -3952,98 +3873,96 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_SignRecoverInit |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_MECHANISM_PTR pMechanism, |
- CK_OBJECT_HANDLE hKey |
-) |
+NSSCKFWC_SignRecoverInit( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_MECHANISM_PTR pMechanism, |
+ CK_OBJECT_HANDLE hKey) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwObject; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken; |
- NSSCKFWMechanism *fwMechanism; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); |
- if (!fwObject) { |
- error = CKR_KEY_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
- if (!fwSlot) { |
- error = CKR_GENERAL_ERROR; /* should never happen! */ |
- goto loser; |
- } |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
- if (!fwMechanism) { |
- goto loser; |
- } |
- |
- error = nssCKFWMechanism_SignRecoverInit(fwMechanism, pMechanism, fwSession, |
- fwObject); |
- |
- nssCKFWMechanism_Destroy(fwMechanism); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwObject; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken; |
+ NSSCKFWMechanism *fwMechanism; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); |
+ if (!fwObject) { |
+ error = CKR_KEY_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
+ if (!fwSlot) { |
+ error = CKR_GENERAL_ERROR; /* should never happen! */ |
+ goto loser; |
+ } |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
+ if (!fwMechanism) { |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWMechanism_SignRecoverInit(fwMechanism, pMechanism, fwSession, |
+ fwObject); |
+ |
+ nssCKFWMechanism_Destroy(fwMechanism); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_KEY_FUNCTION_NOT_PERMITTED: |
- case CKR_KEY_HANDLE_INVALID: |
- case CKR_KEY_SIZE_RANGE: |
- case CKR_KEY_TYPE_INCONSISTENT: |
- case CKR_MECHANISM_INVALID: |
- case CKR_MECHANISM_PARAM_INVALID: |
- case CKR_OPERATION_ACTIVE: |
- case CKR_PIN_EXPIRED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_KEY_FUNCTION_NOT_PERMITTED: |
+ case CKR_KEY_HANDLE_INVALID: |
+ case CKR_KEY_SIZE_RANGE: |
+ case CKR_KEY_TYPE_INCONSISTENT: |
+ case CKR_MECHANISM_INVALID: |
+ case CKR_MECHANISM_PARAM_INVALID: |
+ case CKR_OPERATION_ACTIVE: |
+ case CKR_PIN_EXPIRED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -4051,65 +3970,63 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_SignRecover |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pData, |
- CK_ULONG ulDataLen, |
- CK_BYTE_PTR pSignature, |
- CK_ULONG_PTR pulSignatureLen |
-) |
+NSSCKFWC_SignRecover( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pData, |
+ CK_ULONG ulDataLen, |
+ CK_BYTE_PTR pSignature, |
+ CK_ULONG_PTR pulSignatureLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_UpdateFinal(fwSession, |
- NSSCKFWCryptoOperationType_SignRecover, |
- NSSCKFWCryptoOperationState_SignVerify, |
- pData, ulDataLen, pSignature, pulSignatureLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_UpdateFinal(fwSession, |
+ NSSCKFWCryptoOperationType_SignRecover, |
+ NSSCKFWCryptoOperationState_SignVerify, |
+ pData, ulDataLen, pSignature, pulSignatureLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DATA_INVALID: |
- case CKR_DATA_LEN_RANGE: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DATA_INVALID: |
+ case CKR_DATA_LEN_RANGE: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -4117,98 +4034,96 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_VerifyInit |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_MECHANISM_PTR pMechanism, |
- CK_OBJECT_HANDLE hKey |
-) |
+NSSCKFWC_VerifyInit( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_MECHANISM_PTR pMechanism, |
+ CK_OBJECT_HANDLE hKey) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwObject; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken; |
- NSSCKFWMechanism *fwMechanism; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); |
- if (!fwObject) { |
- error = CKR_KEY_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
- if (!fwSlot) { |
- error = CKR_GENERAL_ERROR; /* should never happen! */ |
- goto loser; |
- } |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
- if (!fwMechanism) { |
- goto loser; |
- } |
- |
- error = nssCKFWMechanism_VerifyInit(fwMechanism, pMechanism, fwSession, |
- fwObject); |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwObject; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken; |
+ NSSCKFWMechanism *fwMechanism; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
- nssCKFWMechanism_Destroy(fwMechanism); |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); |
+ if (!fwObject) { |
+ error = CKR_KEY_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
+ if (!fwSlot) { |
+ error = CKR_GENERAL_ERROR; /* should never happen! */ |
+ goto loser; |
+ } |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
+ if (!fwMechanism) { |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWMechanism_VerifyInit(fwMechanism, pMechanism, fwSession, |
+ fwObject); |
+ |
+ nssCKFWMechanism_Destroy(fwMechanism); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_KEY_FUNCTION_NOT_PERMITTED: |
- case CKR_KEY_HANDLE_INVALID: |
- case CKR_KEY_SIZE_RANGE: |
- case CKR_KEY_TYPE_INCONSISTENT: |
- case CKR_MECHANISM_INVALID: |
- case CKR_MECHANISM_PARAM_INVALID: |
- case CKR_OPERATION_ACTIVE: |
- case CKR_PIN_EXPIRED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_KEY_FUNCTION_NOT_PERMITTED: |
+ case CKR_KEY_HANDLE_INVALID: |
+ case CKR_KEY_SIZE_RANGE: |
+ case CKR_KEY_TYPE_INCONSISTENT: |
+ case CKR_MECHANISM_INVALID: |
+ case CKR_MECHANISM_PARAM_INVALID: |
+ case CKR_OPERATION_ACTIVE: |
+ case CKR_PIN_EXPIRED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -4216,65 +4131,63 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_Verify |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pData, |
- CK_ULONG ulDataLen, |
- CK_BYTE_PTR pSignature, |
- CK_ULONG ulSignatureLen |
-) |
+NSSCKFWC_Verify( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pData, |
+ CK_ULONG ulDataLen, |
+ CK_BYTE_PTR pSignature, |
+ CK_ULONG ulSignatureLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_UpdateFinal(fwSession, |
- NSSCKFWCryptoOperationType_Verify, |
- NSSCKFWCryptoOperationState_SignVerify, |
- pData, ulDataLen, pSignature, &ulSignatureLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_UpdateFinal(fwSession, |
+ NSSCKFWCryptoOperationType_Verify, |
+ NSSCKFWCryptoOperationState_SignVerify, |
+ pData, ulDataLen, pSignature, &ulSignatureLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DATA_INVALID: |
- case CKR_DATA_LEN_RANGE: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_SIGNATURE_INVALID: |
- case CKR_SIGNATURE_LEN_RANGE: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DATA_INVALID: |
+ case CKR_DATA_LEN_RANGE: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_SIGNATURE_INVALID: |
+ case CKR_SIGNATURE_LEN_RANGE: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -4282,60 +4195,58 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_VerifyUpdate |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pPart, |
- CK_ULONG ulPartLen |
-) |
+NSSCKFWC_VerifyUpdate( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pPart, |
+ CK_ULONG ulPartLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_DigestUpdate(fwSession, |
- NSSCKFWCryptoOperationType_Verify, |
- NSSCKFWCryptoOperationState_SignVerify, |
- pPart, ulPartLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_DigestUpdate(fwSession, |
+ NSSCKFWCryptoOperationType_Verify, |
+ NSSCKFWCryptoOperationState_SignVerify, |
+ pPart, ulPartLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DATA_LEN_RANGE: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DATA_LEN_RANGE: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -4343,62 +4254,60 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_VerifyFinal |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pSignature, |
- CK_ULONG ulSignatureLen |
-) |
+NSSCKFWC_VerifyFinal( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pSignature, |
+ CK_ULONG ulSignatureLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_Final(fwSession, |
- NSSCKFWCryptoOperationType_Verify, |
- NSSCKFWCryptoOperationState_SignVerify, |
- pSignature, &ulSignatureLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_Final(fwSession, |
+ NSSCKFWCryptoOperationType_Verify, |
+ NSSCKFWCryptoOperationState_SignVerify, |
+ pSignature, &ulSignatureLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DATA_LEN_RANGE: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_SIGNATURE_INVALID: |
- case CKR_SIGNATURE_LEN_RANGE: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DATA_LEN_RANGE: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_SIGNATURE_INVALID: |
+ case CKR_SIGNATURE_LEN_RANGE: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -4406,98 +4315,96 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_VerifyRecoverInit |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_MECHANISM_PTR pMechanism, |
- CK_OBJECT_HANDLE hKey |
-) |
+NSSCKFWC_VerifyRecoverInit( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_MECHANISM_PTR pMechanism, |
+ CK_OBJECT_HANDLE hKey) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwObject; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken; |
- NSSCKFWMechanism *fwMechanism; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); |
- if (!fwObject) { |
- error = CKR_KEY_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
- if (!fwSlot) { |
- error = CKR_GENERAL_ERROR; /* should never happen! */ |
- goto loser; |
- } |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
- if (!fwMechanism) { |
- goto loser; |
- } |
- |
- error = nssCKFWMechanism_VerifyRecoverInit(fwMechanism, pMechanism, |
- fwSession, fwObject); |
- |
- nssCKFWMechanism_Destroy(fwMechanism); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwObject; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken; |
+ NSSCKFWMechanism *fwMechanism; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); |
+ if (!fwObject) { |
+ error = CKR_KEY_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
+ if (!fwSlot) { |
+ error = CKR_GENERAL_ERROR; /* should never happen! */ |
+ goto loser; |
+ } |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
+ if (!fwMechanism) { |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWMechanism_VerifyRecoverInit(fwMechanism, pMechanism, |
+ fwSession, fwObject); |
+ |
+ nssCKFWMechanism_Destroy(fwMechanism); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_KEY_FUNCTION_NOT_PERMITTED: |
- case CKR_KEY_HANDLE_INVALID: |
- case CKR_KEY_SIZE_RANGE: |
- case CKR_KEY_TYPE_INCONSISTENT: |
- case CKR_MECHANISM_INVALID: |
- case CKR_MECHANISM_PARAM_INVALID: |
- case CKR_OPERATION_ACTIVE: |
- case CKR_PIN_EXPIRED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_SESSION_CLOSED: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_KEY_FUNCTION_NOT_PERMITTED: |
+ case CKR_KEY_HANDLE_INVALID: |
+ case CKR_KEY_SIZE_RANGE: |
+ case CKR_KEY_TYPE_INCONSISTENT: |
+ case CKR_MECHANISM_INVALID: |
+ case CKR_MECHANISM_PARAM_INVALID: |
+ case CKR_OPERATION_ACTIVE: |
+ case CKR_PIN_EXPIRED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -4505,64 +4412,62 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_VerifyRecover |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pSignature, |
- CK_ULONG ulSignatureLen, |
- CK_BYTE_PTR pData, |
- CK_ULONG_PTR pulDataLen |
-) |
+NSSCKFWC_VerifyRecover( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pSignature, |
+ CK_ULONG ulSignatureLen, |
+ CK_BYTE_PTR pData, |
+ CK_ULONG_PTR pulDataLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_UpdateFinal(fwSession, |
- NSSCKFWCryptoOperationType_VerifyRecover, |
- NSSCKFWCryptoOperationState_SignVerify, |
- pSignature, ulSignatureLen, pData, pulDataLen); |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_UpdateFinal(fwSession, |
+ NSSCKFWCryptoOperationType_VerifyRecover, |
+ NSSCKFWCryptoOperationState_SignVerify, |
+ pSignature, ulSignatureLen, pData, pulDataLen); |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DATA_INVALID: |
- case CKR_DATA_LEN_RANGE: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_SIGNATURE_INVALID: |
- case CKR_SIGNATURE_LEN_RANGE: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DATA_INVALID: |
+ case CKR_DATA_LEN_RANGE: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_SIGNATURE_INVALID: |
+ case CKR_SIGNATURE_LEN_RANGE: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -4570,64 +4475,62 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_DigestEncryptUpdate |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pPart, |
- CK_ULONG ulPartLen, |
- CK_BYTE_PTR pEncryptedPart, |
- CK_ULONG_PTR pulEncryptedPartLen |
-) |
+NSSCKFWC_DigestEncryptUpdate( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pPart, |
+ CK_ULONG ulPartLen, |
+ CK_BYTE_PTR pEncryptedPart, |
+ CK_ULONG_PTR pulEncryptedPartLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_UpdateCombo(fwSession, |
- NSSCKFWCryptoOperationType_Encrypt, |
- NSSCKFWCryptoOperationType_Digest, |
- NSSCKFWCryptoOperationState_Digest, |
- pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_UpdateCombo(fwSession, |
+ NSSCKFWCryptoOperationType_Encrypt, |
+ NSSCKFWCryptoOperationType_Digest, |
+ NSSCKFWCryptoOperationState_Digest, |
+ pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DATA_LEN_RANGE: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DATA_LEN_RANGE: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -4635,71 +4538,69 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_DecryptDigestUpdate |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pEncryptedPart, |
- CK_ULONG ulEncryptedPartLen, |
- CK_BYTE_PTR pPart, |
- CK_ULONG_PTR pulPartLen |
-) |
+NSSCKFWC_DecryptDigestUpdate( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pEncryptedPart, |
+ CK_ULONG ulEncryptedPartLen, |
+ CK_BYTE_PTR pPart, |
+ CK_ULONG_PTR pulPartLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_UpdateCombo(fwSession, |
- NSSCKFWCryptoOperationType_Decrypt, |
- NSSCKFWCryptoOperationType_Digest, |
- NSSCKFWCryptoOperationState_Digest, |
- pEncryptedPart, ulEncryptedPartLen, pPart, pulPartLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_UpdateCombo(fwSession, |
+ NSSCKFWCryptoOperationType_Decrypt, |
+ NSSCKFWCryptoOperationType_Digest, |
+ NSSCKFWCryptoOperationState_Digest, |
+ pEncryptedPart, ulEncryptedPartLen, pPart, pulPartLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_ENCRYPTED_DATA_INVALID: |
- case CKR_ENCRYPTED_DATA_LEN_RANGE: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- case CKR_DATA_INVALID: |
- error = CKR_ENCRYPTED_DATA_INVALID; |
- break; |
- case CKR_DATA_LEN_RANGE: |
- error = CKR_ENCRYPTED_DATA_LEN_RANGE; |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_ENCRYPTED_DATA_INVALID: |
+ case CKR_ENCRYPTED_DATA_LEN_RANGE: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ case CKR_DATA_INVALID: |
+ error = CKR_ENCRYPTED_DATA_INVALID; |
+ break; |
+ case CKR_DATA_LEN_RANGE: |
+ error = CKR_ENCRYPTED_DATA_LEN_RANGE; |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -4707,65 +4608,63 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_SignEncryptUpdate |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pPart, |
- CK_ULONG ulPartLen, |
- CK_BYTE_PTR pEncryptedPart, |
- CK_ULONG_PTR pulEncryptedPartLen |
-) |
+NSSCKFWC_SignEncryptUpdate( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pPart, |
+ CK_ULONG ulPartLen, |
+ CK_BYTE_PTR pEncryptedPart, |
+ CK_ULONG_PTR pulEncryptedPartLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_UpdateCombo(fwSession, |
- NSSCKFWCryptoOperationType_Encrypt, |
- NSSCKFWCryptoOperationType_Sign, |
- NSSCKFWCryptoOperationState_SignVerify, |
- pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_UpdateCombo(fwSession, |
+ NSSCKFWCryptoOperationType_Encrypt, |
+ NSSCKFWCryptoOperationType_Sign, |
+ NSSCKFWCryptoOperationState_SignVerify, |
+ pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DATA_LEN_RANGE: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DATA_LEN_RANGE: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -4773,69 +4672,67 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_DecryptVerifyUpdate |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pEncryptedPart, |
- CK_ULONG ulEncryptedPartLen, |
- CK_BYTE_PTR pPart, |
- CK_ULONG_PTR pulPartLen |
-) |
+NSSCKFWC_DecryptVerifyUpdate( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pEncryptedPart, |
+ CK_ULONG ulEncryptedPartLen, |
+ CK_BYTE_PTR pPart, |
+ CK_ULONG_PTR pulPartLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- error = nssCKFWSession_UpdateCombo(fwSession, |
- NSSCKFWCryptoOperationType_Decrypt, |
- NSSCKFWCryptoOperationType_Verify, |
- NSSCKFWCryptoOperationState_SignVerify, |
- pEncryptedPart, ulEncryptedPartLen, pPart, pulPartLen); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWSession_UpdateCombo(fwSession, |
+ NSSCKFWCryptoOperationType_Decrypt, |
+ NSSCKFWCryptoOperationType_Verify, |
+ NSSCKFWCryptoOperationState_SignVerify, |
+ pEncryptedPart, ulEncryptedPartLen, pPart, pulPartLen); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DATA_LEN_RANGE: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_ENCRYPTED_DATA_INVALID: |
- case CKR_ENCRYPTED_DATA_LEN_RANGE: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_NOT_INITIALIZED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- break; |
- case CKR_DATA_INVALID: |
- error = CKR_ENCRYPTED_DATA_INVALID; |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DATA_LEN_RANGE: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_ENCRYPTED_DATA_INVALID: |
+ case CKR_ENCRYPTED_DATA_LEN_RANGE: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_NOT_INITIALIZED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ break; |
+ case CKR_DATA_INVALID: |
+ error = CKR_ENCRYPTED_DATA_INVALID; |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -4843,106 +4740,104 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_GenerateKey |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_MECHANISM_PTR pMechanism, |
- CK_ATTRIBUTE_PTR pTemplate, |
- CK_ULONG ulCount, |
- CK_OBJECT_HANDLE_PTR phKey |
-) |
+NSSCKFWC_GenerateKey( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_MECHANISM_PTR pMechanism, |
+ CK_ATTRIBUTE_PTR pTemplate, |
+ CK_ULONG ulCount, |
+ CK_OBJECT_HANDLE_PTR phKey) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwObject; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken; |
- NSSCKFWMechanism *fwMechanism; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
- if (!fwSlot) { |
- error = CKR_GENERAL_ERROR; /* should never happen! */ |
- goto loser; |
- } |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
- if (!fwMechanism) { |
- goto loser; |
- } |
- |
- fwObject = nssCKFWMechanism_GenerateKey( |
- fwMechanism, |
- pMechanism, |
- fwSession, |
- pTemplate, |
- ulCount, |
- &error); |
- |
- nssCKFWMechanism_Destroy(fwMechanism); |
- if (!fwObject) { |
- goto loser; |
- } |
- *phKey= nssCKFWInstance_CreateObjectHandle(fwInstance, fwObject, &error); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwObject; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken; |
+ NSSCKFWMechanism *fwMechanism; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
+ if (!fwSlot) { |
+ error = CKR_GENERAL_ERROR; /* should never happen! */ |
+ goto loser; |
+ } |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
+ if (!fwMechanism) { |
+ goto loser; |
+ } |
+ |
+ fwObject = nssCKFWMechanism_GenerateKey( |
+ fwMechanism, |
+ pMechanism, |
+ fwSession, |
+ pTemplate, |
+ ulCount, |
+ &error); |
+ |
+ nssCKFWMechanism_Destroy(fwMechanism); |
+ if (!fwObject) { |
+ goto loser; |
+ } |
+ *phKey = nssCKFWInstance_CreateObjectHandle(fwInstance, fwObject, &error); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_ATTRIBUTE_READ_ONLY: |
- case CKR_ATTRIBUTE_TYPE_INVALID: |
- case CKR_ATTRIBUTE_VALUE_INVALID: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_MECHANISM_INVALID: |
- case CKR_MECHANISM_PARAM_INVALID: |
- case CKR_OPERATION_ACTIVE: |
- case CKR_PIN_EXPIRED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_SESSION_READ_ONLY: |
- case CKR_TEMPLATE_INCOMPLETE: |
- case CKR_TEMPLATE_INCONSISTENT: |
- case CKR_TOKEN_WRITE_PROTECTED: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_ATTRIBUTE_READ_ONLY: |
+ case CKR_ATTRIBUTE_TYPE_INVALID: |
+ case CKR_ATTRIBUTE_VALUE_INVALID: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_MECHANISM_INVALID: |
+ case CKR_MECHANISM_PARAM_INVALID: |
+ case CKR_OPERATION_ACTIVE: |
+ case CKR_PIN_EXPIRED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_SESSION_READ_ONLY: |
+ case CKR_TEMPLATE_INCOMPLETE: |
+ case CKR_TEMPLATE_INCONSISTENT: |
+ case CKR_TOKEN_WRITE_PROTECTED: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -4950,121 +4845,119 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_GenerateKeyPair |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_MECHANISM_PTR pMechanism, |
- CK_ATTRIBUTE_PTR pPublicKeyTemplate, |
- CK_ULONG ulPublicKeyAttributeCount, |
- CK_ATTRIBUTE_PTR pPrivateKeyTemplate, |
- CK_ULONG ulPrivateKeyAttributeCount, |
- CK_OBJECT_HANDLE_PTR phPublicKey, |
- CK_OBJECT_HANDLE_PTR phPrivateKey |
-) |
+NSSCKFWC_GenerateKeyPair( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_MECHANISM_PTR pMechanism, |
+ CK_ATTRIBUTE_PTR pPublicKeyTemplate, |
+ CK_ULONG ulPublicKeyAttributeCount, |
+ CK_ATTRIBUTE_PTR pPrivateKeyTemplate, |
+ CK_ULONG ulPrivateKeyAttributeCount, |
+ CK_OBJECT_HANDLE_PTR phPublicKey, |
+ CK_OBJECT_HANDLE_PTR phPrivateKey) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwPrivateKeyObject; |
- NSSCKFWObject *fwPublicKeyObject; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken; |
- NSSCKFWMechanism *fwMechanism; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
- if (!fwSlot) { |
- error = CKR_GENERAL_ERROR; /* should never happen! */ |
- goto loser; |
- } |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
- if (!fwMechanism) { |
- goto loser; |
- } |
- |
- error= nssCKFWMechanism_GenerateKeyPair( |
- fwMechanism, |
- pMechanism, |
- fwSession, |
- pPublicKeyTemplate, |
- ulPublicKeyAttributeCount, |
- pPublicKeyTemplate, |
- ulPublicKeyAttributeCount, |
- &fwPublicKeyObject, |
- &fwPrivateKeyObject); |
- |
- nssCKFWMechanism_Destroy(fwMechanism); |
- if (CKR_OK != error) { |
- goto loser; |
- } |
- *phPublicKey = nssCKFWInstance_CreateObjectHandle(fwInstance, |
- fwPublicKeyObject, |
- &error); |
- if (CKR_OK != error) { |
- goto loser; |
- } |
- *phPrivateKey = nssCKFWInstance_CreateObjectHandle(fwInstance, |
- fwPrivateKeyObject, |
- &error); |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwPrivateKeyObject; |
+ NSSCKFWObject *fwPublicKeyObject; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken; |
+ NSSCKFWMechanism *fwMechanism; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
+ if (!fwSlot) { |
+ error = CKR_GENERAL_ERROR; /* should never happen! */ |
+ goto loser; |
+ } |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
+ if (!fwMechanism) { |
+ goto loser; |
+ } |
+ |
+ error = nssCKFWMechanism_GenerateKeyPair( |
+ fwMechanism, |
+ pMechanism, |
+ fwSession, |
+ pPublicKeyTemplate, |
+ ulPublicKeyAttributeCount, |
+ pPublicKeyTemplate, |
+ ulPublicKeyAttributeCount, |
+ &fwPublicKeyObject, |
+ &fwPrivateKeyObject); |
+ |
+ nssCKFWMechanism_Destroy(fwMechanism); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ *phPublicKey = nssCKFWInstance_CreateObjectHandle(fwInstance, |
+ fwPublicKeyObject, |
+ &error); |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ *phPrivateKey = nssCKFWInstance_CreateObjectHandle(fwInstance, |
+ fwPrivateKeyObject, |
+ &error); |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_ATTRIBUTE_READ_ONLY: |
- case CKR_ATTRIBUTE_TYPE_INVALID: |
- case CKR_ATTRIBUTE_VALUE_INVALID: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_DOMAIN_PARAMS_INVALID: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_MECHANISM_INVALID: |
- case CKR_MECHANISM_PARAM_INVALID: |
- case CKR_OPERATION_ACTIVE: |
- case CKR_PIN_EXPIRED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_SESSION_READ_ONLY: |
- case CKR_TEMPLATE_INCOMPLETE: |
- case CKR_TEMPLATE_INCONSISTENT: |
- case CKR_TOKEN_WRITE_PROTECTED: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_ATTRIBUTE_READ_ONLY: |
+ case CKR_ATTRIBUTE_TYPE_INVALID: |
+ case CKR_ATTRIBUTE_VALUE_INVALID: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_DOMAIN_PARAMS_INVALID: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_MECHANISM_INVALID: |
+ case CKR_MECHANISM_PARAM_INVALID: |
+ case CKR_OPERATION_ACTIVE: |
+ case CKR_PIN_EXPIRED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_SESSION_READ_ONLY: |
+ case CKR_TEMPLATE_INCOMPLETE: |
+ case CKR_TEMPLATE_INCONSISTENT: |
+ case CKR_TOKEN_WRITE_PROTECTED: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -5072,153 +4965,150 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_WrapKey |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_MECHANISM_PTR pMechanism, |
- CK_OBJECT_HANDLE hWrappingKey, |
- CK_OBJECT_HANDLE hKey, |
- CK_BYTE_PTR pWrappedKey, |
- CK_ULONG_PTR pulWrappedKeyLen |
-) |
+NSSCKFWC_WrapKey( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_MECHANISM_PTR pMechanism, |
+ CK_OBJECT_HANDLE hWrappingKey, |
+ CK_OBJECT_HANDLE hKey, |
+ CK_BYTE_PTR pWrappedKey, |
+ CK_ULONG_PTR pulWrappedKeyLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwKeyObject; |
- NSSCKFWObject *fwWrappingKeyObject; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken; |
- NSSCKFWMechanism *fwMechanism; |
- NSSItem wrappedKey; |
- CK_ULONG wrappedKeyLength = 0; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwWrappingKeyObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, |
- hWrappingKey); |
- if (!fwWrappingKeyObject) { |
- error = CKR_WRAPPING_KEY_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwKeyObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); |
- if (!fwKeyObject) { |
- error = CKR_KEY_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
- if (!fwSlot) { |
- error = CKR_GENERAL_ERROR; /* should never happen! */ |
- goto loser; |
- } |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
- if (!fwMechanism) { |
- goto loser; |
- } |
- |
- /* |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwKeyObject; |
+ NSSCKFWObject *fwWrappingKeyObject; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken; |
+ NSSCKFWMechanism *fwMechanism; |
+ NSSItem wrappedKey; |
+ CK_ULONG wrappedKeyLength = 0; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwWrappingKeyObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, |
+ hWrappingKey); |
+ if (!fwWrappingKeyObject) { |
+ error = CKR_WRAPPING_KEY_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwKeyObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); |
+ if (!fwKeyObject) { |
+ error = CKR_KEY_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
+ if (!fwSlot) { |
+ error = CKR_GENERAL_ERROR; /* should never happen! */ |
+ goto loser; |
+ } |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
+ if (!fwMechanism) { |
+ goto loser; |
+ } |
+ |
+ /* |
* first get the length... |
*/ |
- wrappedKeyLength = nssCKFWMechanism_GetWrapKeyLength( |
- fwMechanism, |
- pMechanism, |
- fwSession, |
- fwWrappingKeyObject, |
- fwKeyObject, |
- &error); |
- if ((CK_ULONG) 0 == wrappedKeyLength) { |
- nssCKFWMechanism_Destroy(fwMechanism); |
- goto loser; |
- } |
- if ((CK_BYTE_PTR)NULL == pWrappedKey) { |
- *pulWrappedKeyLen = wrappedKeyLength; |
- nssCKFWMechanism_Destroy(fwMechanism); |
- return CKR_OK; |
- } |
- if (wrappedKeyLength > *pulWrappedKeyLen) { |
- *pulWrappedKeyLen = wrappedKeyLength; |
+ wrappedKeyLength = nssCKFWMechanism_GetWrapKeyLength( |
+ fwMechanism, |
+ pMechanism, |
+ fwSession, |
+ fwWrappingKeyObject, |
+ fwKeyObject, |
+ &error); |
+ if ((CK_ULONG)0 == wrappedKeyLength) { |
+ nssCKFWMechanism_Destroy(fwMechanism); |
+ goto loser; |
+ } |
+ if ((CK_BYTE_PTR)NULL == pWrappedKey) { |
+ *pulWrappedKeyLen = wrappedKeyLength; |
+ nssCKFWMechanism_Destroy(fwMechanism); |
+ return CKR_OK; |
+ } |
+ if (wrappedKeyLength > *pulWrappedKeyLen) { |
+ *pulWrappedKeyLen = wrappedKeyLength; |
+ nssCKFWMechanism_Destroy(fwMechanism); |
+ error = CKR_BUFFER_TOO_SMALL; |
+ goto loser; |
+ } |
+ |
+ wrappedKey.data = pWrappedKey; |
+ wrappedKey.size = wrappedKeyLength; |
+ |
+ error = nssCKFWMechanism_WrapKey( |
+ fwMechanism, |
+ pMechanism, |
+ fwSession, |
+ fwWrappingKeyObject, |
+ fwKeyObject, |
+ &wrappedKey); |
+ |
nssCKFWMechanism_Destroy(fwMechanism); |
- error = CKR_BUFFER_TOO_SMALL; |
- goto loser; |
- } |
- |
- |
- wrappedKey.data = pWrappedKey; |
- wrappedKey.size = wrappedKeyLength; |
- |
- error = nssCKFWMechanism_WrapKey( |
- fwMechanism, |
- pMechanism, |
- fwSession, |
- fwWrappingKeyObject, |
- fwKeyObject, |
- &wrappedKey); |
- |
- nssCKFWMechanism_Destroy(fwMechanism); |
- *pulWrappedKeyLen = wrappedKey.size; |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ *pulWrappedKeyLen = wrappedKey.size; |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_KEY_HANDLE_INVALID: |
- case CKR_KEY_NOT_WRAPPABLE: |
- case CKR_KEY_SIZE_RANGE: |
- case CKR_KEY_UNEXTRACTABLE: |
- case CKR_MECHANISM_INVALID: |
- case CKR_MECHANISM_PARAM_INVALID: |
- case CKR_OPERATION_ACTIVE: |
- case CKR_PIN_EXPIRED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_WRAPPING_KEY_HANDLE_INVALID: |
- case CKR_WRAPPING_KEY_SIZE_RANGE: |
- case CKR_WRAPPING_KEY_TYPE_INCONSISTENT: |
- break; |
- case CKR_KEY_TYPE_INCONSISTENT: |
- error = CKR_WRAPPING_KEY_TYPE_INCONSISTENT; |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_KEY_HANDLE_INVALID: |
+ case CKR_KEY_NOT_WRAPPABLE: |
+ case CKR_KEY_SIZE_RANGE: |
+ case CKR_KEY_UNEXTRACTABLE: |
+ case CKR_MECHANISM_INVALID: |
+ case CKR_MECHANISM_PARAM_INVALID: |
+ case CKR_OPERATION_ACTIVE: |
+ case CKR_PIN_EXPIRED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_WRAPPING_KEY_HANDLE_INVALID: |
+ case CKR_WRAPPING_KEY_SIZE_RANGE: |
+ case CKR_WRAPPING_KEY_TYPE_INCONSISTENT: |
+ break; |
+ case CKR_KEY_TYPE_INCONSISTENT: |
+ error = CKR_WRAPPING_KEY_TYPE_INCONSISTENT; |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -5226,145 +5116,143 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_UnwrapKey |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_MECHANISM_PTR pMechanism, |
- CK_OBJECT_HANDLE hUnwrappingKey, |
- CK_BYTE_PTR pWrappedKey, |
- CK_ULONG ulWrappedKeyLen, |
- CK_ATTRIBUTE_PTR pTemplate, |
- CK_ULONG ulAttributeCount, |
- CK_OBJECT_HANDLE_PTR phKey |
-) |
+NSSCKFWC_UnwrapKey( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_MECHANISM_PTR pMechanism, |
+ CK_OBJECT_HANDLE hUnwrappingKey, |
+ CK_BYTE_PTR pWrappedKey, |
+ CK_ULONG ulWrappedKeyLen, |
+ CK_ATTRIBUTE_PTR pTemplate, |
+ CK_ULONG ulAttributeCount, |
+ CK_OBJECT_HANDLE_PTR phKey) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwObject; |
- NSSCKFWObject *fwWrappingKeyObject; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken; |
- NSSCKFWMechanism *fwMechanism; |
- NSSItem wrappedKey; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwWrappingKeyObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, |
- hUnwrappingKey); |
- if (!fwWrappingKeyObject) { |
- error = CKR_WRAPPING_KEY_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
- if (!fwSlot) { |
- error = CKR_GENERAL_ERROR; /* should never happen! */ |
- goto loser; |
- } |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
- if (!fwMechanism) { |
- goto loser; |
- } |
- |
- wrappedKey.data = pWrappedKey; |
- wrappedKey.size = ulWrappedKeyLen; |
- |
- fwObject = nssCKFWMechanism_UnwrapKey( |
- fwMechanism, |
- pMechanism, |
- fwSession, |
- fwWrappingKeyObject, |
- &wrappedKey, |
- pTemplate, |
- ulAttributeCount, |
- &error); |
- |
- nssCKFWMechanism_Destroy(fwMechanism); |
- if (!fwObject) { |
- goto loser; |
- } |
- *phKey = nssCKFWInstance_CreateObjectHandle(fwInstance, fwObject, &error); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwObject; |
+ NSSCKFWObject *fwWrappingKeyObject; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken; |
+ NSSCKFWMechanism *fwMechanism; |
+ NSSItem wrappedKey; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwWrappingKeyObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, |
+ hUnwrappingKey); |
+ if (!fwWrappingKeyObject) { |
+ error = CKR_WRAPPING_KEY_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
+ if (!fwSlot) { |
+ error = CKR_GENERAL_ERROR; /* should never happen! */ |
+ goto loser; |
+ } |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
+ if (!fwMechanism) { |
+ goto loser; |
+ } |
+ |
+ wrappedKey.data = pWrappedKey; |
+ wrappedKey.size = ulWrappedKeyLen; |
+ |
+ fwObject = nssCKFWMechanism_UnwrapKey( |
+ fwMechanism, |
+ pMechanism, |
+ fwSession, |
+ fwWrappingKeyObject, |
+ &wrappedKey, |
+ pTemplate, |
+ ulAttributeCount, |
+ &error); |
+ |
+ nssCKFWMechanism_Destroy(fwMechanism); |
+ if (!fwObject) { |
+ goto loser; |
+ } |
+ *phKey = nssCKFWInstance_CreateObjectHandle(fwInstance, fwObject, &error); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_ATTRIBUTE_READ_ONLY: |
- case CKR_ATTRIBUTE_TYPE_INVALID: |
- case CKR_ATTRIBUTE_VALUE_INVALID: |
- case CKR_BUFFER_TOO_SMALL: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_DOMAIN_PARAMS_INVALID: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_MECHANISM_INVALID: |
- case CKR_MECHANISM_PARAM_INVALID: |
- case CKR_OPERATION_ACTIVE: |
- case CKR_PIN_EXPIRED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_SESSION_READ_ONLY: |
- case CKR_TEMPLATE_INCOMPLETE: |
- case CKR_TEMPLATE_INCONSISTENT: |
- case CKR_TOKEN_WRITE_PROTECTED: |
- case CKR_UNWRAPPING_KEY_HANDLE_INVALID: |
- case CKR_UNWRAPPING_KEY_SIZE_RANGE: |
- case CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: |
- case CKR_USER_NOT_LOGGED_IN: |
- case CKR_WRAPPED_KEY_INVALID: |
- case CKR_WRAPPED_KEY_LEN_RANGE: |
- break; |
- case CKR_KEY_HANDLE_INVALID: |
- error = CKR_UNWRAPPING_KEY_HANDLE_INVALID; |
- break; |
- case CKR_KEY_SIZE_RANGE: |
- error = CKR_UNWRAPPING_KEY_SIZE_RANGE; |
- break; |
- case CKR_KEY_TYPE_INCONSISTENT: |
- error = CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT; |
- break; |
- case CKR_ENCRYPTED_DATA_INVALID: |
- error = CKR_WRAPPED_KEY_INVALID; |
- break; |
- case CKR_ENCRYPTED_DATA_LEN_RANGE: |
- error = CKR_WRAPPED_KEY_LEN_RANGE; |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_ATTRIBUTE_READ_ONLY: |
+ case CKR_ATTRIBUTE_TYPE_INVALID: |
+ case CKR_ATTRIBUTE_VALUE_INVALID: |
+ case CKR_BUFFER_TOO_SMALL: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_DOMAIN_PARAMS_INVALID: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_MECHANISM_INVALID: |
+ case CKR_MECHANISM_PARAM_INVALID: |
+ case CKR_OPERATION_ACTIVE: |
+ case CKR_PIN_EXPIRED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_SESSION_READ_ONLY: |
+ case CKR_TEMPLATE_INCOMPLETE: |
+ case CKR_TEMPLATE_INCONSISTENT: |
+ case CKR_TOKEN_WRITE_PROTECTED: |
+ case CKR_UNWRAPPING_KEY_HANDLE_INVALID: |
+ case CKR_UNWRAPPING_KEY_SIZE_RANGE: |
+ case CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ case CKR_WRAPPED_KEY_INVALID: |
+ case CKR_WRAPPED_KEY_LEN_RANGE: |
+ break; |
+ case CKR_KEY_HANDLE_INVALID: |
+ error = CKR_UNWRAPPING_KEY_HANDLE_INVALID; |
+ break; |
+ case CKR_KEY_SIZE_RANGE: |
+ error = CKR_UNWRAPPING_KEY_SIZE_RANGE; |
+ break; |
+ case CKR_KEY_TYPE_INCONSISTENT: |
+ error = CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT; |
+ break; |
+ case CKR_ENCRYPTED_DATA_INVALID: |
+ error = CKR_WRAPPED_KEY_INVALID; |
+ break; |
+ case CKR_ENCRYPTED_DATA_LEN_RANGE: |
+ error = CKR_WRAPPED_KEY_LEN_RANGE; |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -5372,119 +5260,117 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_DeriveKey |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_MECHANISM_PTR pMechanism, |
- CK_OBJECT_HANDLE hBaseKey, |
- CK_ATTRIBUTE_PTR pTemplate, |
- CK_ULONG ulAttributeCount, |
- CK_OBJECT_HANDLE_PTR phKey |
-) |
+NSSCKFWC_DeriveKey( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_MECHANISM_PTR pMechanism, |
+ CK_OBJECT_HANDLE hBaseKey, |
+ CK_ATTRIBUTE_PTR pTemplate, |
+ CK_ULONG ulAttributeCount, |
+ CK_OBJECT_HANDLE_PTR phKey) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSCKFWObject *fwObject; |
- NSSCKFWObject *fwBaseKeyObject; |
- NSSCKFWSlot *fwSlot; |
- NSSCKFWToken *fwToken; |
- NSSCKFWMechanism *fwMechanism; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwBaseKeyObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hBaseKey); |
- if (!fwBaseKeyObject) { |
- error = CKR_KEY_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
- if (!fwSlot) { |
- error = CKR_GENERAL_ERROR; /* should never happen! */ |
- goto loser; |
- } |
- |
- if( CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot) ) { |
- error = CKR_TOKEN_NOT_PRESENT; |
- goto loser; |
- } |
- |
- fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
- if (!fwToken) { |
- goto loser; |
- } |
- |
- fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
- if (!fwMechanism) { |
- goto loser; |
- } |
- |
- fwObject = nssCKFWMechanism_DeriveKey( |
- fwMechanism, |
- pMechanism, |
- fwSession, |
- fwBaseKeyObject, |
- pTemplate, |
- ulAttributeCount, |
- &error); |
- |
- nssCKFWMechanism_Destroy(fwMechanism); |
- if (!fwObject) { |
- goto loser; |
- } |
- *phKey = nssCKFWInstance_CreateObjectHandle(fwInstance, fwObject, &error); |
- |
- if (CKR_OK == error) { |
- return CKR_OK; |
- } |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSCKFWObject *fwObject; |
+ NSSCKFWObject *fwBaseKeyObject; |
+ NSSCKFWSlot *fwSlot; |
+ NSSCKFWToken *fwToken; |
+ NSSCKFWMechanism *fwMechanism; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwBaseKeyObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hBaseKey); |
+ if (!fwBaseKeyObject) { |
+ error = CKR_KEY_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ fwSlot = nssCKFWSession_GetFWSlot(fwSession); |
+ if (!fwSlot) { |
+ error = CKR_GENERAL_ERROR; /* should never happen! */ |
+ goto loser; |
+ } |
+ |
+ if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { |
+ error = CKR_TOKEN_NOT_PRESENT; |
+ goto loser; |
+ } |
+ |
+ fwToken = nssCKFWSlot_GetToken(fwSlot, &error); |
+ if (!fwToken) { |
+ goto loser; |
+ } |
+ |
+ fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); |
+ if (!fwMechanism) { |
+ goto loser; |
+ } |
+ |
+ fwObject = nssCKFWMechanism_DeriveKey( |
+ fwMechanism, |
+ pMechanism, |
+ fwSession, |
+ fwBaseKeyObject, |
+ pTemplate, |
+ ulAttributeCount, |
+ &error); |
+ |
+ nssCKFWMechanism_Destroy(fwMechanism); |
+ if (!fwObject) { |
+ goto loser; |
+ } |
+ *phKey = nssCKFWInstance_CreateObjectHandle(fwInstance, fwObject, &error); |
+ |
+ if (CKR_OK == error) { |
+ return CKR_OK; |
+ } |
loser: |
- /* verify error */ |
- switch( error ) { |
- case CKR_ARGUMENTS_BAD: |
- case CKR_ATTRIBUTE_READ_ONLY: |
- case CKR_ATTRIBUTE_TYPE_INVALID: |
- case CKR_ATTRIBUTE_VALUE_INVALID: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_DEVICE_REMOVED: |
- case CKR_DOMAIN_PARAMS_INVALID: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_KEY_HANDLE_INVALID: |
- case CKR_KEY_SIZE_RANGE: |
- case CKR_KEY_TYPE_INCONSISTENT: |
- case CKR_MECHANISM_INVALID: |
- case CKR_MECHANISM_PARAM_INVALID: |
- case CKR_OPERATION_ACTIVE: |
- case CKR_PIN_EXPIRED: |
- case CKR_SESSION_CLOSED: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_SESSION_READ_ONLY: |
- case CKR_TEMPLATE_INCOMPLETE: |
- case CKR_TEMPLATE_INCONSISTENT: |
- case CKR_TOKEN_WRITE_PROTECTED: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- return error; |
+ /* verify error */ |
+ switch (error) { |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_ATTRIBUTE_READ_ONLY: |
+ case CKR_ATTRIBUTE_TYPE_INVALID: |
+ case CKR_ATTRIBUTE_VALUE_INVALID: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_DEVICE_REMOVED: |
+ case CKR_DOMAIN_PARAMS_INVALID: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_KEY_HANDLE_INVALID: |
+ case CKR_KEY_SIZE_RANGE: |
+ case CKR_KEY_TYPE_INCONSISTENT: |
+ case CKR_MECHANISM_INVALID: |
+ case CKR_MECHANISM_PARAM_INVALID: |
+ case CKR_OPERATION_ACTIVE: |
+ case CKR_PIN_EXPIRED: |
+ case CKR_SESSION_CLOSED: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_SESSION_READ_ONLY: |
+ case CKR_TEMPLATE_INCOMPLETE: |
+ case CKR_TEMPLATE_INCONSISTENT: |
+ case CKR_TOKEN_WRITE_PROTECTED: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ return error; |
} |
/* |
@@ -5492,76 +5378,74 @@ loser: |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_SeedRandom |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pSeed, |
- CK_ULONG ulSeedLen |
-) |
+NSSCKFWC_SeedRandom( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pSeed, |
+ CK_ULONG ulSeedLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSItem seed; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_BYTE_PTR)CK_NULL_PTR == pSeed ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- /* We could read through the buffer in a Purify trap */ |
- |
- seed.size = (PRUint32)ulSeedLen; |
- seed.data = (void *)pSeed; |
- |
- error = nssCKFWSession_SeedRandom(fwSession, &seed); |
- |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_ACTIVE: |
- case CKR_RANDOM_SEED_NOT_SUPPORTED: |
- case CKR_RANDOM_NO_RNG: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSItem seed; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ if ((CK_BYTE_PTR)CK_NULL_PTR == pSeed) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ /* We could read through the buffer in a Purify trap */ |
+ |
+ seed.size = (PRUint32)ulSeedLen; |
+ seed.data = (void *)pSeed; |
+ |
+ error = nssCKFWSession_SeedRandom(fwSession, &seed); |
+ |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_ACTIVE: |
+ case CKR_RANDOM_SEED_NOT_SUPPORTED: |
+ case CKR_RANDOM_NO_RNG: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -5569,78 +5453,76 @@ NSSCKFWC_SeedRandom |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_GenerateRandom |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession, |
- CK_BYTE_PTR pRandomData, |
- CK_ULONG ulRandomLen |
-) |
+NSSCKFWC_GenerateRandom( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession, |
+ CK_BYTE_PTR pRandomData, |
+ CK_ULONG ulRandomLen) |
{ |
- CK_RV error = CKR_OK; |
- NSSCKFWSession *fwSession; |
- NSSItem buffer; |
- |
- if (!fwInstance) { |
- error = CKR_CRYPTOKI_NOT_INITIALIZED; |
- goto loser; |
- } |
- |
- fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
- if (!fwSession) { |
- error = CKR_SESSION_HANDLE_INVALID; |
- goto loser; |
- } |
- |
- if( (CK_BYTE_PTR)CK_NULL_PTR == pRandomData ) { |
- error = CKR_ARGUMENTS_BAD; |
- goto loser; |
- } |
- |
- /* |
+ CK_RV error = CKR_OK; |
+ NSSCKFWSession *fwSession; |
+ NSSItem buffer; |
+ |
+ if (!fwInstance) { |
+ error = CKR_CRYPTOKI_NOT_INITIALIZED; |
+ goto loser; |
+ } |
+ |
+ fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); |
+ if (!fwSession) { |
+ error = CKR_SESSION_HANDLE_INVALID; |
+ goto loser; |
+ } |
+ |
+ if ((CK_BYTE_PTR)CK_NULL_PTR == pRandomData) { |
+ error = CKR_ARGUMENTS_BAD; |
+ goto loser; |
+ } |
+ |
+ /* |
* A purify error here indicates caller error. |
*/ |
- (void)nsslibc_memset(pRandomData, 0, ulRandomLen); |
- |
- buffer.size = (PRUint32)ulRandomLen; |
- buffer.data = (void *)pRandomData; |
- |
- error = nssCKFWSession_GetRandom(fwSession, &buffer); |
- |
- if( CKR_OK != error ) { |
- goto loser; |
- } |
- |
- return CKR_OK; |
- |
- loser: |
- switch( error ) { |
- case CKR_SESSION_CLOSED: |
- /* destroy session? */ |
- break; |
- case CKR_DEVICE_REMOVED: |
- /* (void)nssCKFWToken_Destroy(fwToken); */ |
- break; |
- case CKR_ARGUMENTS_BAD: |
- case CKR_CRYPTOKI_NOT_INITIALIZED: |
- case CKR_DEVICE_ERROR: |
- case CKR_DEVICE_MEMORY: |
- case CKR_FUNCTION_CANCELED: |
- case CKR_FUNCTION_FAILED: |
- case CKR_GENERAL_ERROR: |
- case CKR_HOST_MEMORY: |
- case CKR_OPERATION_ACTIVE: |
- case CKR_RANDOM_NO_RNG: |
- case CKR_SESSION_HANDLE_INVALID: |
- case CKR_USER_NOT_LOGGED_IN: |
- break; |
- default: |
- case CKR_OK: |
- error = CKR_GENERAL_ERROR; |
- break; |
- } |
- |
- return error; |
+ (void)nsslibc_memset(pRandomData, 0, ulRandomLen); |
+ |
+ buffer.size = (PRUint32)ulRandomLen; |
+ buffer.data = (void *)pRandomData; |
+ |
+ error = nssCKFWSession_GetRandom(fwSession, &buffer); |
+ |
+ if (CKR_OK != error) { |
+ goto loser; |
+ } |
+ |
+ return CKR_OK; |
+ |
+loser: |
+ switch (error) { |
+ case CKR_SESSION_CLOSED: |
+ /* destroy session? */ |
+ break; |
+ case CKR_DEVICE_REMOVED: |
+ /* (void)nssCKFWToken_Destroy(fwToken); */ |
+ break; |
+ case CKR_ARGUMENTS_BAD: |
+ case CKR_CRYPTOKI_NOT_INITIALIZED: |
+ case CKR_DEVICE_ERROR: |
+ case CKR_DEVICE_MEMORY: |
+ case CKR_FUNCTION_CANCELED: |
+ case CKR_FUNCTION_FAILED: |
+ case CKR_GENERAL_ERROR: |
+ case CKR_HOST_MEMORY: |
+ case CKR_OPERATION_ACTIVE: |
+ case CKR_RANDOM_NO_RNG: |
+ case CKR_SESSION_HANDLE_INVALID: |
+ case CKR_USER_NOT_LOGGED_IN: |
+ break; |
+ default: |
+ case CKR_OK: |
+ error = CKR_GENERAL_ERROR; |
+ break; |
+ } |
+ |
+ return error; |
} |
/* |
@@ -5648,13 +5530,11 @@ NSSCKFWC_GenerateRandom |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_GetFunctionStatus |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession |
-) |
+NSSCKFWC_GetFunctionStatus( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession) |
{ |
- return CKR_FUNCTION_NOT_PARALLEL; |
+ return CKR_FUNCTION_NOT_PARALLEL; |
} |
/* |
@@ -5662,11 +5542,9 @@ NSSCKFWC_GetFunctionStatus |
* |
*/ |
NSS_IMPLEMENT CK_RV |
-NSSCKFWC_CancelFunction |
-( |
- NSSCKFWInstance *fwInstance, |
- CK_SESSION_HANDLE hSession |
-) |
+NSSCKFWC_CancelFunction( |
+ NSSCKFWInstance *fwInstance, |
+ CK_SESSION_HANDLE hSession) |
{ |
- return CKR_FUNCTION_NOT_PARALLEL; |
+ return CKR_FUNCTION_NOT_PARALLEL; |
} |