tenfourfox/security/nss/lib/ckfw/ckfw.h
Cameron Kaiser c9b2922b70 hello FPR
2017-04-19 00:56:45 -07:00

2427 lines
38 KiB
C

/* 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 CKFW_H
#define CKFW_H
/*
* ckfw.h
*
* This file prototypes the private calls of the NSS Cryptoki Framework.
*/
#ifndef NSSBASET_H
#include "nssbaset.h"
#endif /* NSSBASET_H */
#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 */
/*
* NSSCKFWInstance
*
* -- create/destroy --
* nssCKFWInstance_Create
* nssCKFWInstance_Destroy
*
* -- implement public accessors --
* nssCKFWInstance_GetMDInstance
* nssCKFWInstance_GetArena
* nssCKFWInstance_MayCreatePthreads
* nssCKFWInstance_CreateMutex
* nssCKFWInstance_GetConfigurationData
* nssCKFWInstance_GetInitArgs
*
* -- private accessors --
* nssCKFWInstance_CreateSessionHandle
* nssCKFWInstance_ResolveSessionHandle
* nssCKFWInstance_DestroySessionHandle
* nssCKFWInstance_FindSessionHandle
* nssCKFWInstance_CreateObjectHandle
* nssCKFWInstance_ResolveObjectHandle
* nssCKFWInstance_DestroyObjectHandle
* nssCKFWInstance_FindObjectHandle
*
* -- module fronts --
* nssCKFWInstance_GetNSlots
* nssCKFWInstance_GetCryptokiVersion
* nssCKFWInstance_GetManufacturerID
* nssCKFWInstance_GetFlags
* nssCKFWInstance_GetLibraryDescription
* nssCKFWInstance_GetLibraryVersion
* nssCKFWInstance_GetModuleHandlesSessionObjects
* nssCKFWInstance_GetSlots
* nssCKFWInstance_WaitForSlotEvent
*
* -- debugging versions only --
* nssCKFWInstance_verifyPointer
*/
/*
* nssCKFWInstance_Create
*
*/
NSS_EXTERN NSSCKFWInstance *
nssCKFWInstance_Create
(
CK_C_INITIALIZE_ARGS_PTR pInitArgs,
CryptokiLockingState LockingState,
NSSCKMDInstance *mdInstance,
CK_RV *pError
);
/*
* nssCKFWInstance_Destroy
*
*/
NSS_EXTERN CK_RV
nssCKFWInstance_Destroy
(
NSSCKFWInstance *fwInstance
);
/*
* nssCKFWInstance_GetMDInstance
*
*/
NSS_EXTERN NSSCKMDInstance *
nssCKFWInstance_GetMDInstance
(
NSSCKFWInstance *fwInstance
);
/*
* nssCKFWInstance_GetArena
*
*/
NSS_EXTERN NSSArena *
nssCKFWInstance_GetArena
(
NSSCKFWInstance *fwInstance,
CK_RV *pError
);
/*
* nssCKFWInstance_MayCreatePthreads
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWInstance_MayCreatePthreads
(
NSSCKFWInstance *fwInstance
);
/*
* nssCKFWInstance_CreateMutex
*
*/
NSS_EXTERN NSSCKFWMutex *
nssCKFWInstance_CreateMutex
(
NSSCKFWInstance *fwInstance,
NSSArena *arena,
CK_RV *pError
);
/*
* nssCKFWInstance_GetConfigurationData
*
*/
NSS_EXTERN NSSUTF8 *
nssCKFWInstance_GetConfigurationData
(
NSSCKFWInstance *fwInstance
);
/*
* nssCKFWInstance_GetInitArgs
*
*/
NSS_EXTERN CK_C_INITIALIZE_ARGS_PTR
nssCKFWInstance_GetInitArgs
(
NSSCKFWInstance *fwInstance
);
/*
* nssCKFWInstance_CreateSessionHandle
*
*/
NSS_EXTERN CK_SESSION_HANDLE
nssCKFWInstance_CreateSessionHandle
(
NSSCKFWInstance *fwInstance,
NSSCKFWSession *fwSession,
CK_RV *pError
);
/*
* nssCKFWInstance_ResolveSessionHandle
*
*/
NSS_EXTERN NSSCKFWSession *
nssCKFWInstance_ResolveSessionHandle
(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession
);
/*
* nssCKFWInstance_DestroySessionHandle
*
*/
NSS_EXTERN void
nssCKFWInstance_DestroySessionHandle
(
NSSCKFWInstance *fwInstance,
CK_SESSION_HANDLE hSession
);
/*
* nssCKFWInstance_FindSessionHandle
*
*/
NSS_EXTERN CK_SESSION_HANDLE
nssCKFWInstance_FindSessionHandle
(
NSSCKFWInstance *fwInstance,
NSSCKFWSession *fwSession
);
/*
* nssCKFWInstance_CreateObjectHandle
*
*/
NSS_EXTERN CK_OBJECT_HANDLE
nssCKFWInstance_CreateObjectHandle
(
NSSCKFWInstance *fwInstance,
NSSCKFWObject *fwObject,
CK_RV *pError
);
/*
* nssCKFWInstance_ResolveObjectHandle
*
*/
NSS_EXTERN NSSCKFWObject *
nssCKFWInstance_ResolveObjectHandle
(
NSSCKFWInstance *fwInstance,
CK_OBJECT_HANDLE hObject
);
/*
* nssCKFWInstance_ReassignObjectHandle
*
*/
NSS_EXTERN CK_RV
nssCKFWInstance_ReassignObjectHandle
(
NSSCKFWInstance *fwInstance,
CK_OBJECT_HANDLE hObject,
NSSCKFWObject *fwObject
);
/*
* nssCKFWInstance_DestroyObjectHandle
*
*/
NSS_EXTERN void
nssCKFWInstance_DestroyObjectHandle
(
NSSCKFWInstance *fwInstance,
CK_OBJECT_HANDLE hObject
);
/*
* nssCKFWInstance_FindObjectHandle
*
*/
NSS_EXTERN CK_OBJECT_HANDLE
nssCKFWInstance_FindObjectHandle
(
NSSCKFWInstance *fwInstance,
NSSCKFWObject *fwObject
);
/*
* nssCKFWInstance_GetNSlots
*
*/
NSS_EXTERN CK_ULONG
nssCKFWInstance_GetNSlots
(
NSSCKFWInstance *fwInstance,
CK_RV *pError
);
/*
* nssCKFWInstance_GetCryptokiVersion
*
*/
NSS_EXTERN CK_VERSION
nssCKFWInstance_GetCryptokiVersion
(
NSSCKFWInstance *fwInstance
);
/*
* nssCKFWInstance_GetManufacturerID
*
*/
NSS_EXTERN CK_RV
nssCKFWInstance_GetManufacturerID
(
NSSCKFWInstance *fwInstance,
CK_CHAR manufacturerID[32]
);
/*
* nssCKFWInstance_GetFlags
*
*/
NSS_EXTERN CK_ULONG
nssCKFWInstance_GetFlags
(
NSSCKFWInstance *fwInstance
);
/*
* nssCKFWInstance_GetLibraryDescription
*
*/
NSS_EXTERN CK_RV
nssCKFWInstance_GetLibraryDescription
(
NSSCKFWInstance *fwInstance,
CK_CHAR libraryDescription[32]
);
/*
* nssCKFWInstance_GetLibraryVersion
*
*/
NSS_EXTERN CK_VERSION
nssCKFWInstance_GetLibraryVersion
(
NSSCKFWInstance *fwInstance
);
/*
* nssCKFWInstance_GetModuleHandlesSessionObjects
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWInstance_GetModuleHandlesSessionObjects
(
NSSCKFWInstance *fwInstance
);
/*
* nssCKFWInstance_GetSlots
*
*/
NSS_EXTERN NSSCKFWSlot **
nssCKFWInstance_GetSlots
(
NSSCKFWInstance *fwInstance,
CK_RV *pError
);
/*
* nssCKFWInstance_WaitForSlotEvent
*
*/
NSS_EXTERN NSSCKFWSlot *
nssCKFWInstance_WaitForSlotEvent
(
NSSCKFWInstance *fwInstance,
CK_BBOOL block,
CK_RV *pError
);
/*
* nssCKFWInstance_verifyPointer
*
*/
NSS_EXTERN CK_RV
nssCKFWInstance_verifyPointer
(
const NSSCKFWInstance *fwInstance
);
/*
* NSSCKFWSlot
*
* -- create/destroy --
* nssCKFWSlot_Create
* nssCKFWSlot_Destroy
*
* -- implement public accessors --
* nssCKFWSlot_GetMDSlot
* nssCKFWSlot_GetFWInstance
* nssCKFWSlot_GetMDInstance
*
* -- private accessors --
* nssCKFWSlot_GetSlotID
*
* -- module fronts --
* nssCKFWSlot_GetSlotDescription
* nssCKFWSlot_GetManufacturerID
* nssCKFWSlot_GetTokenPresent
* nssCKFWSlot_GetRemovableDevice
* nssCKFWSlot_GetHardwareSlot
* nssCKFWSlot_GetHardwareVersion
* nssCKFWSlot_GetFirmwareVersion
* nssCKFWSlot_GetToken
*/
/*
* nssCKFWSlot_Create
*
*/
NSS_EXTERN NSSCKFWSlot *
nssCKFWSlot_Create
(
NSSCKFWInstance *fwInstance,
NSSCKMDSlot *mdSlot,
CK_SLOT_ID slotID,
CK_RV *pError
);
/*
* nssCKFWSlot_Destroy
*
*/
NSS_EXTERN CK_RV
nssCKFWSlot_Destroy
(
NSSCKFWSlot *fwSlot
);
/*
* nssCKFWSlot_GetMDSlot
*
*/
NSS_EXTERN NSSCKMDSlot *
nssCKFWSlot_GetMDSlot
(
NSSCKFWSlot *fwSlot
);
/*
* nssCKFWSlot_GetFWInstance
*
*/
NSS_EXTERN NSSCKFWInstance *
nssCKFWSlot_GetFWInstance
(
NSSCKFWSlot *fwSlot
);
/*
* nssCKFWSlot_GetMDInstance
*
*/
NSS_EXTERN NSSCKMDInstance *
nssCKFWSlot_GetMDInstance
(
NSSCKFWSlot *fwSlot
);
/*
* nssCKFWSlot_GetSlotID
*
*/
NSS_EXTERN CK_SLOT_ID
nssCKFWSlot_GetSlotID
(
NSSCKFWSlot *fwSlot
);
/*
* nssCKFWSlot_GetSlotDescription
*
*/
NSS_EXTERN CK_RV
nssCKFWSlot_GetSlotDescription
(
NSSCKFWSlot *fwSlot,
CK_CHAR slotDescription[64]
);
/*
* nssCKFWSlot_GetManufacturerID
*
*/
NSS_EXTERN CK_RV
nssCKFWSlot_GetManufacturerID
(
NSSCKFWSlot *fwSlot,
CK_CHAR manufacturerID[32]
);
/*
* nssCKFWSlot_GetTokenPresent
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWSlot_GetTokenPresent
(
NSSCKFWSlot *fwSlot
);
/*
* nssCKFWSlot_GetRemovableDevice
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWSlot_GetRemovableDevice
(
NSSCKFWSlot *fwSlot
);
/*
* nssCKFWSlot_GetHardwareSlot
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWSlot_GetHardwareSlot
(
NSSCKFWSlot *fwSlot
);
/*
* nssCKFWSlot_GetHardwareVersion
*
*/
NSS_EXTERN CK_VERSION
nssCKFWSlot_GetHardwareVersion
(
NSSCKFWSlot *fwSlot
);
/*
* nssCKFWSlot_GetFirmwareVersion
*
*/
NSS_EXTERN CK_VERSION
nssCKFWSlot_GetFirmwareVersion
(
NSSCKFWSlot *fwSlot
);
/*
* nssCKFWSlot_GetToken
*
*/
NSS_EXTERN NSSCKFWToken *
nssCKFWSlot_GetToken
(
NSSCKFWSlot *fwSlot,
CK_RV *pError
);
/*
* nssCKFWSlot_ClearToken
*
*/
NSS_EXTERN void
nssCKFWSlot_ClearToken
(
NSSCKFWSlot *fwSlot
);
/*
* NSSCKFWToken
*
* -- create/destroy --
* nssCKFWToken_Create
* nssCKFWToken_Destroy
*
* -- implement public accessors --
* nssCKFWToken_GetMDToken
* nssCKFWToken_GetFWSlot
* nssCKFWToken_GetMDSlot
* nssCKFWToken_GetSessionState
*
* -- private accessors --
* nssCKFWToken_SetSessionState
* nssCKFWToken_RemoveSession
* nssCKFWToken_CloseAllSessions
* nssCKFWToken_GetSessionCount
* nssCKFWToken_GetRwSessionCount
* nssCKFWToken_GetRoSessionCount
* nssCKFWToken_GetSessionObjectHash
* nssCKFWToken_GetMDObjectHash
* nssCKFWToken_GetObjectHandleHash
*
* -- module fronts --
* nssCKFWToken_InitToken
* nssCKFWToken_GetLabel
* nssCKFWToken_GetManufacturerID
* nssCKFWToken_GetModel
* nssCKFWToken_GetSerialNumber
* nssCKFWToken_GetHasRNG
* nssCKFWToken_GetIsWriteProtected
* nssCKFWToken_GetLoginRequired
* nssCKFWToken_GetUserPinInitialized
* nssCKFWToken_GetRestoreKeyNotNeeded
* nssCKFWToken_GetHasClockOnToken
* nssCKFWToken_GetHasProtectedAuthenticationPath
* nssCKFWToken_GetSupportsDualCryptoOperations
* nssCKFWToken_GetMaxSessionCount
* nssCKFWToken_GetMaxRwSessionCount
* nssCKFWToken_GetMaxPinLen
* nssCKFWToken_GetMinPinLen
* nssCKFWToken_GetTotalPublicMemory
* nssCKFWToken_GetFreePublicMemory
* nssCKFWToken_GetTotalPrivateMemory
* nssCKFWToken_GetFreePrivateMemory
* nssCKFWToken_GetHardwareVersion
* nssCKFWToken_GetFirmwareVersion
* nssCKFWToken_GetUTCTime
* nssCKFWToken_OpenSession
* nssCKFWToken_GetMechanismCount
* nssCKFWToken_GetMechanismTypes
* nssCKFWToken_GetMechanism
*/
/*
* nssCKFWToken_Create
*
*/
NSS_EXTERN NSSCKFWToken *
nssCKFWToken_Create
(
NSSCKFWSlot *fwSlot,
NSSCKMDToken *mdToken,
CK_RV *pError
);
/*
* nssCKFWToken_Destroy
*
*/
NSS_EXTERN CK_RV
nssCKFWToken_Destroy
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetMDToken
*
*/
NSS_EXTERN NSSCKMDToken *
nssCKFWToken_GetMDToken
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetArena
*
*/
NSS_EXTERN NSSArena *
nssCKFWToken_GetArena
(
NSSCKFWToken *fwToken,
CK_RV *pError
);
/*
* nssCKFWToken_GetFWSlot
*
*/
NSS_EXTERN NSSCKFWSlot *
nssCKFWToken_GetFWSlot
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetMDSlot
*
*/
NSS_EXTERN NSSCKMDSlot *
nssCKFWToken_GetMDSlot
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetSessionState
*
*/
NSS_EXTERN CK_STATE
nssCKFWToken_GetSessionState
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_InitToken
*
*/
NSS_EXTERN CK_RV
nssCKFWToken_InitToken
(
NSSCKFWToken *fwToken,
NSSItem *pin,
NSSUTF8 *label
);
/*
* nssCKFWToken_GetLabel
*
*/
NSS_EXTERN CK_RV
nssCKFWToken_GetLabel
(
NSSCKFWToken *fwToken,
CK_CHAR label[32]
);
/*
* nssCKFWToken_GetManufacturerID
*
*/
NSS_EXTERN CK_RV
nssCKFWToken_GetManufacturerID
(
NSSCKFWToken *fwToken,
CK_CHAR manufacturerID[32]
);
/*
* nssCKFWToken_GetModel
*
*/
NSS_EXTERN CK_RV
nssCKFWToken_GetModel
(
NSSCKFWToken *fwToken,
CK_CHAR model[16]
);
/*
* nssCKFWToken_GetSerialNumber
*
*/
NSS_EXTERN CK_RV
nssCKFWToken_GetSerialNumber
(
NSSCKFWToken *fwToken,
CK_CHAR serialNumber[16]
);
/*
* nssCKFWToken_GetHasRNG
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWToken_GetHasRNG
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetIsWriteProtected
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWToken_GetIsWriteProtected
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetLoginRequired
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWToken_GetLoginRequired
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetUserPinInitialized
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWToken_GetUserPinInitialized
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetRestoreKeyNotNeeded
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWToken_GetRestoreKeyNotNeeded
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetHasClockOnToken
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWToken_GetHasClockOnToken
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetHasProtectedAuthenticationPath
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWToken_GetHasProtectedAuthenticationPath
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetSupportsDualCryptoOperations
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWToken_GetSupportsDualCryptoOperations
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetMaxSessionCount
*
*/
NSS_EXTERN CK_ULONG
nssCKFWToken_GetMaxSessionCount
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetMaxRwSessionCount
*
*/
NSS_EXTERN CK_ULONG
nssCKFWToken_GetMaxRwSessionCount
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetMaxPinLen
*
*/
NSS_EXTERN CK_ULONG
nssCKFWToken_GetMaxPinLen
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetMinPinLen
*
*/
NSS_EXTERN CK_ULONG
nssCKFWToken_GetMinPinLen
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetTotalPublicMemory
*
*/
NSS_EXTERN CK_ULONG
nssCKFWToken_GetTotalPublicMemory
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetFreePublicMemory
*
*/
NSS_EXTERN CK_ULONG
nssCKFWToken_GetFreePublicMemory
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetTotalPrivateMemory
*
*/
NSS_EXTERN CK_ULONG
nssCKFWToken_GetTotalPrivateMemory
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetFreePrivateMemory
*
*/
NSS_EXTERN CK_ULONG
nssCKFWToken_GetFreePrivateMemory
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetHardwareVersion
*
*/
NSS_EXTERN CK_VERSION
nssCKFWToken_GetHardwareVersion
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetFirmwareVersion
*
*/
NSS_EXTERN CK_VERSION
nssCKFWToken_GetFirmwareVersion
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetUTCTime
*
*/
NSS_EXTERN CK_RV
nssCKFWToken_GetUTCTime
(
NSSCKFWToken *fwToken,
CK_CHAR utcTime[16]
);
/*
* nssCKFWToken_OpenSession
*
*/
NSS_EXTERN NSSCKFWSession *
nssCKFWToken_OpenSession
(
NSSCKFWToken *fwToken,
CK_BBOOL rw,
CK_VOID_PTR pApplication,
CK_NOTIFY Notify,
CK_RV *pError
);
/*
* nssCKFWToken_GetMechanismCount
*
*/
NSS_EXTERN CK_ULONG
nssCKFWToken_GetMechanismCount
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetMechanismTypes
*
*/
NSS_EXTERN CK_RV
nssCKFWToken_GetMechanismTypes
(
NSSCKFWToken *fwToken,
CK_MECHANISM_TYPE types[]
);
/*
* nssCKFWToken_GetMechanism
*
*/
NSS_EXTERN NSSCKFWMechanism *
nssCKFWToken_GetMechanism
(
NSSCKFWToken *fwToken,
CK_MECHANISM_TYPE which,
CK_RV *pError
);
/*
* nssCKFWToken_SetSessionState
*
*/
NSS_EXTERN CK_RV
nssCKFWToken_SetSessionState
(
NSSCKFWToken *fwToken,
CK_STATE newState
);
/*
* nssCKFWToken_RemoveSession
*
*/
NSS_EXTERN CK_RV
nssCKFWToken_RemoveSession
(
NSSCKFWToken *fwToken,
NSSCKFWSession *fwSession
);
/*
* nssCKFWToken_CloseAllSessions
*
*/
NSS_EXTERN CK_RV
nssCKFWToken_CloseAllSessions
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetSessionCount
*
*/
NSS_EXTERN CK_ULONG
nssCKFWToken_GetSessionCount
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetRwSessionCount
*
*/
NSS_EXTERN CK_ULONG
nssCKFWToken_GetRwSessionCount
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetRoSessionCount
*
*/
NSS_EXTERN CK_ULONG
nssCKFWToken_GetRoSessionCount
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetSessionObjectHash
*
*/
NSS_EXTERN nssCKFWHash *
nssCKFWToken_GetSessionObjectHash
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetMDObjectHash
*
*/
NSS_EXTERN nssCKFWHash *
nssCKFWToken_GetMDObjectHash
(
NSSCKFWToken *fwToken
);
/*
* nssCKFWToken_GetObjectHandleHash
*
*/
NSS_EXTERN nssCKFWHash *
nssCKFWToken_GetObjectHandleHash
(
NSSCKFWToken *fwToken
);
/*
* NSSCKFWMechanism
*
* -- create/destroy --
* nssCKFWMechanism_Create
* nssCKFWMechanism_Destroy
*
* -- implement public accessors --
* nssCKFWMechanism_GetMDMechanism
*
* -- private accessors --
*
* -- module fronts --
* nssCKFWMechanism_GetMinKeySize
* nssCKFWMechanism_GetMaxKeySize
* nssCKFWMechanism_GetInHardware
* nssCKFWMechanism_GetCanEncrypt
* nssCKFWMechanism_GetCanDecrypt
* nssCKFWMechanism_GetCanDigest
* nssCKFWMechanism_GetCanSignRecover
* nssCKFWMechanism_GetCanVerify
* nssCKFWMechanism_GetCanVerifyRecover
* nssCKFWMechanism_GetCanGenerate
* nssCKFWMechanism_GetCanGenerateKeyPair
* nssCKFWMechanism_GetCanWrap
* nssCKFWMechanism_GetCanUnwrap
* nssCKFWMechanism_GetCanDerive
* nssCKFWMechanism_EncryptInit
* nssCKFWMechanism_DecryptInit
* nssCKFWMechanism_DigestInit
* nssCKFWMechanism_SignInit
* nssCKFWMechanism_SignRecoverInit
* nssCKFWMechanism_VerifyInit
* nssCKFWMechanism_VerifyRecoverInit
* nssCKFWMechanism_GenerateKey
* nssCKFWMechanism_GenerateKeyPair
* nssCKFWMechanism_GetWrapKeyLength
* nssCKFWMechanism_WrapKey
* nssCKFWMechanism_UnwrapKey
* nssCKFWMechanism_DeriveKey
*/
/*
* nssCKFWMechanism_Create
*
*/
NSS_EXTERN NSSCKFWMechanism *
nssCKFWMechanism_Create
(
NSSCKMDMechanism *mdMechanism,
NSSCKMDToken *mdToken,
NSSCKFWToken *fwToken,
NSSCKMDInstance *mdInstance,
NSSCKFWInstance *fwInstance
);
/*
* nssCKFWMechanism_Destroy
*
*/
NSS_EXTERN void
nssCKFWMechanism_Destroy
(
NSSCKFWMechanism *fwMechanism
);
/*
* nssCKFWMechanism_GetMDMechanism
*
*/
NSS_EXTERN NSSCKMDMechanism *
nssCKFWMechanism_GetMDMechanism
(
NSSCKFWMechanism *fwMechanism
);
/*
* nssCKFWMechanism_GetMinKeySize
*
*/
NSS_EXTERN CK_ULONG
nssCKFWMechanism_GetMinKeySize
(
NSSCKFWMechanism *fwMechanism,
CK_RV *pError
);
/*
* nssCKFWMechanism_GetMaxKeySize
*
*/
NSS_EXTERN CK_ULONG
nssCKFWMechanism_GetMaxKeySize
(
NSSCKFWMechanism *fwMechanism,
CK_RV *pError
);
/*
* nssCKFWMechanism_GetInHardware
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWMechanism_GetInHardware
(
NSSCKFWMechanism *fwMechanism,
CK_RV *pError
);
/*
* the following are determined automatically by which of the cryptographic
* functions are defined for this mechanism.
*/
/*
* nssCKFWMechanism_GetCanEncrypt
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWMechanism_GetCanEncrypt
(
NSSCKFWMechanism *fwMechanism,
CK_RV *pError
);
/*
* nssCKFWMechanism_GetCanDecrypt
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWMechanism_GetCanDecrypt
(
NSSCKFWMechanism *fwMechanism,
CK_RV *pError
);
/*
* nssCKFWMechanism_GetCanDigest
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWMechanism_GetCanDigest
(
NSSCKFWMechanism *fwMechanism,
CK_RV *pError
);
/*
* nssCKFWMechanism_GetCanSign
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWMechanism_GetCanSign
(
NSSCKFWMechanism *fwMechanism,
CK_RV *pError
);
/*
* nssCKFWMechanism_GetCanSignRecover
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWMechanism_GetCanSignRecover
(
NSSCKFWMechanism *fwMechanism,
CK_RV *pError
);
/*
* nssCKFWMechanism_GetCanVerify
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWMechanism_GetCanVerify
(
NSSCKFWMechanism *fwMechanism,
CK_RV *pError
);
/*
* nssCKFWMechanism_GetCanVerifyRecover
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWMechanism_GetCanVerifyRecover
(
NSSCKFWMechanism *fwMechanism,
CK_RV *pError
);
/*
* nssCKFWMechanism_GetCanGenerate
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWMechanism_GetCanGenerate
(
NSSCKFWMechanism *fwMechanism,
CK_RV *pError
);
/*
* nssCKFWMechanism_GetCanGenerateKeyPair
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWMechanism_GetCanGenerateKeyPair
(
NSSCKFWMechanism *fwMechanism,
CK_RV *pError
);
/*
* nssCKFWMechanism_GetCanWrap
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWMechanism_GetCanWrap
(
NSSCKFWMechanism *fwMechanism,
CK_RV *pError
);
/*
* nssCKFWMechanism_GetCanUnwrap
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWMechanism_GetCanUnwrap
(
NSSCKFWMechanism *fwMechanism,
CK_RV *pError
);
/*
* nssCKFWMechanism_GetCanDerive
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWMechanism_GetCanDerive
(
NSSCKFWMechanism *fwMechanism,
CK_RV *pError
);
/*
* nssCKFWMechanism_EncryptInit
*/
NSS_EXTERN CK_RV
nssCKFWMechanism_EncryptInit
(
NSSCKFWMechanism *fwMechanism,
CK_MECHANISM *pMechanism,
NSSCKFWSession *fwSession,
NSSCKFWObject *fwObject
);
/*
* nssCKFWMechanism_DecryptInit
*/
NSS_EXTERN CK_RV
nssCKFWMechanism_DecryptInit
(
NSSCKFWMechanism *fwMechanism,
CK_MECHANISM *pMechanism,
NSSCKFWSession *fwSession,
NSSCKFWObject *fwObject
);
/*
* nssCKFWMechanism_DigestInit
*/
NSS_EXTERN CK_RV
nssCKFWMechanism_DigestInit
(
NSSCKFWMechanism *fwMechanism,
CK_MECHANISM *pMechanism,
NSSCKFWSession *fwSession
);
/*
* nssCKFWMechanism_SignInit
*/
NSS_EXTERN CK_RV
nssCKFWMechanism_SignInit
(
NSSCKFWMechanism *fwMechanism,
CK_MECHANISM *pMechanism,
NSSCKFWSession *fwSession,
NSSCKFWObject *fwObject
);
/*
* nssCKFWMechanism_SignRecoverInit
*/
NSS_EXTERN CK_RV
nssCKFWMechanism_SignRecoverInit
(
NSSCKFWMechanism *fwMechanism,
CK_MECHANISM *pMechanism,
NSSCKFWSession *fwSession,
NSSCKFWObject *fwObject
);
/*
* nssCKFWMechanism_VerifyInit
*/
NSS_EXTERN CK_RV
nssCKFWMechanism_VerifyInit
(
NSSCKFWMechanism *fwMechanism,
CK_MECHANISM *pMechanism,
NSSCKFWSession *fwSession,
NSSCKFWObject *fwObject
);
/*
* nssCKFWMechanism_VerifyRecoverInit
*/
NSS_EXTERN CK_RV
nssCKFWMechanism_VerifyRecoverInit
(
NSSCKFWMechanism *fwMechanism,
CK_MECHANISM *pMechanism,
NSSCKFWSession *fwSession,
NSSCKFWObject *fwObject
);
/*
* nssCKFWMechanism_GenerateKey
*/
NSS_EXTERN NSSCKFWObject *
nssCKFWMechanism_GenerateKey
(
NSSCKFWMechanism *fwMechanism,
CK_MECHANISM_PTR pMechanism,
NSSCKFWSession *fwSession,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulAttributeCount,
CK_RV *pError
);
/*
* nssCKFWMechanism_GenerateKeyPair
*/
NSS_EXTERN CK_RV
nssCKFWMechanism_GenerateKeyPair
(
NSSCKFWMechanism *fwMechanism,
CK_MECHANISM_PTR pMechanism,
NSSCKFWSession *fwSession,
CK_ATTRIBUTE_PTR pPublicKeyTemplate,
CK_ULONG ulPublicKeyAttributeCount,
CK_ATTRIBUTE_PTR pPrivateKeyTemplate,
CK_ULONG ulPrivateKeyAttributeCount,
NSSCKFWObject **fwPublicKeyObject,
NSSCKFWObject **fwPrivateKeyObject
);
/*
* nssCKFWMechanism_GetWrapKeyLength
*/
NSS_EXTERN CK_ULONG
nssCKFWMechanism_GetWrapKeyLength
(
NSSCKFWMechanism *fwMechanism,
CK_MECHANISM_PTR pMechanism,
NSSCKFWSession *fwSession,
NSSCKFWObject *fwWrappingKeyObject,
NSSCKFWObject *fwObject,
CK_RV *pError
);
/*
* nssCKFWMechanism_WrapKey
*/
NSS_EXTERN CK_RV
nssCKFWMechanism_WrapKey
(
NSSCKFWMechanism *fwMechanism,
CK_MECHANISM_PTR pMechanism,
NSSCKFWSession *fwSession,
NSSCKFWObject *fwWrappingKeyObject,
NSSCKFWObject *fwObject,
NSSItem *wrappedKey
);
/*
* nssCKFWMechanism_UnwrapKey
*/
NSS_EXTERN NSSCKFWObject *
nssCKFWMechanism_UnwrapKey
(
NSSCKFWMechanism *fwMechanism,
CK_MECHANISM_PTR pMechanism,
NSSCKFWSession *fwSession,
NSSCKFWObject *fwWrappingKeyObject,
NSSItem *wrappedKey,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulAttributeCount,
CK_RV *pError
);
/*
* nssCKFWMechanism_DeriveKey
*/
NSS_EXTERN NSSCKFWObject *
nssCKFWMechanism_DeriveKey
(
NSSCKFWMechanism *fwMechanism,
CK_MECHANISM_PTR pMechanism,
NSSCKFWSession *fwSession,
NSSCKFWObject *fwBaseKeyObject,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulAttributeCount,
CK_RV *pError
);
/*
* NSSCKFWCryptoOperation
*
* -- create/destroy --
* nssCKFWCryptoOperation_Create
* nssCKFWCryptoOperation_Destroy
*
* -- implement public accessors --
* nssCKFWCryptoOperation_GetMDCryptoOperation
* nssCKFWCryptoOperation_GetType
*
* -- private accessors --
*
* -- module fronts --
* nssCKFWCryptoOperation_GetFinalLength
* nssCKFWCryptoOperation_GetOperationLength
* nssCKFWCryptoOperation_Final
* nssCKFWCryptoOperation_Update
* nssCKFWCryptoOperation_DigestUpdate
* nssCKFWCryptoOperation_DigestKey
* nssCKFWCryptoOperation_UpdateFinal
*/
/*
* nssCKFWCrytoOperation_Create
*/
NSS_EXTERN NSSCKFWCryptoOperation *
nssCKFWCryptoOperation_Create
(
NSSCKMDCryptoOperation *mdOperation,
NSSCKMDSession *mdSession,
NSSCKFWSession *fwSession,
NSSCKMDToken *mdToken,
NSSCKFWToken *fwToken,
NSSCKMDInstance *mdInstance,
NSSCKFWInstance *fwInstance,
NSSCKFWCryptoOperationType type,
CK_RV *pError
);
/*
* nssCKFWCryptoOperation_Destroy
*/
NSS_EXTERN void
nssCKFWCryptoOperation_Destroy
(
NSSCKFWCryptoOperation *fwOperation
);
/*
* nssCKFWCryptoOperation_GetMDCryptoOperation
*/
NSS_EXTERN NSSCKMDCryptoOperation *
nssCKFWCryptoOperation_GetMDCryptoOperation
(
NSSCKFWCryptoOperation *fwOperation
);
/*
* nssCKFWCryptoOperation_GetType
*/
NSS_EXTERN NSSCKFWCryptoOperationType
nssCKFWCryptoOperation_GetType
(
NSSCKFWCryptoOperation *fwOperation
);
/*
* nssCKFWCryptoOperation_GetFinalLength
*/
NSS_EXTERN CK_ULONG
nssCKFWCryptoOperation_GetFinalLength
(
NSSCKFWCryptoOperation *fwOperation,
CK_RV *pError
);
/*
* nssCKFWCryptoOperation_GetOperationLength
*/
NSS_EXTERN CK_ULONG
nssCKFWCryptoOperation_GetOperationLength
(
NSSCKFWCryptoOperation *fwOperation,
NSSItem *inputBuffer,
CK_RV *pError
);
/*
* nssCKFWCryptoOperation_Final
*/
NSS_EXTERN CK_RV
nssCKFWCryptoOperation_Final
(
NSSCKFWCryptoOperation *fwOperation,
NSSItem *outputBuffer
);
/*
* nssCKFWCryptoOperation_Update
*/
NSS_EXTERN CK_RV
nssCKFWCryptoOperation_Update
(
NSSCKFWCryptoOperation *fwOperation,
NSSItem *inputBuffer,
NSSItem *outputBuffer
);
/*
* nssCKFWCryptoOperation_DigestUpdate
*/
NSS_EXTERN CK_RV
nssCKFWCryptoOperation_DigestUpdate
(
NSSCKFWCryptoOperation *fwOperation,
NSSItem *inputBuffer
);
/*
* nssCKFWCryptoOperation_DigestKey
*/
NSS_EXTERN CK_RV
nssCKFWCryptoOperation_DigestKey
(
NSSCKFWCryptoOperation *fwOperation,
NSSCKFWObject *fwKey
);
/*
* nssCKFWCryptoOperation_UpdateFinal
*/
NSS_EXTERN CK_RV
nssCKFWCryptoOperation_UpdateFinal
(
NSSCKFWCryptoOperation *fwOperation,
NSSItem *inputBuffer,
NSSItem *outputBuffer
);
/*
* nssCKFWCryptoOperation_UpdateCombo
*/
NSS_EXTERN CK_RV
nssCKFWCryptoOperation_UpdateCombo
(
NSSCKFWCryptoOperation *fwOperation,
NSSCKFWCryptoOperation *fwPeerOperation,
NSSItem *inputBuffer,
NSSItem *outputBuffer
);
/*
* NSSCKFWSession
*
* -- create/destroy --
* nssCKFWSession_Create
* nssCKFWSession_Destroy
*
* -- implement public accessors --
* nssCKFWSession_GetMDSession
* nssCKFWSession_GetArena
* nssCKFWSession_CallNotification
* nssCKFWSession_IsRWSession
* nssCKFWSession_IsSO
* nssCKFWSession_GetCurrentCryptoOperation
*
* -- private accessors --
* nssCKFWSession_GetFWSlot
* nssCKFWSession_GetSessionState
* nssCKFWSession_SetFWFindObjects
* nssCKFWSession_GetFWFindObjects
* nssCKFWSession_SetMDSession
* nssCKFWSession_SetHandle
* nssCKFWSession_GetHandle
* nssCKFWSession_RegisterSessionObject
* nssCKFWSession_DeregisterSessionObject
* nssCKFWSession_SetCurrentCryptoOperation
*
* -- module fronts --
* nssCKFWSession_GetDeviceError
* nssCKFWSession_Login
* nssCKFWSession_Logout
* nssCKFWSession_InitPIN
* nssCKFWSession_SetPIN
* nssCKFWSession_GetOperationStateLen
* nssCKFWSession_GetOperationState
* nssCKFWSession_SetOperationState
* nssCKFWSession_CreateObject
* nssCKFWSession_CopyObject
* nssCKFWSession_FindObjectsInit
* nssCKFWSession_SeedRandom
* nssCKFWSession_GetRandom
* nssCKFWSession_Final
* nssCKFWSession_Update
* nssCKFWSession_DigestUpdate
* nssCKFWSession_DigestKey
* nssCKFWSession_UpdateFinal
* nssCKFWSession_UpdateCombo
*/
/*
* nssCKFWSession_Create
*
*/
NSS_EXTERN NSSCKFWSession *
nssCKFWSession_Create
(
NSSCKFWToken *fwToken,
CK_BBOOL rw,
CK_VOID_PTR pApplication,
CK_NOTIFY Notify,
CK_RV *pError
);
/*
* nssCKFWSession_Destroy
*
*/
NSS_EXTERN CK_RV
nssCKFWSession_Destroy
(
NSSCKFWSession *fwSession,
CK_BBOOL removeFromTokenHash
);
/*
* nssCKFWSession_GetMDSession
*
*/
NSS_EXTERN NSSCKMDSession *
nssCKFWSession_GetMDSession
(
NSSCKFWSession *fwSession
);
/*
* nssCKFWSession_GetArena
*
*/
NSS_EXTERN NSSArena *
nssCKFWSession_GetArena
(
NSSCKFWSession *fwSession,
CK_RV *pError
);
/*
* nssCKFWSession_CallNotification
*
*/
NSS_EXTERN CK_RV
nssCKFWSession_CallNotification
(
NSSCKFWSession *fwSession,
CK_NOTIFICATION event
);
/*
* nssCKFWSession_IsRWSession
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWSession_IsRWSession
(
NSSCKFWSession *fwSession
);
/*
* nssCKFWSession_IsSO
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWSession_IsSO
(
NSSCKFWSession *fwSession
);
/*
* nssCKFWSession_GetFWSlot
*
*/
NSS_EXTERN NSSCKFWSlot *
nssCKFWSession_GetFWSlot
(
NSSCKFWSession *fwSession
);
/*
* nssCFKWSession_GetSessionState
*
*/
NSS_EXTERN CK_STATE
nssCKFWSession_GetSessionState
(
NSSCKFWSession *fwSession
);
/*
* nssCKFWSession_SetFWFindObjects
*
*/
NSS_EXTERN CK_RV
nssCKFWSession_SetFWFindObjects
(
NSSCKFWSession *fwSession,
NSSCKFWFindObjects *fwFindObjects
);
/*
* nssCKFWSession_GetFWFindObjects
*
*/
NSS_EXTERN NSSCKFWFindObjects *
nssCKFWSession_GetFWFindObjects
(
NSSCKFWSession *fwSesssion,
CK_RV *pError
);
/*
* nssCKFWSession_SetMDSession
*
*/
NSS_EXTERN CK_RV
nssCKFWSession_SetMDSession
(
NSSCKFWSession *fwSession,
NSSCKMDSession *mdSession
);
/*
* nssCKFWSession_SetHandle
*
*/
NSS_EXTERN CK_RV
nssCKFWSession_SetHandle
(
NSSCKFWSession *fwSession,
CK_SESSION_HANDLE hSession
);
/*
* nssCKFWSession_GetHandle
*
*/
NSS_EXTERN CK_SESSION_HANDLE
nssCKFWSession_GetHandle
(
NSSCKFWSession *fwSession
);
/*
* nssCKFWSession_RegisterSessionObject
*
*/
NSS_EXTERN CK_RV
nssCKFWSession_RegisterSessionObject
(
NSSCKFWSession *fwSession,
NSSCKFWObject *fwObject
);
/*
* nssCKFWSession_DeregisterSessionObject
*
*/
NSS_EXTERN CK_RV
nssCKFWSession_DeregisterSessionObject
(
NSSCKFWSession *fwSession,
NSSCKFWObject *fwObject
);
/*
* nssCKFWSession_GetDeviceError
*
*/
NSS_EXTERN CK_ULONG
nssCKFWSession_GetDeviceError
(
NSSCKFWSession *fwSession
);
/*
* nssCKFWSession_Login
*
*/
NSS_EXTERN CK_RV
nssCKFWSession_Login
(
NSSCKFWSession *fwSession,
CK_USER_TYPE userType,
NSSItem *pin
);
/*
* nssCKFWSession_Logout
*
*/
NSS_EXTERN CK_RV
nssCKFWSession_Logout
(
NSSCKFWSession *fwSession
);
/*
* nssCKFWSession_InitPIN
*
*/
NSS_EXTERN CK_RV
nssCKFWSession_InitPIN
(
NSSCKFWSession *fwSession,
NSSItem *pin
);
/*
* nssCKFWSession_SetPIN
*
*/
NSS_EXTERN CK_RV
nssCKFWSession_SetPIN
(
NSSCKFWSession *fwSession,
NSSItem *newPin,
NSSItem *oldPin
);
/*
* nssCKFWSession_GetOperationStateLen
*
*/
NSS_EXTERN CK_ULONG
nssCKFWSession_GetOperationStateLen
(
NSSCKFWSession *fwSession,
CK_RV *pError
);
/*
* nssCKFWSession_GetOperationState
*
*/
NSS_EXTERN CK_RV
nssCKFWSession_GetOperationState
(
NSSCKFWSession *fwSession,
NSSItem *buffer
);
/*
* nssCKFWSession_SetOperationState
*
*/
NSS_EXTERN CK_RV
nssCKFWSession_SetOperationState
(
NSSCKFWSession *fwSession,
NSSItem *state,
NSSCKFWObject *encryptionKey,
NSSCKFWObject *authenticationKey
);
/*
* nssCKFWSession_CreateObject
*
*/
NSS_EXTERN NSSCKFWObject *
nssCKFWSession_CreateObject
(
NSSCKFWSession *fwSession,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulAttributeCount,
CK_RV *pError
);
/*
* nssCKFWSession_CopyObject
*
*/
NSS_EXTERN NSSCKFWObject *
nssCKFWSession_CopyObject
(
NSSCKFWSession *fwSession,
NSSCKFWObject *object,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulAttributeCount,
CK_RV *pError
);
/*
* nssCKFWSession_FindObjectsInit
*
*/
NSS_EXTERN NSSCKFWFindObjects *
nssCKFWSession_FindObjectsInit
(
NSSCKFWSession *fwSession,
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulAttributeCount,
CK_RV *pError
);
/*
* nssCKFWSession_SetCurrentCryptoOperation
*/
NSS_IMPLEMENT void
nssCKFWSession_SetCurrentCryptoOperation
(
NSSCKFWSession *fwSession,
NSSCKFWCryptoOperation * fwOperation,
NSSCKFWCryptoOperationState state
);
/*
* nssCKFWSession_GetCurrentCryptoOperation
*/
NSS_IMPLEMENT NSSCKFWCryptoOperation *
nssCKFWSession_GetCurrentCryptoOperation
(
NSSCKFWSession *fwSession,
NSSCKFWCryptoOperationState state
);
/*
* nssCKFWSession_Final
* (terminate a cryptographic operation and get the result)
*/
NSS_IMPLEMENT CK_RV
nssCKFWSession_Final
(
NSSCKFWSession *fwSession,
NSSCKFWCryptoOperationType type,
NSSCKFWCryptoOperationState state,
CK_BYTE_PTR outBuf,
CK_ULONG_PTR outBufLen
);
/*
* nssCKFWSession_Update
* (get the next step of an encrypt/decrypt operation)
*/
NSS_IMPLEMENT CK_RV
nssCKFWSession_Update
(
NSSCKFWSession *fwSession,
NSSCKFWCryptoOperationType type,
NSSCKFWCryptoOperationState state,
CK_BYTE_PTR inBuf,
CK_ULONG inBufLen,
CK_BYTE_PTR outBuf,
CK_ULONG_PTR outBufLen
);
/*
* nssCKFWSession_DigestUpdate
* (do the next step of an digest/sign/verify operation)
*/
NSS_IMPLEMENT CK_RV
nssCKFWSession_DigestUpdate
(
NSSCKFWSession *fwSession,
NSSCKFWCryptoOperationType type,
NSSCKFWCryptoOperationState state,
CK_BYTE_PTR inBuf,
CK_ULONG inBufLen
);
/*
* nssCKFWSession_DigestKey
* (do the next step of an digest/sign/verify operation)
*/
NSS_IMPLEMENT CK_RV
nssCKFWSession_DigestKey
(
NSSCKFWSession *fwSession,
NSSCKFWObject *fwKey
);
/*
* nssCKFWSession_UpdateFinal
* (do a single-step of a cryptographic operation and get the result)
*/
NSS_IMPLEMENT CK_RV
nssCKFWSession_UpdateFinal
(
NSSCKFWSession *fwSession,
NSSCKFWCryptoOperationType type,
NSSCKFWCryptoOperationState state,
CK_BYTE_PTR inBuf,
CK_ULONG inBufLen,
CK_BYTE_PTR outBuf,
CK_ULONG_PTR outBufLen
);
/*
* nssCKFWSession_UpdateCombo
* (do a combination encrypt/decrypt and sign/digest/verify operation)
*/
NSS_IMPLEMENT CK_RV
nssCKFWSession_UpdateCombo
(
NSSCKFWSession *fwSession,
NSSCKFWCryptoOperationType encryptType,
NSSCKFWCryptoOperationType digestType,
NSSCKFWCryptoOperationState digestState,
CK_BYTE_PTR inBuf,
CK_ULONG inBufLen,
CK_BYTE_PTR outBuf,
CK_ULONG_PTR outBufLen
);
/*
* nssCKFWSession_SeedRandom
*
*/
NSS_EXTERN CK_RV
nssCKFWSession_SeedRandom
(
NSSCKFWSession *fwSession,
NSSItem *seed
);
/*
* nssCKFWSession_GetRandom
*
*/
NSS_EXTERN CK_RV
nssCKFWSession_GetRandom
(
NSSCKFWSession *fwSession,
NSSItem *buffer
);
/*
* NSSCKFWObject
*
* -- create/destroy --
* nssCKFWObject_Create
* nssCKFWObject_Finalize
* nssCKFWObject_Destroy
*
* -- implement public accessors --
* nssCKFWObject_GetMDObject
* nssCKFWObject_GetArena
*
* -- private accessors --
* nssCKFWObject_SetHandle
* nssCKFWObject_GetHandle
*
* -- module fronts --
* nssCKFWObject_IsTokenObject
* nssCKFWObject_GetAttributeCount
* nssCKFWObject_GetAttributeTypes
* nssCKFWObject_GetAttributeSize
* nssCKFWObject_GetAttribute
* nssCKFWObject_SetAttribute
* nssCKFWObject_GetObjectSize
*/
/*
* nssCKFWObject_Create
*
*/
NSS_EXTERN NSSCKFWObject *
nssCKFWObject_Create
(
NSSArena *arena,
NSSCKMDObject *mdObject,
NSSCKFWSession *fwSession,
NSSCKFWToken *fwToken,
NSSCKFWInstance *fwInstance,
CK_RV *pError
);
/*
* nssCKFWObject_Finalize
*
*/
NSS_EXTERN void
nssCKFWObject_Finalize
(
NSSCKFWObject *fwObject,
PRBool removeFromHash
);
/*
* nssCKFWObject_Destroy
*
*/
NSS_EXTERN void
nssCKFWObject_Destroy
(
NSSCKFWObject *fwObject
);
/*
* nssCKFWObject_GetMDObject
*
*/
NSS_EXTERN NSSCKMDObject *
nssCKFWObject_GetMDObject
(
NSSCKFWObject *fwObject
);
/*
* nssCKFWObject_GetArena
*
*/
NSS_EXTERN NSSArena *
nssCKFWObject_GetArena
(
NSSCKFWObject *fwObject,
CK_RV *pError
);
/*
* nssCKFWObject_SetHandle
*
*/
NSS_EXTERN CK_RV
nssCKFWObject_SetHandle
(
NSSCKFWObject *fwObject,
CK_OBJECT_HANDLE hObject
);
/*
* nssCKFWObject_GetHandle
*
*/
NSS_EXTERN CK_OBJECT_HANDLE
nssCKFWObject_GetHandle
(
NSSCKFWObject *fwObject
);
/*
* nssCKFWObject_IsTokenObject
*
*/
NSS_EXTERN CK_BBOOL
nssCKFWObject_IsTokenObject
(
NSSCKFWObject *fwObject
);
/*
* nssCKFWObject_GetAttributeCount
*
*/
NSS_EXTERN CK_ULONG
nssCKFWObject_GetAttributeCount
(
NSSCKFWObject *fwObject,
CK_RV *pError
);
/*
* nssCKFWObject_GetAttributeTypes
*
*/
NSS_EXTERN CK_RV
nssCKFWObject_GetAttributeTypes
(
NSSCKFWObject *fwObject,
CK_ATTRIBUTE_TYPE_PTR typeArray,
CK_ULONG ulCount
);
/*
* nssCKFWObject_GetAttributeSize
*
*/
NSS_EXTERN CK_ULONG
nssCKFWObject_GetAttributeSize
(
NSSCKFWObject *fwObject,
CK_ATTRIBUTE_TYPE attribute,
CK_RV *pError
);
/*
* nssCKFWObject_GetAttribute
*
* Usual NSS allocation rules:
* If itemOpt is not NULL, it will be returned; otherwise an NSSItem
* will be allocated. If itemOpt is not NULL but itemOpt->data is,
* the buffer will be allocated; otherwise, the buffer will be used.
* Any allocations will come from the optional arena, if one is
* specified.
*/
NSS_EXTERN NSSItem *
nssCKFWObject_GetAttribute
(
NSSCKFWObject *fwObject,
CK_ATTRIBUTE_TYPE attribute,
NSSItem *itemOpt,
NSSArena *arenaOpt,
CK_RV *pError
);
/*
* nssCKFWObject_SetAttribute
*
*/
NSS_EXTERN CK_RV
nssCKFWObject_SetAttribute
(
NSSCKFWObject *fwObject,
NSSCKFWSession *fwSession,
CK_ATTRIBUTE_TYPE attribute,
NSSItem *value
);
/*
* nssCKFWObject_GetObjectSize
*
*/
NSS_EXTERN CK_ULONG
nssCKFWObject_GetObjectSize
(
NSSCKFWObject *fwObject,
CK_RV *pError
);
/*
* NSSCKFWFindObjects
*
* -- create/destroy --
* nssCKFWFindObjects_Create
* nssCKFWFindObjects_Destroy
*
* -- implement public accessors --
* nssCKFWFindObjects_GetMDFindObjects
*
* -- private accessors --
*
* -- module fronts --
* nssCKFWFindObjects_Next
*/
/*
* nssCKFWFindObjects_Create
*
*/
NSS_EXTERN NSSCKFWFindObjects *
nssCKFWFindObjects_Create
(
NSSCKFWSession *fwSession,
NSSCKFWToken *fwToken,
NSSCKFWInstance *fwInstance,
NSSCKMDFindObjects *mdFindObjects1,
NSSCKMDFindObjects *mdFindObjects2,
CK_RV *pError
);
/*
* nssCKFWFindObjects_Destroy
*
*/
NSS_EXTERN void
nssCKFWFindObjects_Destroy
(
NSSCKFWFindObjects *fwFindObjects
);
/*
* nssCKFWFindObjects_GetMDFindObjects
*
*/
NSS_EXTERN NSSCKMDFindObjects *
nssCKFWFindObjects_GetMDFindObjects
(
NSSCKFWFindObjects *fwFindObjects
);
/*
* nssCKFWFindObjects_Next
*
*/
NSS_EXTERN NSSCKFWObject *
nssCKFWFindObjects_Next
(
NSSCKFWFindObjects *fwFindObjects,
NSSArena *arenaOpt,
CK_RV *pError
);
/*
* NSSCKFWMutex
*
* nssCKFWMutex_Create
* nssCKFWMutex_Destroy
* nssCKFWMutex_Lock
* nssCKFWMutex_Unlock
*
*/
/*
* nssCKFWMutex_Create
*
*/
NSS_EXTERN NSSCKFWMutex *
nssCKFWMutex_Create
(
CK_C_INITIALIZE_ARGS_PTR pInitArgs,
CryptokiLockingState LockingState,
NSSArena *arena,
CK_RV *pError
);
/*
* nssCKFWMutex_Destroy
*
*/
NSS_EXTERN CK_RV
nssCKFWMutex_Destroy
(
NSSCKFWMutex *mutex
);
/*
* nssCKFWMutex_Lock
*
*/
NSS_EXTERN CK_RV
nssCKFWMutex_Lock
(
NSSCKFWMutex *mutex
);
/*
* nssCKFWMutex_Unlock
*
*/
NSS_EXTERN CK_RV
nssCKFWMutex_Unlock
(
NSSCKFWMutex *mutex
);
#endif /* CKFW_H */