Date: Wed, 12 Jun 2002 14:09:59 -0700 (PDT) From: Dag-Erling Smorgrav <des@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 12774 for review Message-ID: <200206122109.g5CL9xa19896@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 <cryptoki.h> +#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 <cryptoki.h> +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 <cryptoki.h> +#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 <cryptoki.h> +#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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200206122109.g5CL9xa19896>