Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Jun 2002 16:41:07 -0700 (PDT)
From:      Dag-Erling Smorgrav <des@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 12856 for review
Message-ID:  <200206132341.g5DNf7N15681@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://people.freebsd.org/~peter/p4db/chv.cgi?CH=12856

Change 12856 by des@des.at.des.thinksec.com on 2002/06/13 16:41:07

	Implement session handle {,de}allocation.  Add argument checks to
	most functions, to the extend possible at this time.
	
	Sponsored by:	DARPA, NAI Labs

Affected files ...

... //depot/projects/cryptoki/lib/C_CancelFunction.c#4 edit
... //depot/projects/cryptoki/lib/C_CloseAllSessions.c#4 edit
... //depot/projects/cryptoki/lib/C_CloseSession.c#4 edit
... //depot/projects/cryptoki/lib/C_CopyObject.c#4 edit
... //depot/projects/cryptoki/lib/C_CreateObject.c#4 edit
... //depot/projects/cryptoki/lib/C_Decrypt.c#4 edit
... //depot/projects/cryptoki/lib/C_DecryptDigestUpdate.c#4 edit
... //depot/projects/cryptoki/lib/C_DecryptFinal.c#4 edit
... //depot/projects/cryptoki/lib/C_DecryptInit.c#4 edit
... //depot/projects/cryptoki/lib/C_DecryptUpdate.c#4 edit
... //depot/projects/cryptoki/lib/C_DecryptVerifyUpdate.c#4 edit
... //depot/projects/cryptoki/lib/C_DeriveKey.c#4 edit
... //depot/projects/cryptoki/lib/C_DestroyObject.c#4 edit
... //depot/projects/cryptoki/lib/C_Digest.c#4 edit
... //depot/projects/cryptoki/lib/C_DigestEncryptUpdate.c#4 edit
... //depot/projects/cryptoki/lib/C_DigestFinal.c#4 edit
... //depot/projects/cryptoki/lib/C_DigestInit.c#4 edit
... //depot/projects/cryptoki/lib/C_DigestKey.c#4 edit
... //depot/projects/cryptoki/lib/C_DigestUpdate.c#4 edit
... //depot/projects/cryptoki/lib/C_Encrypt.c#4 edit
... //depot/projects/cryptoki/lib/C_EncryptFinal.c#4 edit
... //depot/projects/cryptoki/lib/C_EncryptInit.c#4 edit
... //depot/projects/cryptoki/lib/C_EncryptUpdate.c#4 edit
... //depot/projects/cryptoki/lib/C_Finalize.c#4 edit
... //depot/projects/cryptoki/lib/C_FindObjects.c#4 edit
... //depot/projects/cryptoki/lib/C_FindObjectsFinal.c#4 edit
... //depot/projects/cryptoki/lib/C_FindObjectsInit.c#4 edit
... //depot/projects/cryptoki/lib/C_GenerateKey.c#4 edit
... //depot/projects/cryptoki/lib/C_GenerateKeyPair.c#4 edit
... //depot/projects/cryptoki/lib/C_GenerateRandom.c#4 edit
... //depot/projects/cryptoki/lib/C_GetAttributeValue.c#4 edit
... //depot/projects/cryptoki/lib/C_GetFunctionList.c#5 edit
... //depot/projects/cryptoki/lib/C_GetFunctionStatus.c#4 edit
... //depot/projects/cryptoki/lib/C_GetInfo.c#4 edit
... //depot/projects/cryptoki/lib/C_GetMechanismInfo.c#4 edit
... //depot/projects/cryptoki/lib/C_GetMechanismList.c#4 edit
... //depot/projects/cryptoki/lib/C_GetObjectSize.c#4 edit
... //depot/projects/cryptoki/lib/C_GetOperationState.c#4 edit
... //depot/projects/cryptoki/lib/C_GetSessionInfo.c#4 edit
... //depot/projects/cryptoki/lib/C_GetSlotInfo.c#6 edit
... //depot/projects/cryptoki/lib/C_GetSlotList.c#5 edit
... //depot/projects/cryptoki/lib/C_GetTokenInfo.c#4 edit
... //depot/projects/cryptoki/lib/C_InitPIN.c#4 edit
... //depot/projects/cryptoki/lib/C_InitToken.c#4 edit
... //depot/projects/cryptoki/lib/C_Initialize.c#5 edit
... //depot/projects/cryptoki/lib/C_Login.c#4 edit
... //depot/projects/cryptoki/lib/C_Logout.c#4 edit
... //depot/projects/cryptoki/lib/C_OpenSession.c#4 edit
... //depot/projects/cryptoki/lib/C_SeedRandom.c#4 edit
... //depot/projects/cryptoki/lib/C_SetAttributeValue.c#4 edit
... //depot/projects/cryptoki/lib/C_SetOperationState.c#4 edit
... //depot/projects/cryptoki/lib/C_SetPIN.c#4 edit
... //depot/projects/cryptoki/lib/C_Sign.c#4 edit
... //depot/projects/cryptoki/lib/C_SignEncryptUpdate.c#4 edit
... //depot/projects/cryptoki/lib/C_SignFinal.c#4 edit
... //depot/projects/cryptoki/lib/C_SignInit.c#4 edit
... //depot/projects/cryptoki/lib/C_SignRecover.c#4 edit
... //depot/projects/cryptoki/lib/C_SignRecoverInit.c#4 edit
... //depot/projects/cryptoki/lib/C_SignUpdate.c#4 edit
... //depot/projects/cryptoki/lib/C_UnwrapKey.c#4 edit
... //depot/projects/cryptoki/lib/C_Verify.c#4 edit
... //depot/projects/cryptoki/lib/C_VerifyFinal.c#4 edit
... //depot/projects/cryptoki/lib/C_VerifyInit.c#4 edit
... //depot/projects/cryptoki/lib/C_VerifyRecover.c#4 edit
... //depot/projects/cryptoki/lib/C_VerifyRecoverInit.c#4 edit
... //depot/projects/cryptoki/lib/C_VerifyUpdate.c#4 edit
... //depot/projects/cryptoki/lib/C_WaitForSlotEvent.c#4 edit
... //depot/projects/cryptoki/lib/C_WrapKey.c#4 edit
... //depot/projects/cryptoki/lib/Makefile#5 edit
... //depot/projects/cryptoki/lib/_ck_session_delete.c#1 add
... //depot/projects/cryptoki/lib/_ck_session_find.c#1 add
... //depot/projects/cryptoki/lib/_ck_session_new.c#1 add
... //depot/projects/cryptoki/lib/cryptoki_impl.h#3 edit

