corePKCS11 v3.5.0
PKCS #11 Cryptoki Library
C_GetFunctionList

Obtains entry points of Cryptoki library functions.

CK_DECLARE_FUNCTION( CK_RV, C_GetFunctionList )( CK_FUNCTION_LIST_PTR_PTR ppFunctionList )
{
CK_RV xResult = CKR_OK;
static CK_FUNCTION_LIST prvP11FunctionList =
{
{ CRYPTOKI_VERSION_MAJOR, CRYPTOKI_VERSION_MINOR },
NULL, /*C_GetInfo */
NULL, /*C_GetSlotInfo*/
NULL, /*C_GetMechanismList*/
NULL, /*C_InitPIN*/
NULL, /*C_SetPIN*/
NULL, /*C_CloseAllSessions*/
NULL, /*C_GetSessionInfo*/
NULL, /*C_GetOperationState*/
NULL, /*C_SetOperationState*/
C_Login, /*C_Login*/
NULL, /*C_Logout*/
NULL, /*C_CopyObject*/
NULL, /*C_GetObjectSize*/
NULL, /*C_SetAttributeValue*/
NULL, /*C_EncryptInit*/
NULL, /*C_Encrypt*/
NULL, /*C_EncryptUpdate*/
NULL, /*C_EncryptFinal*/
NULL, /*C_DecryptInit*/
NULL, /*C_Decrypt*/
NULL, /*C_DecryptUpdate*/
NULL, /*C_DecryptFinal*/
NULL, /*C_Digest*/
NULL, /* C_DigestKey*/
NULL, /*C_SignUpdate*/
NULL, /*C_SignFinal*/
NULL, /*C_SignRecoverInit*/
NULL, /*C_SignRecover*/
NULL, /*C_VerifyUpdate*/
NULL, /*C_VerifyFinal*/
NULL, /*C_VerifyRecoverInit*/
NULL, /*C_VerifyRecover*/
NULL, /*C_DigestEncryptUpdate*/
NULL, /*C_DecryptDigestUpdate*/
NULL, /*C_SignEncryptUpdate*/
NULL, /*C_DecryptVerifyUpdate*/
NULL, /*C_GenerateKey*/
NULL, /*C_WrapKey*/
NULL, /*C_UnwrapKey*/
NULL, /*C_DeriveKey*/
NULL, /*C_SeedRandom*/
NULL, /*C_GetFunctionStatus*/
NULL, /*C_CancelFunction*/
NULL /*C_WaitForSlotEvent*/
};
if( NULL == ppFunctionList )
{
xResult = CKR_ARGUMENTS_BAD;
LogError( ( "Failed to return function pointer list. Expected a valid "
"pointer to a CK_FUNCTION_LIST, but the pointer was NULL." ) );
}
else
{
*ppFunctionList = &prvP11FunctionList;
}
return xResult;
}
#define CK_DECLARE_FUNCTION(returnType, name)
Macro for defining a PKCS #11 functions.
Definition: core_pkcs11.h:77
#define LogError(message)
Macro that is called in the corePKCS11 library for logging "Error" level messages.
Definition: core_pkcs11_config_defaults.h:317
CK_RV C_CreateObject(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phObject)
Creates an object.
Definition: core_pkcs11_mbedtls.c:2885
CK_RV C_DestroyObject(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject)
Destroys an object.
Definition: core_pkcs11_mbedtls.c:2954
CK_RV C_DigestFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen)
Finishes a multiple-part digesting operation.
Definition: core_pkcs11_mbedtls.c:3816
CK_RV C_Initialize(CK_VOID_PTR pInitArgs)
Initializes Cryptoki.
Definition: core_pkcs11_mbedtls.c:1422
CK_RV C_SignInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey)
Initializes a signature operation.
Definition: core_pkcs11_mbedtls.c:4209
CK_RV C_InitToken(CK_SLOT_ID slotID, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen, CK_UTF8CHAR_PTR pLabel)
Initializes a token. This function is not implemented for this port.
Definition: core_pkcs11_mbedtls.c:1779
CK_RV C_DigestInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism)
Initializes a message-digesting operation.
Definition: core_pkcs11_mbedtls.c:3648
CK_RV C_FindObjects(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR phObject, CK_ULONG ulMaxObjectCount, CK_ULONG_PTR pulObjectCount)
Initializes an object search operation.
Definition: core_pkcs11_mbedtls.c:3499
CK_RV C_FindObjectsFinal(CK_SESSION_HANDLE hSession)
Finishes an object search operation.
Definition: core_pkcs11_mbedtls.c:3599
CK_RV C_Verify(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen)
Verifies a signature on single-part data.
Definition: core_pkcs11_mbedtls.c:4939
CK_RV C_GenerateRandom(CK_SESSION_HANDLE hSession, CK_BYTE_PTR RandomData, CK_ULONG ulRandomLen)
Generates random data.
Definition: core_pkcs11_mbedtls.c:5766
CK_RV C_Sign(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen)
Signs single-part data.
Definition: core_pkcs11_mbedtls.c:4391
CK_RV C_DigestUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen)
Continues a multiple-part digesting operation.
Definition: core_pkcs11_mbedtls.c:3733
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)
Generates a public-key/private-key pair.
Definition: core_pkcs11_mbedtls.c:5507
CK_RV C_Finalize(CK_VOID_PTR pReserved)
Clean up miscellaneous Cryptoki-associated resources.
Definition: core_pkcs11_mbedtls.c:1463
CK_RV C_GetAttributeValue(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)
Obtains an attribute value of an object.
Definition: core_pkcs11_mbedtls.c:3031
CK_RV C_GetFunctionList(CK_FUNCTION_LIST_PTR_PTR ppFunctionList)
Obtains entry points of Cryptoki library functions.
Definition: core_pkcs11_mbedtls.c:1518
CK_RV C_GetMechanismInfo(CK_SLOT_ID slotID, CK_MECHANISM_TYPE type, CK_MECHANISM_INFO_PTR pInfo)
Obtains information about a particular mechanism.
Definition: core_pkcs11_mbedtls.c:1718
CK_RV C_GetSlotList(CK_BBOOL tokenPresent, CK_SLOT_ID_PTR pSlotList, CK_ULONG_PTR pulCount)
Obtains a list of slots in the system.
Definition: core_pkcs11_mbedtls.c:1625
CK_RV C_GetTokenInfo(CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo)
Obtains information about a particular token.
Definition: core_pkcs11_mbedtls.c:1693
CK_RV C_Login(CK_SESSION_HANDLE hSession, CK_USER_TYPE userType, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen)
Logs into a token. This function is not implemented for this port.
Definition: core_pkcs11_mbedtls.c:2016
CK_RV C_OpenSession(CK_SLOT_ID slotID, CK_FLAGS flags, CK_VOID_PTR pApplication, CK_NOTIFY Notify, CK_SESSION_HANDLE_PTR phSession)
Opens a connection between an application and a particular token or sets up an application callback f...
Definition: core_pkcs11_mbedtls.c:1814
CK_RV C_CloseSession(CK_SESSION_HANDLE hSession)
Closes a session.
Definition: core_pkcs11_mbedtls.c:1953
CK_RV C_VerifyInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey)
Initializes a verification operation.
Definition: core_pkcs11_mbedtls.c:4774
CK_RV C_FindObjectsInit(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)
Initializes an object search operation.
Definition: core_pkcs11_mbedtls.c:3386

All other PKCS #11 functions should be invoked using the returned function list.

Warning
Do not overwrite the function list.
Parameters
[in]ppFunctionListPointer to the location where pointer to function list will be placed.
Returns
CKR_OK if successful.