/* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape security libraries. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1994-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #ifndef NSSCKFWC_H #define NSSCKFWC_H #ifdef DEBUG static const char NSSCKFWC_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$"; #endif /* DEBUG */ /* * 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 */