Differences ...

==== //depot/projects/cryptoki/lib/C_CancelFunction.c#4 (text+ko) ====

@@ -31,15 +31,17 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_CancelFunction.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_CancelFunction.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_CancelFunction(CK_SESSION_HANDLE hSession)
 {
 
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
 	(void)hSession;
-	return (CKR_FUNCTION_NOT_SUPPORTED);
+	return (CKR_FUNCTION_NOT_PARALLEL);
 }

==== //depot/projects/cryptoki/lib/C_CloseAllSessions.c#4 (text+ko) ====

@@ -31,15 +31,18 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_CloseAllSessions.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_CloseAllSessions.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_CloseAllSessions(CK_SLOT_ID slotID)
 {
 
-	(void)slotID;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (slotID > _ck_NumSlots)
+		return (CKR_ARGUMENTS_BAD);
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_CloseSession.c#4 (text+ko) ====

@@ -31,15 +31,19 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_CloseSession.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_CloseSession.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_CloseSession(CK_SESSION_HANDLE hSession)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_CopyObject.c#4 (text+ko) ====

@@ -31,10 +31,10 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_CopyObject.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_CopyObject.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_CopyObject(CK_SESSION_HANDLE hSession,
@@ -43,10 +43,15 @@
 	CK_ULONG ulCount,
 	CK_OBJECT_HANDLE_PTR phNewObject)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pTemplate == NULL_PTR || phNewObject == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)hObject;
-	(void)pTemplate;
 	(void)ulCount;
 	(void)phNewObject;
 	return (CKR_FUNCTION_NOT_SUPPORTED);

==== //depot/projects/cryptoki/lib/C_CreateObject.c#4 (text+ko) ====

