Source code

Revision control

Copy as Markdown

Other Tools

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef NSSCKFWC_H
#define NSSCKFWC_H
/*
* nssckfwc.h
*
* This file prototypes all of the NSS Cryptoki Framework "wrapper"
* which implement the PKCS#11 API. Technically, these are public
* routines (with capital "NSS" prefixes), since they are called
* from (generated) code within a Module using the Framework.
* However, they should not be called except from those generated
* calls. Hence, the prototypes have been split out into this file.
*/
#ifndef NSSCKT_H
#include "nssckt.h"
#endif /* NSSCKT_H */
#ifndef NSSCKFWT_H
#include "nssckfwt.h"
#endif /* NSSCKFWT_H */
#ifndef NSSCKMDT_H
#include "nssckmdt.h"
#endif /* NSSCKMDT_H */
/*
* NSSCKFWC_Initialize
* NSSCKFWC_Finalize
* NSSCKFWC_GetInfo
* -- NSSCKFWC_GetFunctionList -- see the API insert file
* NSSCKFWC_GetSlotList
* NSSCKFWC_GetSlotInfo
* NSSCKFWC_GetTokenInfo
* NSSCKFWC_WaitForSlotEvent
* NSSCKFWC_GetMechanismList
* NSSCKFWC_GetMechanismInfo
* NSSCKFWC_InitToken
* NSSCKFWC_InitPIN
* NSSCKFWC_SetPIN
* NSSCKFWC_OpenSession
* NSSCKFWC_CloseSession
* NSSCKFWC_CloseAllSessions
* NSSCKFWC_GetSessionInfo
* NSSCKFWC_GetOperationState
* NSSCKFWC_SetOperationState
* NSSCKFWC_Login
* NSSCKFWC_Logout
* NSSCKFWC_CreateObject
* NSSCKFWC_CopyObject
* NSSCKFWC_DestroyObject
* NSSCKFWC_GetObjectSize
* NSSCKFWC_GetAttributeValue
* NSSCKFWC_SetAttributeValue
* NSSCKFWC_FindObjectsInit
* NSSCKFWC_FindObjects
* NSSCKFWC_FindObjectsFinal
* NSSCKFWC_EncryptInit
* NSSCKFWC_Encrypt
* NSSCKFWC_EncryptUpdate
* NSSCKFWC_EncryptFinal
* NSSCKFWC_DecryptInit
* NSSCKFWC_Decrypt
* NSSCKFWC_DecryptUpdate
* NSSCKFWC_DecryptFinal
* NSSCKFWC_DigestInit
* NSSCKFWC_Digest
* NSSCKFWC_DigestUpdate
* NSSCKFWC_DigestKey
* NSSCKFWC_DigestFinal
* NSSCKFWC_SignInit
* NSSCKFWC_Sign
* NSSCKFWC_SignUpdate
* NSSCKFWC_SignFinal
* NSSCKFWC_SignRecoverInit
* NSSCKFWC_SignRecover
* NSSCKFWC_VerifyInit
* NSSCKFWC_Verify
* NSSCKFWC_VerifyUpdate
* NSSCKFWC_VerifyFinal
* NSSCKFWC_VerifyRecoverInit
* NSSCKFWC_VerifyRecover
* NSSCKFWC_DigestEncryptUpdate
* NSSCKFWC_DecryptDigestUpdate
* NSSCKFWC_SignEncryptUpdate
* NSSCKFWC_DecryptVerifyUpdate
* NSSCKFWC_GenerateKey
* NSSCKFWC_GenerateKeyPair
* NSSCKFWC_WrapKey
* NSSCKFWC_UnwrapKey
* NSSCKFWC_DeriveKey
* NSSCKFWC_SeedRandom
* NSSCKFWC_GenerateRandom
* NSSCKFWC_GetFunctionStatus
* NSSCKFWC_CancelFunction
*/
/*
* NSSCKFWC_Initialize
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_Initialize(
NSSCKFWInstance **pFwInstance,
NSSCKMDInstance *mdInstance,
CK_VOID_PTR pInitArgs);
/*
* NSSCKFWC_Finalize
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_Finalize(
NSSCKFWInstance **pFwInstance);
/*
* NSSCKFWC_GetInfo
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_GetInfo(
NSSCKFWInstance *fwInstance,
CK_INFO_PTR pInfo);
/*
* C_GetFunctionList is implemented entirely in the Module's file which
* includes the Framework API insert file. It requires no "actual"
* NSSCKFW routine.
*/
/*
* NSSCKFWC_GetSlotList
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_GetSlotList(
NSSCKFWInstance *fwInstance,
CK_BBOOL tokenPresent,
CK_SLOT_ID_PTR pSlotList,
CK_ULONG_PTR pulCount);
/*
* NSSCKFWC_GetSlotInfo
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_GetSlotInfo(
NSSCKFWInstance *fwInstance,
CK_SLOT_ID slotID,
CK_SLOT_INFO_PTR pInfo);
/*
* NSSCKFWC_GetTokenInfo
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_GetTokenInfo(
NSSCKFWInstance *fwInstance,
CK_SLOT_ID slotID,
CK_TOKEN_INFO_PTR pInfo);
/*
* NSSCKFWC_WaitForSlotEvent
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_WaitForSlotEvent(
NSSCKFWInstance *fwInstance,
CK_FLAGS flags,
CK_SLOT_ID_PTR pSlot,
CK_VOID_PTR pReserved);
/*
* NSSCKFWC_GetMechanismList
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_GetMechanismList(
NSSCKFWInstance *fwInstance,
CK_SLOT_ID slotID,
CK_MECHANISM_TYPE_PTR pMechanismList,
CK_ULONG_PTR pulCount);
/*
* NSSCKFWC_GetMechanismInfo
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_GetMechanismInfo(
NSSCKFWInstance *fwInstance,
CK_SLOT_ID slotID,
CK_MECHANISM_TYPE type,
CK_MECHANISM_INFO_PTR pInfo);
/*
* NSSCKFWC_InitToken
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_InitToken(
NSSCKFWInstance *fwInstance,
CK_SLOT_ID slotID,
CK_CHAR_PTR pPin,
CK_ULONG ulPinLen,
CK_CHAR_PTR pLabel);
/*
* NSSCKFWC_InitPIN
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_InitPIN(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_CHAR_PTR pPin,
CK_ULONG ulPinLen);
/*
* NSSCKFWC_SetPIN
*
*/
NSS_EXTERN 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_OpenSession
*
*/
NSS_EXTERN 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_CloseSession
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_CloseSession(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession);
/*
* NSSCKFWC_CloseAllSessions
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_CloseAllSessions(
NSSCKFWInstance *fwInstance,
CK_SLOT_ID slotID);
/*
* NSSCKFWC_GetSessionInfo
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_GetSessionInfo(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_SESSION_INFO_PTR pInfo);
/*
* NSSCKFWC_GetOperationState
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_GetOperationState(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pOperationState,
CK_ULONG_PTR pulOperationStateLen);
/*
* NSSCKFWC_SetOperationState
*
*/
NSS_EXTERN 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_Login
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_Login(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_USER_TYPE userType,
CK_CHAR_PTR pPin,
CK_ULONG ulPinLen);
/*
* NSSCKFWC_Logout
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_Logout(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession);
/*
* NSSCKFWC_CreateObject
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_CreateObject(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount,
CK_OBJECT_HANDLE_PTR phObject);
/*
* NSSCKFWC_CopyObject
*
*/
NSS_EXTERN 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_DestroyObject
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_DestroyObject(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hObject);
/*
* NSSCKFWC_GetObjectSize
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_GetObjectSize(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hObject,
CK_ULONG_PTR pulSize);
/*
* NSSCKFWC_GetAttributeValue
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_GetAttributeValue(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hObject,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount);
/*
* NSSCKFWC_SetAttributeValue
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_SetAttributeValue(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hObject,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount);
/*
* NSSCKFWC_FindObjectsInit
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_FindObjectsInit(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount);
/*
* NSSCKFWC_FindObjects
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_FindObjects(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE_PTR phObject,
CK_ULONG ulMaxObjectCount,
CK_ULONG_PTR pulObjectCount);
/*
* NSSCKFWC_FindObjectsFinal
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_FindObjectsFinal(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession);
/*
* NSSCKFWC_EncryptInit
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_EncryptInit(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey);
/*
* NSSCKFWC_Encrypt
*
*/
NSS_EXTERN 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_EncryptUpdate
*
*/
NSS_EXTERN 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_EncryptFinal
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_EncryptFinal(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pLastEncryptedPart,
CK_ULONG_PTR pulLastEncryptedPartLen);
/*
* NSSCKFWC_DecryptInit
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_DecryptInit(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey);
/*
* NSSCKFWC_Decrypt
*
*/
NSS_EXTERN 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_DecryptUpdate
*
*/
NSS_EXTERN 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_DecryptFinal
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_DecryptFinal(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pLastPart,
CK_ULONG_PTR pulLastPartLen);
/*
* NSSCKFWC_DigestInit
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_DigestInit(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism);
/*
* NSSCKFWC_Digest
*
*/
NSS_EXTERN 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_DigestUpdate
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_DigestUpdate(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pData,
CK_ULONG ulDataLen);
/*
* NSSCKFWC_DigestKey
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_DigestKey(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hKey);
/*
* NSSCKFWC_DigestFinal
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_DigestFinal(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pDigest,
CK_ULONG_PTR pulDigestLen);
/*
* NSSCKFWC_SignInit
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_SignInit(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey);
/*
* NSSCKFWC_Sign
*
*/
NSS_EXTERN 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_SignUpdate
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_SignUpdate(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pPart,
CK_ULONG ulPartLen);
/*
* NSSCKFWC_SignFinal
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_SignFinal(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pSignature,
CK_ULONG_PTR pulSignatureLen);
/*
* NSSCKFWC_SignRecoverInit
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_SignRecoverInit(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey);
/*
* NSSCKFWC_SignRecover
*
*/
NSS_EXTERN 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_VerifyInit
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_VerifyInit(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey);
/*
* NSSCKFWC_Verify
*
*/
NSS_EXTERN 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_VerifyUpdate
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_VerifyUpdate(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pPart,
CK_ULONG ulPartLen);
/*
* NSSCKFWC_VerifyFinal
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_VerifyFinal(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pSignature,
CK_ULONG ulSignatureLen);
/*
* NSSCKFWC_VerifyRecoverInit
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_VerifyRecoverInit(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_MECHANISM_PTR pMechanism,
CK_OBJECT_HANDLE hKey);
/*
* NSSCKFWC_VerifyRecover
*
*/
NSS_EXTERN 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_DigestEncryptUpdate
*
*/
NSS_EXTERN 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_DecryptDigestUpdate
*
*/
NSS_EXTERN 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_SignEncryptUpdate
*
*/
NSS_EXTERN 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_DecryptVerifyUpdate
*
*/
NSS_EXTERN 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_GenerateKey
*
*/
NSS_EXTERN 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_GenerateKeyPair
*
*/
NSS_EXTERN 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_WrapKey
*
*/
NSS_EXTERN 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_UnwrapKey
*
*/
NSS_EXTERN 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_DeriveKey
*
*/
NSS_EXTERN 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_SeedRandom
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_SeedRandom(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pSeed,
CK_ULONG ulSeedLen);
/*
* NSSCKFWC_GenerateRandom
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_GenerateRandom(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR pRandomData,
CK_ULONG ulRandomLen);
/*
* NSSCKFWC_GetFunctionStatus
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_GetFunctionStatus(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession);
/*
* NSSCKFWC_CancelFunction
*
*/
NSS_EXTERN CK_RV
NSSCKFWC_CancelFunction(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession);
#endif /* NSSCKFWC_H */