blob: 089e73f9bac580dd52332bb1a1a856fc78dc417f [file] [log] [blame]
/* ***** 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: nssckfwc.h,v $ $Revision: 1.3 $ $Date: 2005/01/20 02:25:45 $";
#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 */