@@ -31,10 +31,10 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_CreateObject.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_CreateObject.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_CreateObject(CK_SESSION_HANDLE hSession,
@@ -42,10 +42,14 @@
 	CK_ULONG ulCount,
 	CK_OBJECT_HANDLE_PTR phObject)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pTemplate;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pTemplate == NULL_PTR || phObject == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)ulCount;
-	(void)phObject;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_Decrypt.c#4 (text+ko) ====

@@ -31,10 +31,10 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_Decrypt.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_Decrypt.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_Decrypt(CK_SESSION_HANDLE hSession,
@@ -43,11 +43,15 @@
 	CK_BYTE_PTR pData,
 	CK_ULONG_PTR pulDataLen)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pEncryptedData;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pEncryptedData == NULL_PTR || pData == NULL_PTR ||
+	    pulDataLen == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)ulEncryptedDataLen;
-	(void)pData;
-	(void)pulDataLen;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_DecryptDigestUpdate.c#4 (text+ko) ====

@@ -31,10 +31,10 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_DecryptDigestUpdate.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_DecryptDigestUpdate.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_DecryptDigestUpdate(CK_SESSION_HANDLE hSession,
@@ -43,11 +43,15 @@
 	CK_BYTE_PTR pPart,
 	CK_ULONG_PTR pulPartLen)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pEncryptedPart;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pEncryptedPart == NULL_PTR || pPart == NULL_PTR ||
+	    pulPartLen == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)ulEncryptedPartLen;
-	(void)pPart;
-	(void)pulPartLen;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_DecryptFinal.c#4 (text+ko) ====

@@ -31,19 +31,23 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_DecryptFinal.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_DecryptFinal.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_DecryptFinal(CK_SESSION_HANDLE hSession,
 	CK_BYTE_PTR pLastPart,
 	CK_ULONG_PTR pulLastPartLen)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pLastPart;
-	(void)pulLastPartLen;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pLastPart == NULL_PTR || pulLastPartLen == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_DecryptInit.c#4 (text+ko) ====

@@ -31,19 +31,24 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_DecryptInit.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_DecryptInit.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_DecryptInit(CK_SESSION_HANDLE hSession,
 	CK_MECHANISM_PTR pMechanism,
 	CK_OBJECT_HANDLE hKey)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pMechanism;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pMechanism == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)hKey;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_DecryptUpdate.c#4 (text+ko) ====

@@ -31,10 +31,10 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_DecryptUpdate.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_DecryptUpdate.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_DecryptUpdate(CK_SESSION_HANDLE hSession,
@@ -43,11 +43,15 @@
 	CK_BYTE_PTR pPart,
 	CK_ULONG_PTR pulPartLen)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pEncryptedPart;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pEncryptedPart == NULL_PTR || pPart == NULL_PTR ||
+	    pulPartLen == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)ulEncryptedPartLen;
-	(void)pPart;
-	(void)pulPartLen;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_DecryptVerifyUpdate.c#4 (text+ko) ====

@@ -31,10 +31,10 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_DecryptVerifyUpdate.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_DecryptVerifyUpdate.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_DecryptVerifyUpdate(CK_SESSION_HANDLE hSession,
@@ -43,11 +43,15 @@
 	CK_BYTE_PTR pPart,
 	CK_ULONG_PTR pulPartLen)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pEncryptedPart;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pEncryptedPart == NULL_PTR || pPart == NULL_PTR ||
+	    pulPartLen == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)ulEncryptedPartLen;
-	(void)pPart;
-	(void)pulPartLen;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_DeriveKey.c#4 (text+ko) ====

@@ -31,10 +31,10 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_DeriveKey.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_DeriveKey.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_DeriveKey(CK_SESSION_HANDLE hSession,
@@ -44,12 +44,16 @@
 	CK_ULONG ulAttributeCount,
 	CK_OBJECT_HANDLE_PTR phKey)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pMechanism;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pMechanism == NULL_PTR || pTemplate == NULL_PTR ||
+	    phKey == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)hBaseKey;
-	(void)pTemplate;
 	(void)ulAttributeCount;
-	(void)phKey;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_DestroyObject.c#4 (text+ko) ====

