Skip site navigation (1)Skip section navigation (2)
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>