Initial commit for ykcs11.
This commit is contained in:
+875
@@ -0,0 +1,875 @@
|
||||
#include "pkcs11.h"
|
||||
#include <stdio.h>
|
||||
|
||||
#define D(x) do { \
|
||||
printf ("debug: %s:%d (%s): ", __FILE__, __LINE__, __FUNCTION__); \
|
||||
printf x; \
|
||||
printf ("\n"); \
|
||||
} while (0)
|
||||
|
||||
#define DBG(x) if (debug) { D(x); }
|
||||
|
||||
static const int debug = 1;
|
||||
|
||||
extern CK_FUNCTION_LIST function_list;
|
||||
|
||||
/* General Purpose */
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_Initialize)(
|
||||
CK_VOID_PTR pInitArgs
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_Finalize)(
|
||||
CK_VOID_PTR pReserved
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_GetInfo)(
|
||||
CK_VOID_PTR pInfo
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_GetFunctionList)(
|
||||
CK_FUNCTION_LIST_PTR_PTR ppFunctionList
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
if(ppFunctionList == NULL_PTR) {
|
||||
return CKR_ARGUMENTS_BAD;
|
||||
}
|
||||
*ppFunctionList = &function_list;
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
/* Slot and token management */
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_GetSlotList)(
|
||||
CK_BBOOL tokenPresent,
|
||||
CK_SLOT_ID_PTR pSlotList,
|
||||
CK_ULONG_PTR pulCount
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_GetSlotInfo)(
|
||||
CK_SLOT_ID slotID,
|
||||
CK_SLOT_INFO_PTR pInfo
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_GetTokenInfo)(
|
||||
CK_SLOT_ID slotID,
|
||||
CK_TOKEN_INFO_PTR pInfo
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_WaitForSlotEvent)(
|
||||
CK_FLAGS flags,
|
||||
CK_SLOT_ID_PTR pSlot,
|
||||
CK_VOID_PTR pReserved
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_GetMechanismList)(
|
||||
CK_SLOT_ID slotID,
|
||||
CK_MECHANISM_TYPE_PTR pMechanismList,
|
||||
CK_ULONG_PTR pulCount
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_GetMechanismInfo)(
|
||||
CK_SLOT_ID slotID,
|
||||
CK_MECHANISM_TYPE type,
|
||||
CK_MECHANISM_INFO_PTR pInfo
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_InitToken)(
|
||||
CK_SLOT_ID slotID,
|
||||
CK_UTF8CHAR_PTR pPin,
|
||||
CK_ULONG ulPinLen,
|
||||
CK_UTF8CHAR_PTR pLabel
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_InitPIN)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_UTF8CHAR_PTR pPin,
|
||||
CK_ULONG ulPinLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_SetPIN)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_UTF8CHAR_PTR pOldPin,
|
||||
CK_ULONG ulOldLen,
|
||||
CK_UTF8CHAR_PTR pNewPin,
|
||||
CK_ULONG ulNewLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_OpenSession)(
|
||||
CK_SLOT_ID slotID,
|
||||
CK_FLAGS flags,
|
||||
CK_VOID_PTR pApplication,
|
||||
CK_NOTIFY Notify,
|
||||
CK_SESSION_HANDLE_PTR phSession
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_CloseSession)(
|
||||
CK_SESSION_HANDLE hSession
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_CloseAllSessions)(
|
||||
CK_SLOT_ID slotID
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_GetSessionInfo)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_SESSION_INFO_PTR pInfo
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_GetOperationState)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pOperationState,
|
||||
CK_ULONG_PTR pulOperationStateLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_SetOperationState)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pOperationState,
|
||||
CK_ULONG ulOperationStateLen,
|
||||
CK_OBJECT_HANDLE hEncryptionKey,
|
||||
CK_OBJECT_HANDLE hAuthenticationKey
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_Login)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_USER_TYPE userType,
|
||||
CK_UTF8CHAR_PTR pPin,
|
||||
CK_ULONG ulPinLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_Logout)(
|
||||
CK_SESSION_HANDLE hSession
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_CreateObject)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulCount,
|
||||
CK_OBJECT_HANDLE_PTR phObject
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_CopyObject)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_OBJECT_HANDLE hObject,
|
||||
CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulCount,
|
||||
CK_OBJECT_HANDLE_PTR phNewObject
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_DestroyObject)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_OBJECT_HANDLE hObject
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_GetObjectSize)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_OBJECT_HANDLE hObject,
|
||||
CK_ULONG_PTR pulSize
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_GetAttributeValue)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_OBJECT_HANDLE hObject,
|
||||
CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulCount
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_SetAttributeValue)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_OBJECT_HANDLE hObject,
|
||||
CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulCount
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_FindObjectsInit)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulCount
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_FindObjects)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_OBJECT_HANDLE_PTR phObject,
|
||||
CK_ULONG ulMaxObjectCount,
|
||||
CK_ULONG_PTR pulObjectCount
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_FindObjectsFinal)(
|
||||
CK_SESSION_HANDLE hSession
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_EncryptInit)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_MECHANISM_PTR pMechanism,
|
||||
CK_OBJECT_HANDLE hKey
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_Encrypt)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pData,
|
||||
CK_ULONG ulDataLen,
|
||||
CK_BYTE_PTR pEncryptedData,
|
||||
CK_ULONG_PTR pulEncryptedDataLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_EncryptUpdate)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pPart,
|
||||
CK_ULONG ulPartLen,
|
||||
CK_BYTE_PTR pEncryptedPart,
|
||||
CK_ULONG_PTR pulEncryptedPartLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_EncryptFinal)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pLastEncryptedPart,
|
||||
CK_ULONG_PTR pulLastEncryptedPartLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_DecryptInit)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_MECHANISM_PTR pMechanism,
|
||||
CK_OBJECT_HANDLE hKey
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_Decrypt)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pEncryptedData,
|
||||
CK_ULONG ulEncryptedDataLen,
|
||||
CK_BYTE_PTR pData,
|
||||
CK_ULONG_PTR pulDataLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_DecryptUpdate)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pEncryptedPart,
|
||||
CK_ULONG ulEncryptedPartLen,
|
||||
CK_BYTE_PTR pPart,
|
||||
CK_ULONG_PTR pulPartLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_DecryptFinal)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pLastPart,
|
||||
CK_ULONG_PTR pulLastPartLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_DigestInit)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_MECHANISM_PTR pMechanism
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_Digest)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pData,
|
||||
CK_ULONG ulDataLen,
|
||||
CK_BYTE_PTR pDigest,
|
||||
CK_ULONG_PTR pulDigestLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_DigestUpdate)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pPart,
|
||||
CK_ULONG ulPartLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_DigestKey)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_OBJECT_HANDLE hKey
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_DigestFinal)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pDigest,
|
||||
CK_ULONG_PTR pulDigestLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_SignInit)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_MECHANISM_PTR pMechanism,
|
||||
CK_OBJECT_HANDLE hKey
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_Sign)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pData,
|
||||
CK_ULONG ulDataLen,
|
||||
CK_BYTE_PTR pSignature,
|
||||
CK_ULONG_PTR pulSignatureLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_SignUpdate)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pPart,
|
||||
CK_ULONG ulPartLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_SignFinal)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pSignature,
|
||||
CK_ULONG_PTR pulSignatureLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_SignRecoverInit)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_MECHANISM_PTR pMechanism,
|
||||
CK_OBJECT_HANDLE hKey
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_SignRecover)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pData,
|
||||
CK_ULONG ulDataLen,
|
||||
CK_BYTE_PTR pSignature,
|
||||
CK_ULONG_PTR pulSignatureLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_VerifyInit)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_MECHANISM_PTR pMechanism,
|
||||
CK_OBJECT_HANDLE hKey
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_Verify)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pData,
|
||||
CK_ULONG ulDataLen,
|
||||
CK_BYTE_PTR pSignature,
|
||||
CK_ULONG ulSignatureLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_VerifyUpdate)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pPart,
|
||||
CK_ULONG ulPartLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_VerifyFinal)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pSignature,
|
||||
CK_ULONG ulSignatureLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_VerifyRecoverInit)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_MECHANISM_PTR pMechanism,
|
||||
CK_OBJECT_HANDLE hKey
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_VerifyRecover)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pSignature,
|
||||
CK_ULONG ulSignatureLen,
|
||||
CK_BYTE_PTR pData,
|
||||
CK_ULONG_PTR pulDataLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_DigestEncryptUpdate)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pPart,
|
||||
CK_ULONG ulPartLen,
|
||||
CK_BYTE_PTR pEncryptedPart,
|
||||
CK_ULONG_PTR pulEncryptedPartLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_DecryptDigestUpdate)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pEncryptedPart,
|
||||
CK_ULONG ulEncryptedPartLen,
|
||||
CK_BYTE_PTR pPart,
|
||||
CK_ULONG_PTR pulPartLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_SignEncryptUpdate)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pPart,
|
||||
CK_ULONG ulPartLen,
|
||||
CK_BYTE_PTR pEncryptedPart,
|
||||
CK_ULONG_PTR pulEncryptedPartLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_DecryptVerifyUpdate)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pEncryptedPart,
|
||||
CK_ULONG ulEncryptedPartLen,
|
||||
CK_BYTE_PTR pPart,
|
||||
CK_ULONG_PTR pulPartLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_GenerateKey)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_MECHANISM_PTR pMechanism,
|
||||
CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulCount,
|
||||
CK_OBJECT_HANDLE_PTR phKey
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_GenerateKeyPair)(
|
||||
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
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_WrapKey)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_MECHANISM_PTR pMechanism,
|
||||
CK_OBJECT_HANDLE hWrappingKey,
|
||||
CK_OBJECT_HANDLE hKey,
|
||||
CK_BYTE_PTR pWrappedKey,
|
||||
CK_ULONG_PTR pulWrappedKeyLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_UnwrapKey)(
|
||||
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
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_DeriveKey)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_MECHANISM_PTR pMechanism,
|
||||
CK_OBJECT_HANDLE hBaseKey,
|
||||
CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulAttributeCount,
|
||||
CK_OBJECT_HANDLE_PTR phKey
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
/* Random number generation functions */
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_SeedRandom)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pSeed,
|
||||
CK_ULONG ulSeedLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_GenerateRandom)(
|
||||
CK_SESSION_HANDLE hSession,
|
||||
CK_BYTE_PTR pRandomData,
|
||||
CK_ULONG ulRandomLen
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_GetFunctionStatus)(
|
||||
CK_SESSION_HANDLE hSession
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
CK_DEFINE_FUNCTION(CK_RV, C_CancelFunction)(
|
||||
CK_SESSION_HANDLE hSession
|
||||
)
|
||||
{
|
||||
DBG(("In"));
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
CK_FUNCTION_LIST function_list = {
|
||||
{ 2, 24 },
|
||||
C_Initialize,
|
||||
C_Finalize,
|
||||
C_GetInfo,
|
||||
C_GetFunctionList,
|
||||
C_GetSlotList,
|
||||
C_GetSlotInfo,
|
||||
C_GetTokenInfo,
|
||||
C_GetMechanismList,
|
||||
C_GetMechanismInfo,
|
||||
C_InitToken,
|
||||
C_InitPIN,
|
||||
C_SetPIN,
|
||||
C_OpenSession,
|
||||
C_CloseSession,
|
||||
C_CloseAllSessions,
|
||||
C_GetSessionInfo,
|
||||
C_GetOperationState,
|
||||
C_SetOperationState,
|
||||
C_Login,
|
||||
C_Logout,
|
||||
C_CreateObject,
|
||||
C_CopyObject,
|
||||
C_DestroyObject,
|
||||
C_GetObjectSize,
|
||||
C_GetAttributeValue,
|
||||
C_SetAttributeValue,
|
||||
C_FindObjectsInit,
|
||||
C_FindObjects,
|
||||
C_FindObjectsFinal,
|
||||
C_EncryptInit,
|
||||
C_Encrypt,
|
||||
C_EncryptUpdate,
|
||||
C_EncryptFinal,
|
||||
C_DecryptInit,
|
||||
C_Decrypt,
|
||||
C_DecryptUpdate,
|
||||
C_DecryptFinal,
|
||||
C_DigestInit,
|
||||
C_Digest,
|
||||
C_DigestUpdate,
|
||||
C_DigestKey,
|
||||
C_DigestFinal,
|
||||
C_SignInit,
|
||||
C_Sign,
|
||||
C_SignUpdate,
|
||||
C_SignFinal,
|
||||
C_SignRecoverInit,
|
||||
C_SignRecover,
|
||||
C_VerifyInit,
|
||||
C_Verify,
|
||||
C_VerifyUpdate,
|
||||
C_VerifyFinal,
|
||||
C_VerifyRecoverInit,
|
||||
C_VerifyRecover,
|
||||
C_DigestEncryptUpdate,
|
||||
C_DecryptDigestUpdate,
|
||||
C_SignEncryptUpdate,
|
||||
C_DecryptVerifyUpdate,
|
||||
C_GenerateKey,
|
||||
C_GenerateKeyPair,
|
||||
C_WrapKey,
|
||||
C_UnwrapKey,
|
||||
C_DeriveKey,
|
||||
C_SeedRandom,
|
||||
C_GenerateRandom,
|
||||
C_GetFunctionStatus,
|
||||
C_CancelFunction,
|
||||
C_WaitForSlotEvent,
|
||||
};
|
||||
Reference in New Issue
Block a user