From f6922d6e7866f65bed5623ff90e14a7398337b21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Thu, 8 Aug 2019 15:52:47 +0200 Subject: [PATCH] Use standard PKCS#11 standard error codes instead of custom error codes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * CKR_CRYPTOKI_ALREADY_INITIALIZED: This value can only be returned by `C_Initialize`. It means that the Cryptoki library has already been initialized (by a previous call to `C_Initialize` which did not have a matching `C_Finalize` call). * CKR_FUNCTION_NOT_SUPPORTED: The requested function is not supported by this Cryptoki library. Even unsupported functions in the Cryptoki API should have a “stub” in the library; this stub should simply return the value CKR_FUNCTION_NOT_SUPPORTED. * CKR_LIBRARY_LOAD_FAILED: The Cryptoki library could not load a dependent shared library. --- lib/isc/unix/pk11_api.c | 140 ++++++++++++++++++++-------------------- 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/lib/isc/unix/pk11_api.c b/lib/isc/unix/pk11_api.c index 866ef3e8eb..78c020a64c 100644 --- a/lib/isc/unix/pk11_api.c +++ b/lib/isc/unix/pk11_api.c @@ -38,7 +38,7 @@ pkcs_C_Initialize(CK_VOID_PTR pReserved) { CK_C_Initialize sym; if (hPK11 != NULL) - return (CKR_LIBRARY_ALREADY_INITIALIZED); + return (CKR_CRYPTOKI_ALREADY_INITIALIZED); hPK11 = dlopen(pk11_get_lib_name(), RTLD_NOW); @@ -46,11 +46,11 @@ pkcs_C_Initialize(CK_VOID_PTR pReserved) { snprintf(loaderrmsg, sizeof(loaderrmsg), "dlopen(\"%s\") failed: %s\n", pk11_get_lib_name(), dlerror()); - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); } sym = (CK_C_Initialize)dlsym(hPK11, "C_Initialize"); if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(pReserved); } @@ -64,13 +64,13 @@ pkcs_C_Finalize(CK_VOID_PTR pReserved) { CK_RV rv; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); sym = (CK_C_Finalize)dlsym(hPK11, "C_Finalize"); if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); rv = (*sym)(pReserved); if ((rv == CKR_OK) && (dlclose(hPK11) != 0)) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); hPK11 = NULL; return (rv); } @@ -83,13 +83,13 @@ pkcs_C_GetSlotList(CK_BBOOL tokenPresent, CK_SLOT_ID_PTR pSlotList, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_GetSlotList)dlsym(hPK11, "C_GetSlotList"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(tokenPresent, pSlotList, pulCount); } @@ -99,13 +99,13 @@ pkcs_C_GetTokenInfo(CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo) { static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_GetTokenInfo)dlsym(hPK11, "C_GetTokenInfo"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(slotID, pInfo); } @@ -117,14 +117,14 @@ pkcs_C_GetMechanismInfo(CK_SLOT_ID slotID, CK_MECHANISM_TYPE type, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_GetMechanismInfo)dlsym(hPK11, "C_GetMechanismInfo"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(slotID, type, pInfo); } @@ -145,14 +145,14 @@ pkcs_C_OpenSession(CK_SLOT_ID slotID, CK_FLAGS flags, snprintf(loaderrmsg, sizeof(loaderrmsg), "dlopen(\"%s\") failed: %s\n", pk11_get_lib_name(), dlerror()); - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); } if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_OpenSession)dlsym(hPK11, "C_OpenSession"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(slotID, flags, pApplication, Notify, phSession); } @@ -162,13 +162,13 @@ pkcs_C_CloseSession(CK_SESSION_HANDLE hSession) { static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_CloseSession)dlsym(hPK11, "C_CloseSession"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession); } @@ -180,13 +180,13 @@ pkcs_C_Login(CK_SESSION_HANDLE hSession, CK_USER_TYPE userType, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_Login)dlsym(hPK11, "C_Login"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, userType, pPin, usPinLen); } @@ -196,13 +196,13 @@ pkcs_C_Logout(CK_SESSION_HANDLE hSession) { static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_Logout)dlsym(hPK11, "C_Logout"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession); } @@ -214,13 +214,13 @@ pkcs_C_CreateObject(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_CreateObject)dlsym(hPK11, "C_CreateObject"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pTemplate, usCount, phObject); } @@ -230,13 +230,13 @@ pkcs_C_DestroyObject(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject) { static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_DestroyObject)dlsym(hPK11, "C_DestroyObject"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, hObject); } @@ -248,14 +248,14 @@ pkcs_C_GetAttributeValue(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_GetAttributeValue)dlsym(hPK11, "C_GetAttributeValue"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, hObject, pTemplate, usCount); } @@ -267,14 +267,14 @@ pkcs_C_SetAttributeValue(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_SetAttributeValue)dlsym(hPK11, "C_SetAttributeValue"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, hObject, pTemplate, usCount); } @@ -286,13 +286,13 @@ pkcs_C_FindObjectsInit(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_FindObjectsInit)dlsym(hPK11, "C_FindObjectsInit"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pTemplate, usCount); } @@ -304,13 +304,13 @@ pkcs_C_FindObjects(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR phObject, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_FindObjects)dlsym(hPK11, "C_FindObjects"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, phObject, usMaxObjectCount, pusObjectCount); } @@ -321,14 +321,14 @@ pkcs_C_FindObjectsFinal(CK_SESSION_HANDLE hSession) static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_FindObjectsFinal)dlsym(hPK11, "C_FindObjectsFinal"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession); } @@ -340,13 +340,13 @@ pkcs_C_EncryptInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_EncryptInit)dlsym(hPK11, "C_EncryptInit"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pMechanism, hKey); } @@ -359,13 +359,13 @@ pkcs_C_Encrypt(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_Encrypt)dlsym(hPK11, "C_Encrypt"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pData, ulDataLen, pEncryptedData, pulEncryptedDataLen); } @@ -376,13 +376,13 @@ pkcs_C_DigestInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism) { static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_DigestInit)dlsym(hPK11, "C_DigestInit"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pMechanism); } @@ -394,13 +394,13 @@ pkcs_C_DigestUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_DigestUpdate)dlsym(hPK11, "C_DigestUpdate"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pPart, ulPartLen); } @@ -412,13 +412,13 @@ pkcs_C_DigestFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDigest, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_DigestFinal)dlsym(hPK11, "C_DigestFinal"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pDigest, pulDigestLen); } @@ -430,13 +430,13 @@ pkcs_C_SignInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_SignInit)dlsym(hPK11, "C_SignInit"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pMechanism, hKey); } @@ -449,13 +449,13 @@ pkcs_C_Sign(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_Sign)dlsym(hPK11, "C_Sign"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pData, ulDataLen, pSignature, pulSignatureLen); } @@ -467,13 +467,13 @@ pkcs_C_SignUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_SignUpdate)dlsym(hPK11, "C_SignUpdate"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pPart, ulPartLen); } @@ -485,13 +485,13 @@ pkcs_C_SignFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_SignFinal)dlsym(hPK11, "C_SignFinal"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pSignature, pulSignatureLen); } @@ -503,13 +503,13 @@ pkcs_C_VerifyInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_VerifyInit)dlsym(hPK11, "C_VerifyInit"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pMechanism, hKey); } @@ -522,13 +522,13 @@ pkcs_C_Verify(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_Verify)dlsym(hPK11, "C_Verify"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pData, ulDataLen, pSignature, ulSignatureLen); } @@ -540,13 +540,13 @@ pkcs_C_VerifyUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_VerifyUpdate)dlsym(hPK11, "C_VerifyUpdate"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pPart, ulPartLen); } @@ -558,13 +558,13 @@ pkcs_C_VerifyFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_VerifyFinal)dlsym(hPK11, "C_VerifyFinal"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pSignature, ulSignatureLen); } @@ -577,13 +577,13 @@ pkcs_C_GenerateKey(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_GenerateKey)dlsym(hPK11, "C_GenerateKey"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pMechanism, pTemplate, ulCount, phKey); } @@ -601,13 +601,13 @@ pkcs_C_GenerateKeyPair(CK_SESSION_HANDLE hSession, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_GenerateKeyPair)dlsym(hPK11, "C_GenerateKeyPair"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pMechanism, pPublicKeyTemplate, @@ -627,13 +627,13 @@ pkcs_C_DeriveKey(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_DeriveKey)dlsym(hPK11, "C_DeriveKey"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pMechanism, hBaseKey, @@ -650,13 +650,13 @@ pkcs_C_SeedRandom(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSeed, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_SeedRandom)dlsym(hPK11, "C_SeedRandom"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, pSeed, ulSeedLen); } @@ -668,12 +668,12 @@ pkcs_C_GenerateRandom(CK_SESSION_HANDLE hSession, CK_BYTE_PTR RandomData, static void *pPK11 = NULL; if (hPK11 == NULL) - return (CKR_LIBRARY_FAILED_TO_LOAD); + return (CKR_LIBRARY_LOAD_FAILED); if ((sym == NULL) || (hPK11 != pPK11)) { pPK11 = hPK11; sym = (CK_C_GenerateRandom)dlsym(hPK11, "C_GenerateRandom"); } if (sym == NULL) - return (CKR_SYMBOL_RESOLUTION_FAILED); + return (CKR_FUNCTION_NOT_SUPPORTED); return (*sym)(hSession, RandomData, ulRandomLen); }