|
Packit |
8681c6 |
/*
|
|
Packit |
8681c6 |
* COPYRIGHT (c) International Business Machines Corp. 2001-2017
|
|
Packit |
8681c6 |
*
|
|
Packit |
8681c6 |
* This program is provided under the terms of the Common Public License,
|
|
Packit |
8681c6 |
* version 1.0 (CPL-1.0). Any use, reproduction or distribution for this
|
|
Packit |
8681c6 |
* software constitutes recipient's acceptance of CPL-1.0 terms which can be
|
|
Packit |
8681c6 |
* found in the file LICENSE file or at
|
|
Packit |
8681c6 |
* https://opensource.org/licenses/cpl1.0.php
|
|
Packit |
8681c6 |
*/
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
//
|
|
Packit |
8681c6 |
// API Local control blocks within the PKCS11 Meta API
|
|
Packit |
8681c6 |
//
|
|
Packit |
8681c6 |
//
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
#include <pkcs11types.h>
|
|
Packit |
8681c6 |
#include <limits.h>
|
|
Packit |
8681c6 |
#include <local_types.h>
|
|
Packit |
8681c6 |
#include <slotmgr.h>
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
#include "local_types.h"
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
#ifndef _STDLL_H
|
|
Packit |
8681c6 |
#define _STDLL_H
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
typedef struct {
|
|
Packit |
8681c6 |
struct bt_ref_hdr hdr;
|
|
Packit |
8681c6 |
CK_SLOT_ID slotID;
|
|
Packit |
8681c6 |
CK_SESSION_HANDLE sessionh;
|
|
Packit |
8681c6 |
} ST_SESSION_T;
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
typedef struct trace_handle_t trace_handle;
|
|
Packit |
8681c6 |
typedef ST_SESSION_T ST_SESSION_HANDLE;
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
/* CK_FUNCTION_LIST is a structure holding a Cryptoki spec
|
|
Packit |
8681c6 |
* version and pointers of appropriate types to all the
|
|
Packit |
8681c6 |
* Cryptoki functions
|
|
Packit |
8681c6 |
* CK_FUNCTION_LIST is new for v2.0
|
|
Packit |
8681c6 |
*/
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_Initialize) (API_Slot_t *sltp, CK_SLOT_ID slotID,
|
|
Packit |
8681c6 |
SLOT_INFO *sinfp, trace_handle t);
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_Finalize) (CK_VOID_PTR pReserved);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_Terminate) (void);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_GetInfo) (CK_INFO_PTR pInfo);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_GetFunctionList) (CK_FUNCTION_LIST_PTR_PTR
|
|
Packit |
8681c6 |
ppFunctionList);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_GetSlotList) (CK_BBOOL tokenPresent,
|
|
Packit |
8681c6 |
CK_SLOT_ID_PTR pSlotList,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pusCount);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_GetSlotInfo) (CK_SLOT_ID slotID,
|
|
Packit |
8681c6 |
CK_SLOT_INFO_PTR pInfo);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_GetTokenInfo) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
CK_SLOT_ID slotID,
|
|
Packit |
8681c6 |
CK_TOKEN_INFO_PTR pInfo);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_GetMechanismList) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
CK_SLOT_ID slotID,
|
|
Packit |
8681c6 |
CK_MECHANISM_TYPE_PTR
|
|
Packit |
8681c6 |
pMechanismList,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pusCount);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_GetMechanismInfo) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
CK_SLOT_ID slotID,
|
|
Packit |
8681c6 |
CK_MECHANISM_TYPE type,
|
|
Packit |
8681c6 |
CK_MECHANISM_INFO_PTR pInfo);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_InitToken) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
CK_SLOT_ID slotID, CK_CHAR_PTR pPin,
|
|
Packit |
8681c6 |
CK_ULONG usPinLen, CK_CHAR_PTR pLabel);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_InitPIN) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession, CK_CHAR_PTR pPin,
|
|
Packit |
8681c6 |
CK_ULONG usPinLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_SetPIN) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession, CK_CHAR_PTR pOldPin,
|
|
Packit |
8681c6 |
CK_ULONG usOldLen, CK_CHAR_PTR pNewPin,
|
|
Packit |
8681c6 |
CK_ULONG usNewLen);
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
// typedef CK_RV (CK_PTR ST_C_OpenSession)
|
|
Packit |
8681c6 |
// (CK_SLOT_ID slotID, CK_FLAGS flags,
|
|
Packit |
8681c6 |
// CK_VOID_PTR pApplication,
|
|
Packit |
8681c6 |
// CK_RV (*Notify) (CK_SESSION_HANDLE hSession,
|
|
Packit |
8681c6 |
// CK_NOTIFICATION event, CK_VOID_PTR pApplication),
|
|
Packit |
8681c6 |
// CK_SESSION_HANDLE_PTR phSession);
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_OpenSession) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
CK_SLOT_ID slotID, CK_FLAGS flags,
|
|
Packit |
8681c6 |
CK_SESSION_HANDLE_PTR phSession);
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_CloseSession) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BBOOL in_fork_initializer);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_CloseAllSessions) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
CK_SLOT_ID slotID);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_GetSessionInfo) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_SESSION_INFO_PTR pInfo);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_GetOperationState) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pOperationState,
|
|
Packit |
8681c6 |
CK_ULONG_PTR
|
|
Packit |
8681c6 |
pulOperationStateLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_SetOperationState) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pOperationState,
|
|
Packit |
8681c6 |
CK_ULONG ulOperationStateLen,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hEncryptionKey,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE
|
|
Packit |
8681c6 |
hAuthenticationKey);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_Login) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_USER_TYPE userType, CK_CHAR_PTR pPin,
|
|
Packit |
8681c6 |
CK_ULONG usPinLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_Logout) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_CreateObject) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_ATTRIBUTE_PTR pTemplate,
|
|
Packit |
8681c6 |
CK_ULONG usCount,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE_PTR phObject);
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_CopyObject) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hObject,
|
|
Packit |
8681c6 |
CK_ATTRIBUTE_PTR pTemplate,
|
|
Packit |
8681c6 |
CK_ULONG usCount,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE_PTR phNewObject);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_DestroyObject) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hObject);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_GetObjectSize) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hObject,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pusSize);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_GetAttributeValue) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hObject,
|
|
Packit |
8681c6 |
CK_ATTRIBUTE_PTR pTemplate,
|
|
Packit |
8681c6 |
CK_ULONG usCount);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_SetAttributeValue) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hObject,
|
|
Packit |
8681c6 |
CK_ATTRIBUTE_PTR pTemplate,
|
|
Packit |
8681c6 |
CK_ULONG usCount);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_FindObjectsInit) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_ATTRIBUTE_PTR pTemplate,
|
|
Packit |
8681c6 |
CK_ULONG usCount);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_FindObjects) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE_PTR phObject,
|
|
Packit |
8681c6 |
CK_ULONG usMaxObjectCount,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pusObjectCount);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_FindObjectsFinal) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_EncryptInit) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_MECHANISM_PTR pMechanism,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hKey);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_Encrypt) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession, CK_BYTE_PTR pData,
|
|
Packit |
8681c6 |
CK_ULONG usDataLen,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pEncryptedData,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pusEncryptedDataLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_EncryptUpdate) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pPart, CK_ULONG usPartLen,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pEncryptedPart,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pusEncryptedPartLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_EncryptFinal) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pLastEncryptedPart,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pusLastEncryptedPartLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_DecryptInit) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_MECHANISM_PTR pMechanism,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hKey);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_Decrypt) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pEncryptedData,
|
|
Packit |
8681c6 |
CK_ULONG usEncryptedDataLen,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pData, CK_ULONG_PTR pusDataLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_DecryptUpdate) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pEncryptedPart,
|
|
Packit |
8681c6 |
CK_ULONG usEncryptedPartLen,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pPart,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pusPartLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_DecryptFinal) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pLastPart,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pusLastPartLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_DigestInit) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_MECHANISM_PTR pMechanism);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_Digest) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession, CK_BYTE_PTR pData,
|
|
Packit |
8681c6 |
CK_ULONG usDataLen, CK_BYTE_PTR pDigest,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pusDigestLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_DigestUpdate) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pPart, CK_ULONG usPartLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_DigestKey) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hKey);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_DigestFinal) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pDigest,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pusDigestLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_SignInit) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_MECHANISM_PTR pMechanism,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hKey);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_Sign) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession, CK_BYTE_PTR pData,
|
|
Packit |
8681c6 |
CK_ULONG usDataLen, CK_BYTE_PTR pSignature,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pusSignatureLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_SignUpdate) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pPart, CK_ULONG usPartLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_SignFinal) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pSignature,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pusSignatureLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_SignRecoverInit) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_MECHANISM_PTR pMechanism,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hKey);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_SignRecover) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pData, CK_ULONG usDataLen,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pSignature,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pusSignatureLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_VerifyInit) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_MECHANISM_PTR pMechanism,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hKey);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_Verify) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession, CK_BYTE_PTR pData,
|
|
Packit |
8681c6 |
CK_ULONG usDataLen, CK_BYTE_PTR pSignature,
|
|
Packit |
8681c6 |
CK_ULONG usSignatureLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_VerifyUpdate) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pPart, CK_ULONG usPartLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_VerifyFinal) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pSignature,
|
|
Packit |
8681c6 |
CK_ULONG usSignatureLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_VerifyRecoverInit) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_MECHANISM_PTR pMechanism,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hKey);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_VerifyRecover) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pSignature,
|
|
Packit |
8681c6 |
CK_ULONG usSignatureLen,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pData,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pusDataLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_DigestEncryptUpdate) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pPart,
|
|
Packit |
8681c6 |
CK_ULONG ulPartLen,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pEncryptedPart,
|
|
Packit |
8681c6 |
CK_ULONG_PTR
|
|
Packit |
8681c6 |
pulEncryptedPartLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_DecryptDigestUpdate) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pEncryptedPart,
|
|
Packit |
8681c6 |
CK_ULONG ulEncryptedPartLen,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pPart,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pulPartLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_SignEncryptUpdate) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pPart,
|
|
Packit |
8681c6 |
CK_ULONG ulPartLen,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pEncryptedPart,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pulEncryptedPartLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_DecryptVerifyUpdate) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pEncryptedPart,
|
|
Packit |
8681c6 |
CK_ULONG ulEncryptedPartLen,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pPart,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pulPartLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_GenerateKey) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_MECHANISM_PTR pMechanism,
|
|
Packit |
8681c6 |
CK_ATTRIBUTE_PTR pTemplate,
|
|
Packit |
8681c6 |
CK_ULONG usCount,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE_PTR phKey);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_GenerateKeyPair) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_MECHANISM_PTR pMechanism,
|
|
Packit |
8681c6 |
CK_ATTRIBUTE_PTR pPublicKeyTemplate,
|
|
Packit |
8681c6 |
CK_ULONG usPublicKeyAttributeCount,
|
|
Packit |
8681c6 |
CK_ATTRIBUTE_PTR
|
|
Packit |
8681c6 |
pPrivateKeyTemplate,
|
|
Packit |
8681c6 |
CK_ULONG usPrivateKeyAttributeCount,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE_PTR phPrivateKey,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE_PTR phPublicKey);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_WrapKey) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_MECHANISM_PTR pMechanism,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hWrappingKey,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hKey,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pWrappedKey,
|
|
Packit |
8681c6 |
CK_ULONG_PTR pusWrappedKeyLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_UnwrapKey) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_MECHANISM_PTR pMechanism,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hUnwrappingKey,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pWrappedKey,
|
|
Packit |
8681c6 |
CK_ULONG usWrappedKeyLen,
|
|
Packit |
8681c6 |
CK_ATTRIBUTE_PTR pTemplate,
|
|
Packit |
8681c6 |
CK_ULONG usAttributeCount,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE_PTR phKey);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_DeriveKey) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_MECHANISM_PTR pMechanism,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE hBaseKey,
|
|
Packit |
8681c6 |
CK_ATTRIBUTE_PTR pTemplate,
|
|
Packit |
8681c6 |
CK_ULONG usAttributeCount,
|
|
Packit |
8681c6 |
CK_OBJECT_HANDLE_PTR phKey);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_SeedRandom) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pSeed, CK_ULONG usSeedLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_GenerateRandom) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_BYTE_PTR pRandomData,
|
|
Packit |
8681c6 |
CK_ULONG usRandomLen);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_GetFunctionStatus) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_CancelFunction) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
ST_SESSION_T *hSession);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_Notify) (ST_SESSION_T *hSession,
|
|
Packit |
8681c6 |
CK_NOTIFICATION event,
|
|
Packit |
8681c6 |
CK_VOID_PTR pApplication);
|
|
Packit |
8681c6 |
typedef CK_RV (CK_PTR ST_C_WaitForSlotEvent) (STDLL_TokData_t *tokdata,
|
|
Packit |
8681c6 |
CK_FLAGS flags,
|
|
Packit |
8681c6 |
CK_SLOT_ID_PTR pSlot,
|
|
Packit |
8681c6 |
CK_VOID_PTR pReserved);
|
|
Packit |
8681c6 |
|
|
Packit Service |
8aa27d |
typedef CK_RV (CK_PTR ST_C_IBM_ReencryptSingle)(STDLL_TokData_t *tokdata,
|
|
Packit Service |
8aa27d |
ST_SESSION_T *hSession,
|
|
Packit Service |
8aa27d |
CK_MECHANISM_PTR pDecrMech,
|
|
Packit Service |
8aa27d |
CK_OBJECT_HANDLE hDecrKey,
|
|
Packit Service |
8aa27d |
CK_MECHANISM_PTR pEncrMech,
|
|
Packit Service |
8aa27d |
CK_OBJECT_HANDLE hEncrKey,
|
|
Packit Service |
8aa27d |
CK_BYTE_PTR pEncryptedData,
|
|
Packit Service |
8aa27d |
CK_ULONG ulEncryptedDataLen,
|
|
Packit Service |
8aa27d |
CK_BYTE_PTR pReencryptedData,
|
|
Packit Service |
8aa27d |
CK_ULONG_PTR pulReencryptedDataLen);
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
struct ST_FCN_LIST {
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
// Need initialization function But it is different than
|
|
Packit |
8681c6 |
// the C_Initialize
|
|
Packit |
8681c6 |
ST_C_Initialize ST_Initialize;
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
ST_C_GetTokenInfo ST_GetTokenInfo;
|
|
Packit |
8681c6 |
ST_C_GetMechanismList ST_GetMechanismList;
|
|
Packit |
8681c6 |
ST_C_GetMechanismInfo ST_GetMechanismInfo;
|
|
Packit |
8681c6 |
ST_C_InitToken ST_InitToken;
|
|
Packit |
8681c6 |
ST_C_InitPIN ST_InitPIN;
|
|
Packit |
8681c6 |
ST_C_SetPIN ST_SetPIN;
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
ST_C_OpenSession ST_OpenSession;
|
|
Packit |
8681c6 |
ST_C_CloseSession ST_CloseSession;
|
|
Packit |
8681c6 |
ST_C_GetSessionInfo ST_GetSessionInfo;
|
|
Packit |
8681c6 |
ST_C_GetOperationState ST_GetOperationState; // Not used by Netscape
|
|
Packit |
8681c6 |
ST_C_SetOperationState ST_SetOperationState; // Not used by Netscape
|
|
Packit |
8681c6 |
ST_C_Login ST_Login;
|
|
Packit |
8681c6 |
ST_C_Logout ST_Logout;
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
ST_C_CreateObject ST_CreateObject;
|
|
Packit |
8681c6 |
ST_C_CopyObject ST_CopyObject;
|
|
Packit |
8681c6 |
ST_C_DestroyObject ST_DestroyObject;
|
|
Packit |
8681c6 |
ST_C_GetObjectSize ST_GetObjectSize;
|
|
Packit |
8681c6 |
ST_C_GetAttributeValue ST_GetAttributeValue;
|
|
Packit |
8681c6 |
ST_C_SetAttributeValue ST_SetAttributeValue;
|
|
Packit |
8681c6 |
ST_C_FindObjectsInit ST_FindObjectsInit;
|
|
Packit |
8681c6 |
ST_C_FindObjects ST_FindObjects;
|
|
Packit |
8681c6 |
ST_C_FindObjectsFinal ST_FindObjectsFinal;
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
ST_C_EncryptInit ST_EncryptInit;
|
|
Packit |
8681c6 |
ST_C_Encrypt ST_Encrypt;
|
|
Packit |
8681c6 |
ST_C_EncryptUpdate ST_EncryptUpdate; // Not used by Netscape
|
|
Packit |
8681c6 |
ST_C_EncryptFinal ST_EncryptFinal; // Not used by Netscape
|
|
Packit |
8681c6 |
ST_C_DecryptInit ST_DecryptInit;
|
|
Packit |
8681c6 |
ST_C_Decrypt ST_Decrypt;
|
|
Packit |
8681c6 |
ST_C_DecryptUpdate ST_DecryptUpdate; // Not used by Netscape
|
|
Packit |
8681c6 |
ST_C_DecryptFinal ST_DecryptFinal; // Not used by Netscape
|
|
Packit |
8681c6 |
ST_C_DigestInit ST_DigestInit;
|
|
Packit |
8681c6 |
ST_C_Digest ST_Digest;
|
|
Packit |
8681c6 |
ST_C_DigestUpdate ST_DigestUpdate;
|
|
Packit |
8681c6 |
ST_C_DigestKey ST_DigestKey;
|
|
Packit |
8681c6 |
ST_C_DigestFinal ST_DigestFinal;
|
|
Packit |
8681c6 |
ST_C_SignInit ST_SignInit;
|
|
Packit |
8681c6 |
ST_C_Sign ST_Sign;
|
|
Packit |
8681c6 |
ST_C_SignUpdate ST_SignUpdate;
|
|
Packit |
8681c6 |
ST_C_SignFinal ST_SignFinal;
|
|
Packit |
8681c6 |
ST_C_SignRecoverInit ST_SignRecoverInit;
|
|
Packit |
8681c6 |
ST_C_SignRecover ST_SignRecover;
|
|
Packit |
8681c6 |
ST_C_VerifyInit ST_VerifyInit;
|
|
Packit |
8681c6 |
ST_C_Verify ST_Verify;
|
|
Packit |
8681c6 |
ST_C_VerifyUpdate ST_VerifyUpdate;
|
|
Packit |
8681c6 |
ST_C_VerifyFinal ST_VerifyFinal;
|
|
Packit |
8681c6 |
ST_C_VerifyRecoverInit ST_VerifyRecoverInit;
|
|
Packit |
8681c6 |
ST_C_VerifyRecover ST_VerifyRecover;
|
|
Packit |
8681c6 |
ST_C_DigestEncryptUpdate ST_DigestEncryptUpdate;
|
|
Packit |
8681c6 |
ST_C_DecryptDigestUpdate ST_DecryptDigestUpdate;
|
|
Packit |
8681c6 |
ST_C_SignEncryptUpdate ST_SignEncryptUpdate;
|
|
Packit |
8681c6 |
ST_C_DecryptVerifyUpdate ST_DecryptVerifyUpdate;
|
|
Packit |
8681c6 |
ST_C_GenerateKey ST_GenerateKey;
|
|
Packit |
8681c6 |
ST_C_GenerateKeyPair ST_GenerateKeyPair;
|
|
Packit |
8681c6 |
ST_C_WrapKey ST_WrapKey; // Netscape optionsl will use En/Decrypt
|
|
Packit |
8681c6 |
ST_C_UnwrapKey ST_UnwrapKey;
|
|
Packit |
8681c6 |
ST_C_DeriveKey ST_DeriveKey;
|
|
Packit |
8681c6 |
ST_C_SeedRandom ST_SeedRandom;
|
|
Packit |
8681c6 |
ST_C_GenerateRandom ST_GenerateRandom;
|
|
Packit |
8681c6 |
// Question if these have to be implemented for Netscape support
|
|
Packit |
8681c6 |
ST_C_GetFunctionStatus ST_GetFunctionStatus;
|
|
Packit |
8681c6 |
ST_C_CancelFunction ST_CancelFunction;
|
|
Packit |
8681c6 |
|
|
Packit Service |
8aa27d |
ST_C_IBM_ReencryptSingle ST_IBM_ReencryptSingle;
|
|
Packit |
8681c6 |
};
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
typedef struct ST_FCN_LIST STDLL_FcnList_t;
|
|
Packit |
8681c6 |
|
|
Packit |
8681c6 |
#endif
|