1 /* **************************************************************************** 2 3 * eID Middleware Project. 4 * Copyright (C) 2014 FedICT. 5 * 6 * This is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU Lesser General Public License version 8 * 3.0 as published by the Free Software Foundation. 9 * 10 * This software is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public 16 * License along with this software; if not, see 17 * http://www.gnu.org/licenses/. 18 19 **************************************************************************** */ 20 #ifdef WIN32 21 #include <win32.h> 22 #pragma pack(push, cryptoki, 1) 23 #include "pkcs11.h" 24 #pragma pack(pop, cryptoki) 25 #else 26 #include <unix.h> 27 #include <pkcs11.h> 28 #endif 29 #include <stdio.h> 30 31 #include "testlib.h" 32 33 /* 34 * Check that C_GetFunctionList returns a table of function pointers that point to the right location 35 */ 36 TEST_FUNC(funclist)37TEST_FUNC(funclist) { 38 CK_FUNCTION_LIST_PTR ptr; 39 40 check_rv_long(C_GetFunctionList(NULL_PTR), m_p11_badarg); 41 check_rv(C_GetFunctionList(&ptr)); 42 verbose_assert(ptr->C_Initialize == C_Initialize); 43 verbose_assert(ptr->C_Finalize == C_Finalize); 44 verbose_assert(ptr->C_GetInfo == C_GetInfo); 45 verbose_assert(ptr->C_GetFunctionList == C_GetFunctionList); 46 verbose_assert(ptr->C_GetSlotList == C_GetSlotList); 47 verbose_assert(ptr->C_GetSlotInfo == C_GetSlotInfo); 48 verbose_assert(ptr->C_GetTokenInfo == C_GetTokenInfo); 49 verbose_assert(ptr->C_GetMechanismList == C_GetMechanismList); 50 verbose_assert(ptr->C_GetMechanismInfo == C_GetMechanismInfo); 51 verbose_assert(ptr->C_InitToken == C_InitToken); 52 verbose_assert(ptr->C_InitPIN == C_InitPIN); 53 verbose_assert(ptr->C_SetPIN == C_SetPIN); 54 verbose_assert(ptr->C_OpenSession == C_OpenSession); 55 verbose_assert(ptr->C_CloseSession == C_CloseSession); 56 verbose_assert(ptr->C_CloseAllSessions == C_CloseAllSessions); 57 verbose_assert(ptr->C_GetSessionInfo == C_GetSessionInfo); 58 verbose_assert(ptr->C_GetOperationState == C_GetOperationState); 59 verbose_assert(ptr->C_SetOperationState == C_SetOperationState); 60 verbose_assert(ptr->C_Login == C_Login); 61 verbose_assert(ptr->C_Logout == C_Logout); 62 verbose_assert(ptr->C_CreateObject == C_CreateObject); 63 verbose_assert(ptr->C_CopyObject == C_CopyObject); 64 verbose_assert(ptr->C_DestroyObject == C_DestroyObject); 65 verbose_assert(ptr->C_GetObjectSize == C_GetObjectSize); 66 verbose_assert(ptr->C_GetAttributeValue == C_GetAttributeValue); 67 verbose_assert(ptr->C_SetAttributeValue == C_SetAttributeValue); 68 verbose_assert(ptr->C_FindObjectsInit == C_FindObjectsInit); 69 verbose_assert(ptr->C_FindObjects == C_FindObjects); 70 verbose_assert(ptr->C_FindObjectsFinal == C_FindObjectsFinal); 71 verbose_assert(ptr->C_EncryptInit == C_EncryptInit); 72 verbose_assert(ptr->C_Encrypt == C_Encrypt); 73 verbose_assert(ptr->C_EncryptUpdate == C_EncryptUpdate); 74 verbose_assert(ptr->C_EncryptFinal == C_EncryptFinal); 75 verbose_assert(ptr->C_DecryptInit == C_DecryptInit); 76 verbose_assert(ptr->C_Decrypt == C_Decrypt); 77 verbose_assert(ptr->C_DecryptUpdate == C_DecryptUpdate); 78 verbose_assert(ptr->C_DecryptFinal == C_DecryptFinal); 79 verbose_assert(ptr->C_DigestInit == C_DigestInit); 80 verbose_assert(ptr->C_Digest == C_Digest); 81 verbose_assert(ptr->C_DigestUpdate == C_DigestUpdate); 82 verbose_assert(ptr->C_DigestKey == C_DigestKey); 83 verbose_assert(ptr->C_DigestFinal == C_DigestFinal); 84 verbose_assert(ptr->C_SignInit == C_SignInit); 85 verbose_assert(ptr->C_Sign == C_Sign); 86 verbose_assert(ptr->C_SignUpdate == C_SignUpdate); 87 verbose_assert(ptr->C_SignFinal == C_SignFinal); 88 verbose_assert(ptr->C_SignRecoverInit == C_SignRecoverInit); 89 verbose_assert(ptr->C_SignRecover == C_SignRecover); 90 verbose_assert(ptr->C_VerifyInit == C_VerifyInit); 91 verbose_assert(ptr->C_Verify == C_Verify); 92 verbose_assert(ptr->C_VerifyUpdate == C_VerifyUpdate); 93 verbose_assert(ptr->C_VerifyFinal == C_VerifyFinal); 94 verbose_assert(ptr->C_VerifyRecoverInit == C_VerifyRecoverInit); 95 verbose_assert(ptr->C_VerifyRecover == C_VerifyRecover); 96 verbose_assert(ptr->C_DigestEncryptUpdate == C_DigestEncryptUpdate); 97 verbose_assert(ptr->C_DecryptDigestUpdate == C_DecryptDigestUpdate); 98 verbose_assert(ptr->C_SignEncryptUpdate == C_SignEncryptUpdate); 99 verbose_assert(ptr->C_DecryptVerifyUpdate == C_DecryptVerifyUpdate); 100 verbose_assert(ptr->C_GenerateKey == C_GenerateKey); 101 verbose_assert(ptr->C_GenerateKeyPair == C_GenerateKeyPair); 102 verbose_assert(ptr->C_WrapKey == C_WrapKey); 103 verbose_assert(ptr->C_UnwrapKey == C_UnwrapKey); 104 verbose_assert(ptr->C_DeriveKey == C_DeriveKey); 105 verbose_assert(ptr->C_SeedRandom == C_SeedRandom); 106 verbose_assert(ptr->C_GenerateRandom == C_GenerateRandom); 107 verbose_assert(ptr->C_GetFunctionStatus == C_GetFunctionStatus); 108 verbose_assert(ptr->C_CancelFunction == C_CancelFunction); 109 verbose_assert(ptr->C_WaitForSlotEvent == C_WaitForSlotEvent); 110 111 return TEST_RV_OK; 112 } 113