[Pcsclite-cvs-commit] CVS PKCS11/src

CVS User rousseau ludovic.rousseau@free.fr
Sun, 28 Nov 2004 07:30:32 -0700


Update of /cvsroot/muscleapps/PKCS11/src
In directory haydn:/tmp/cvs-serv21300/src

Modified Files:
	p11_object.c p11x_object.c p11x_slot.c 
Log Message:
reread object after the PIN is verfied. See
http://archives.neohapsis.com/archives/dev/muscle/2004-q4/0249.html

Thanks to Peter Stamfest for the patch.


--- /cvsroot/muscleapps/PKCS11/src/p11_object.c	2004/11/28 14:11:52	1.25
+++ /cvsroot/muscleapps/PKCS11/src/p11_object.c	2004/11/28 14:30:31	1.26
@@ -1,6 +1,6 @@
 /******************************************************************************
 ** 
-**  $Id: p11_object.c,v 1.25 2004/11/28 14:11:52 rousseau Exp $
+**  $Id: p11_object.c,v 1.26 2004/11/28 14:30:31 rousseau Exp $
 **
 **  Package: PKCS-11
 **  Author : Chris Osgood <oznet@mac.com>
@@ -535,8 +535,10 @@
             }
         }
 
-        if (st.prefs.multi_app || !slot->objects)
+        if (st.prefs.multi_app || !slot->objects || (slot->flags & P11_SLOT_REREAD_OBJECTS))
         {
+            slot->flags &= ~P11_SLOT_REREAD_OBJECTS;
+
             if (!CKR_ERROR(rv = slot_BeginTransaction(session->session.slotID)))
             {
                 msc_rv = msc_ListKeys(&slot->conn, MSC_SEQUENCE_RESET, &keyInfo);
--- /cvsroot/muscleapps/PKCS11/src/p11x_object.c	2003/11/28 09:47:13	1.42
+++ /cvsroot/muscleapps/PKCS11/src/p11x_object.c	2004/11/28 14:30:31	1.43
@@ -1,6 +1,6 @@
 /******************************************************************************
 ** 
-**  $Id: p11x_object.c,v 1.42 2003/11/28 09:47:13 rousseau Exp $
+**  $Id: p11x_object.c,v 1.43 2004/11/28 14:30:31 rousseau Exp $
 **
 **  Package: PKCS-11
 **  Author : Chris Osgood <oznet@mac.com>
@@ -1453,12 +1453,11 @@
         ck_attrib.pValue = &priv;
         ck_attrib.ulValueLen = sizeof(priv);
 
-/*
+
         if (object_MatchAttrib(&ck_attrib, object))
             objACL.readPermission = (MSCUShort16)object_MapPIN(st.prefs.user_pin_num);
         else
-*/
-        objACL.readPermission = MSC_AUT_ALL;
+            objACL.readPermission = MSC_AUT_ALL;
 
         objACL.writePermission = (MSCUShort16)object_MapPIN(st.prefs.user_pin_num);
         objACL.deletePermission = (MSCUShort16)object_MapPIN(st.prefs.user_pin_num);
--- /cvsroot/muscleapps/PKCS11/src/p11x_slot.c	2003/10/04 08:30:18	1.30
+++ /cvsroot/muscleapps/PKCS11/src/p11x_slot.c	2004/11/28 14:30:32	1.31
@@ -1,6 +1,6 @@
 /******************************************************************************
 ** 
-**  $Id: p11x_slot.c,v 1.30 2003/10/04 08:30:18 rousseau Exp $
+**  $Id: p11x_slot.c,v 1.31 2004/11/28 14:30:32 rousseau Exp $
 **
 **  Package: PKCS-11
 **  Author : Chris Osgood <oznet@mac.com>
@@ -931,6 +931,8 @@
     else
     {
         st.slots[slotID - 1].pin_state = 0; /* Fixme: create #define for this */
+		/* mark the slot to update its objects and keys */
+		st.slots[slotID - 1].flags |= P11_SLOT_REREAD_OBJECTS;
 
         session_l = st.sessions;
         while (session_l)
@@ -984,6 +986,8 @@
     else
     {
         st.slots[slotID - 1].pin_state = 1; /* Fixme: create #define for this */
+		/* mark the slot to update its objects and keys */
+		st.slots[slotID - 1].flags |= P11_SLOT_REREAD_OBJECTS;
 
         session_l = st.sessions;
         while (session_l)