From owner-p4-projects Wed Jun 12 14:11: 1 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2287C37B407; Wed, 12 Jun 2002 14:10:05 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id A4ACD37B401 for ; Wed, 12 Jun 2002 14:09:59 -0700 (PDT) Received: (from perforce@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g5CL9xa19896 for perforce@freebsd.org; Wed, 12 Jun 2002 14:09:59 -0700 (PDT) (envelope-from des@freebsd.org) Date: Wed, 12 Jun 2002 14:09:59 -0700 (PDT) Message-Id: <200206122109.g5CL9xa19896@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: perforce set sender to des@freebsd.org using -f From: Dag-Erling Smorgrav Subject: PERFORCE change 12774 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG http://people.freebsd.org/~peter/p4db/chv.cgi?CH=12774 Change 12774 by des@des.at.des.thinksec.com on 2002/06/12 14:09:10 Start implementing the basics.o Sponsored by: DARPA, NAI Labs Affected files ... ... //depot/projects/cryptoki/lib/C_Finalize.c#3 edit ... //depot/projects/cryptoki/lib/C_GetFunctionList.c#3 edit ... //depot/projects/cryptoki/lib/C_GetInfo.c#3 edit ... //depot/projects/cryptoki/lib/C_Initialize.c#3 edit ... //depot/projects/cryptoki/lib/cryptoki_impl.h#1 add Differences ... ==== //depot/projects/cryptoki/lib/C_Finalize.c#3 (text+ko) ==== @@ -31,15 +31,21 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/cryptoki/lib/C_Finalize.c#2 $ + * $P4: //depot/projects/cryptoki/lib/C_Finalize.c#3 $ */ #include +#include "cryptoki_impl.h" + CK_RV C_Finalize(CK_VOID_PTR pReserved) { - (void)pReserved; + if (!_ck_Initialized) + return (CKR_CRYPTOKI_NOT_INITIALIZED); + if (pReserved != NULL_PTR) + return (CKR_ARGUMENTS_BAD); + _ck_Initialized = FALSE; return (CKR_OK); } ==== //depot/projects/cryptoki/lib/C_GetFunctionList.c#3 (text+ko) ==== @@ -31,15 +31,89 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/cryptoki/lib/C_GetFunctionList.c#2 $ + * $P4: //depot/projects/cryptoki/lib/C_GetFunctionList.c#3 $ */ #include +CK_FUNCTION_LIST _ck_FunctionList = { + { 2, 11 }, + 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, +}; + CK_RV C_GetFunctionList(CK_FUNCTION_LIST_PTR_PTR ppFunctionList) { - (void)ppFunctionList; + if (ppFunctionList == NULL) + return (CKR_ARGUMENTS_BAD); + *ppFunctionList = &_ck_FunctionList; return (CKR_OK); } ==== //depot/projects/cryptoki/lib/C_GetInfo.c#3 (text+ko) ==== @@ -31,15 +31,25 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/cryptoki/lib/C_GetInfo.c#2 $ + * $P4: //depot/projects/cryptoki/lib/C_GetInfo.c#3 $ */ #include +#include "cryptoki_impl.h" + +CK_INFO _ck_Info = { + { 2, 11 }, + "FreeBSD ", + 0, + "libcryptoki ", + { 1, 0 }, +}; + CK_RV C_GetInfo(CK_INFO_PTR pInfo) { - (void)pInfo; + *pInfo = _ck_Info; return (CKR_OK); } ==== //depot/projects/cryptoki/lib/C_Initialize.c#3 (text+ko) ==== @@ -31,15 +31,36 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/cryptoki/lib/C_Initialize.c#2 $ + * $P4: //depot/projects/cryptoki/lib/C_Initialize.c#3 $ */ #include +#include "cryptoki_impl.h" + +int _ck_Initialized; + +CK_CREATEMUTEX _ck_CreateMutex; +CK_DESTROYMUTEX _ck_DestroyMutex; +CK_LOCKMUTEX _ck_LockMutex; +CK_UNLOCKMUTEX _ck_UnlockMutex; + CK_RV C_Initialize(CK_VOID_PTR pInitArgs) { - (void)pInitArgs; + if (_ck_Initialized) + return (CKR_CRYPTOKI_ALREADY_INITIALIZED); + if (pInitArgs != NULL_PTR) { + CK_C_INITIALIZE_ARGS_PTR pArgs = pInitArgs; + + _ck_CreateMutex = pArgs->CreateMutex; + _ck_DestroyMutex = pArgs->DestroyMutex; + _ck_LockMutex = pArgs->LockMutex; + _ck_UnlockMutex = pArgs->UnlockMutex; + /* should check that they're either all set or all clear */ + } + + _ck_Initialized = TRUE; return (CKR_OK); } To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message