@@ -31,17 +31,21 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_DestroyObject.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_DestroyObject.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_DestroyObject(CK_SESSION_HANDLE hSession,
 	CK_OBJECT_HANDLE hObject)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)hObject;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_Digest.c#4 (text+ko) ====

@@ -31,10 +31,10 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_Digest.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_Digest.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_Digest(CK_SESSION_HANDLE hSession,
@@ -43,11 +43,15 @@
 	CK_BYTE_PTR pDigest,
 	CK_ULONG_PTR pulDigestLen)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pData;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pData == NULL_PTR || pDigest == NULL_PTR ||
+	    pulDigestLen == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)ulDataLen;
-	(void)pDigest;
-	(void)pulDigestLen;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_DigestEncryptUpdate.c#4 (text+ko) ====

@@ -31,10 +31,10 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_DigestEncryptUpdate.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_DigestEncryptUpdate.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_DigestEncryptUpdate(CK_SESSION_HANDLE hSession,
@@ -43,11 +43,15 @@
 	CK_BYTE_PTR pEncryptedPart,
 	CK_ULONG_PTR pulEncryptedPartLen)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pPart;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pPart == NULL_PTR || pEncryptedPart == NULL_PTR ||
+	    pulEncryptedPartLen == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)ulPartLen;
-	(void)pEncryptedPart;
-	(void)pulEncryptedPartLen;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_DigestFinal.c#4 (text+ko) ====

@@ -31,19 +31,23 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_DigestFinal.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_DigestFinal.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_DigestFinal(CK_SESSION_HANDLE hSession,
 	CK_BYTE_PTR pDigest,
 	CK_ULONG_PTR pulDigestLen)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pDigest;
-	(void)pulDigestLen;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pDigest == NULL_PTR || pulDigestLen == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_DigestInit.c#4 (text+ko) ====

@@ -31,17 +31,22 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_DigestInit.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_DigestInit.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_DigestInit(CK_SESSION_HANDLE hSession,
 	CK_MECHANISM_PTR pMechanism)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pMechanism;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pMechanism == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_DigestKey.c#4 (text+ko) ====

@@ -31,16 +31,18 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_DigestKey.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_DigestKey.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_DigestKey(CK_SESSION_HANDLE hSession,
 	CK_OBJECT_HANDLE hKey)
 {
 
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
 	(void)hSession;
 	(void)hKey;
 	return (CKR_FUNCTION_NOT_SUPPORTED);

==== //depot/projects/cryptoki/lib/C_DigestUpdate.c#4 (text+ko) ====

@@ -31,19 +31,24 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_DigestUpdate.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_DigestUpdate.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_DigestUpdate(CK_SESSION_HANDLE hSession,
 	CK_BYTE_PTR pPart,
 	CK_ULONG ulPartLen)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pPart;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pPart == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)ulPartLen;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_Encrypt.c#4 (text+ko) ====

@@ -31,10 +31,10 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_Encrypt.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_Encrypt.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_Encrypt(CK_SESSION_HANDLE hSession,
@@ -43,11 +43,15 @@
 	CK_BYTE_PTR pEncryptedData,
 	CK_ULONG_PTR pulEncryptedDataLen)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pData;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pData == NULL_PTR || pEncryptedData == NULL_PTR ||
+	    pulEncryptedDataLen == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)ulDataLen;
-	(void)pEncryptedData;
-	(void)pulEncryptedDataLen;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_EncryptFinal.c#4 (text+ko) ====

@@ -31,19 +31,24 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_EncryptFinal.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_EncryptFinal.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_EncryptFinal(CK_SESSION_HANDLE hSession,
 	CK_BYTE_PTR pLastEncryptedPart,
 	CK_ULONG_PTR pulLastEncryptedPartLen)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pLastEncryptedPart;
-	(void)pulLastEncryptedPartLen;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pLastEncryptedPart == NULL_PTR ||
+	    pulLastEncryptedPartLen == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_EncryptInit.c#4 (text+ko) ====

@@ -31,19 +31,24 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_EncryptInit.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_EncryptInit.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_EncryptInit(CK_SESSION_HANDLE hSession,
 	CK_MECHANISM_PTR pMechanism,
 	CK_OBJECT_HANDLE hKey)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pMechanism;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pMechanism == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)hKey;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_EncryptUpdate.c#4 (text+ko) ====

