From 637df799c6985e27266d6cb54102afc6f6c8ef02 Mon Sep 17 00:00:00 2001 From: Fredrik Thulin <fredrik@thulin.net> Date: Tue, 18 Dec 2012 15:43:44 +0100 Subject: [PATCH] Check pkcs11_initialized in a number of functions. This harmonizes with the softhsm test suite. --- gck-rpc-module.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gck-rpc-module.c b/gck-rpc-module.c index e36e6b7..9409947 100644 --- a/gck-rpc-module.c +++ b/gck-rpc-module.c @@ -1334,6 +1334,7 @@ static CK_RV rpc_C_Finalize(CK_VOID_PTR reserved) static CK_RV rpc_C_GetInfo(CK_INFO_PTR info) { + return_val_if_fail(pkcs11_initialized, CKR_CRYPTOKI_NOT_INITIALIZED); return_val_if_fail(info, CKR_ARGUMENTS_BAD); BEGIN_CALL(C_GetInfo); @@ -1352,6 +1353,7 @@ static CK_RV rpc_C_GetSlotList(CK_BBOOL token_present, CK_SLOT_ID_PTR slot_list, CK_ULONG_PTR count) { + return_val_if_fail(pkcs11_initialized, CKR_CRYPTOKI_NOT_INITIALIZED); return_val_if_fail(count, CKR_ARGUMENTS_BAD); BEGIN_CALL(C_GetSlotList); @@ -1364,6 +1366,7 @@ rpc_C_GetSlotList(CK_BBOOL token_present, CK_SLOT_ID_PTR slot_list, static CK_RV rpc_C_GetSlotInfo(CK_SLOT_ID id, CK_SLOT_INFO_PTR info) { + return_val_if_fail(pkcs11_initialized, CKR_CRYPTOKI_NOT_INITIALIZED); return_val_if_fail(info, CKR_ARGUMENTS_BAD); BEGIN_CALL(C_GetSlotInfo); @@ -1375,6 +1378,7 @@ static CK_RV rpc_C_GetSlotInfo(CK_SLOT_ID id, CK_SLOT_INFO_PTR info) static CK_RV rpc_C_GetTokenInfo(CK_SLOT_ID id, CK_TOKEN_INFO_PTR info) { + return_val_if_fail(pkcs11_initialized, CKR_CRYPTOKI_NOT_INITIALIZED); return_val_if_fail(info, CKR_ARGUMENTS_BAD); BEGIN_CALL(C_GetTokenInfo); @@ -1388,6 +1392,7 @@ static CK_RV rpc_C_GetMechanismList(CK_SLOT_ID id, CK_MECHANISM_TYPE_PTR mechanism_list, CK_ULONG_PTR count) { + return_val_if_fail(pkcs11_initialized, CKR_CRYPTOKI_NOT_INITIALIZED); return_val_if_fail(count, CKR_ARGUMENTS_BAD); BEGIN_CALL(C_GetMechanismList); @@ -1403,6 +1408,7 @@ static CK_RV rpc_C_GetMechanismInfo(CK_SLOT_ID id, CK_MECHANISM_TYPE type, CK_MECHANISM_INFO_PTR info) { + return_val_if_fail(pkcs11_initialized, CKR_CRYPTOKI_NOT_INITIALIZED); return_val_if_fail(info, CKR_ARGUMENTS_BAD); BEGIN_CALL(C_GetMechanismInfo); @@ -1443,6 +1449,7 @@ rpc_C_OpenSession(CK_SLOT_ID id, CK_FLAGS flags, CK_VOID_PTR user_data, CK_NOTIFY callback, CK_SESSION_HANDLE_PTR session) { return_val_if_fail(session, CKR_ARGUMENTS_BAD); + return_val_if_fail(pkcs11_initialized, CKR_CRYPTOKI_NOT_INITIALIZED); BEGIN_CALL(C_OpenSession); IN_ULONG(id); @@ -1487,6 +1494,7 @@ static CK_RV rpc_C_CancelFunction(CK_SESSION_HANDLE session) static CK_RV rpc_C_GetSessionInfo(CK_SESSION_HANDLE session, CK_SESSION_INFO_PTR info) { + return_val_if_fail(pkcs11_initialized, CKR_CRYPTOKI_NOT_INITIALIZED); return_val_if_fail(info, CKR_ARGUMENTS_BAD); BEGIN_CALL(C_GetSessionInfo); @@ -1572,6 +1580,7 @@ static CK_RV rpc_C_CreateObject(CK_SESSION_HANDLE session, CK_ATTRIBUTE_PTR template, CK_ULONG count, CK_OBJECT_HANDLE_PTR new_object) { + return_val_if_fail(pkcs11_initialized, CKR_CRYPTOKI_NOT_INITIALIZED); return_val_if_fail(new_object, CKR_ARGUMENTS_BAD); BEGIN_CALL(C_CreateObject); @@ -2169,6 +2178,7 @@ static CK_RV rpc_C_GenerateRandom(CK_SESSION_HANDLE session, CK_BYTE_PTR random_data, CK_ULONG random_len) { + return_val_if_fail(pkcs11_initialized, CKR_CRYPTOKI_NOT_INITIALIZED); BEGIN_CALL(C_GenerateRandom); IN_ULONG(session); IN_BYTE_BUFFER(random_data, &random_len); -- GitLab