@@ -31,10 +31,10 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_EncryptUpdate.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_EncryptUpdate.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_EncryptUpdate(CK_SESSION_HANDLE hSession,
@@ -43,11 +43,15 @@
 	CK_BYTE_PTR pEncryptedPart,
 	CK_ULONG_PTR pulEncryptedPartLen)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pPart;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pPart == NULL_PTR || pEncryptedPart == NULL_PTR ||
+	    pulEncryptedPartLen == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)ulPartLen;
-	(void)pEncryptedPart;
-	(void)pulEncryptedPartLen;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_Finalize.c#4 (text+ko) ====

@@ -31,11 +31,9 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_Finalize.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_Finalize.c#4 $
  */
 
-#include <cryptoki.h>
-
 #include "cryptoki_impl.h"
 
 CK_RV

==== //depot/projects/cryptoki/lib/C_FindObjects.c#4 (text+ko) ====

@@ -31,10 +31,10 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_FindObjects.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_FindObjects.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_FindObjects(CK_SESSION_HANDLE hSession,
@@ -42,10 +42,14 @@
 	CK_ULONG ulMaxObjectCount,
 	CK_ULONG_PTR pulObjectCount)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)phObject;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (phObject == NULL_PTR || pulObjectCount == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)ulMaxObjectCount;
-	(void)pulObjectCount;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_FindObjectsFinal.c#4 (text+ko) ====

@@ -31,15 +31,19 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_FindObjectsFinal.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_FindObjectsFinal.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_FindObjectsFinal(CK_SESSION_HANDLE hSession)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_FindObjectsInit.c#4 (text+ko) ====

@@ -31,19 +31,24 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_FindObjectsInit.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_FindObjectsInit.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_FindObjectsInit(CK_SESSION_HANDLE hSession,
 	CK_ATTRIBUTE_PTR pTemplate,
 	CK_ULONG ulCount)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pTemplate;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pTemplate == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)ulCount;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_GenerateKey.c#4 (text+ko) ====

@@ -31,10 +31,10 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_GenerateKey.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_GenerateKey.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_GenerateKey(CK_SESSION_HANDLE hSession,
@@ -43,11 +43,15 @@
 	CK_ULONG ulCount,
 	CK_OBJECT_HANDLE_PTR phKey)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pMechanism;
-	(void)pTemplate;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pMechanism == NULL_PTR || pTemplate == NULL_PTR ||
+	    phKey == NULL_PTR)
+		return (CKR_ARGUMENTS_BAD);
+	if ((pSession = _ck_session_find(hSession)) == NULL_PTR)
+		return (CKR_SESSION_CLOSED);
 	(void)ulCount;
-	(void)phKey;
 	return (CKR_FUNCTION_NOT_SUPPORTED);
 }

==== //depot/projects/cryptoki/lib/C_GenerateKeyPair.c#4 (text+ko) ====

@@ -31,10 +31,10 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/cryptoki/lib/C_GenerateKeyPair.c#3 $
+ * $P4: //depot/projects/cryptoki/lib/C_GenerateKeyPair.c#4 $
  */
 
-#include <cryptoki.h>
+#include "cryptoki_impl.h"
 
 CK_RV
 C_GenerateKeyPair(CK_SESSION_HANDLE hSession,
@@ -46,14 +46,17 @@
 	CK_OBJECT_HANDLE_PTR phPublicKey,
 	CK_OBJECT_HANDLE_PTR phPrivateKey)
 {
+	_ck_session_ptr pSession;
 
-	(void)hSession;
-	(void)pMechanism;
-	(void)pPublicKeyTemplate;
+	if (!_ck_Initialized)
+		return (CKR_CRYPTOKI_NOT_INITIALIZED);
+	if (pMechanism == NULL_PTR || pPublicKeyTemplate == NULL_PTR ||
+	    pPrivateKeyTemplate == NULL_PTR || phPublicKey == NULL_PTR ||

>>> TRUNCATED FOR MAIL (1000 lines) <<<

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?200206132341.g5DNf7N15681>