[Pcsclite-cvs-commit] muscleTools muscleTool.c,1.32,1.33

rousseau@quantz.debian.org rousseau@quantz.debian.org
Sun, 15 Feb 2004 18:03:54 +0100


Update of /cvsroot/muscleapps/muscleTools
In directory quantz:/tmp/cvs-serv12611

Modified Files:
	muscleTool.c 
Log Message:
add unblock command to "Unblock a PIN". Thanks to Martin Buechler for
the patch


Index: muscleTool.c
===================================================================
RCS file: /cvsroot/muscleapps/muscleTools/muscleTool.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- muscleTool.c	28 Nov 2003 14:47:21 -0000	1.32
+++ muscleTool.c	15 Feb 2004 17:03:52 -0000	1.33
@@ -214,6 +214,7 @@
   printf("     verify    - Verify a PIN +\n");
   printf("     makepin   - Create a PIN\n"); 
   printf("     changepin - Change a PIN\n");
+  printf("     unblock   - Unblock a PIN\n");
   printf("     listpins  - List the PINs\n");
   printf("\n");
   printf(" Key related functions \n");
@@ -918,6 +919,44 @@
   return;
 }
 
+void doUnblockPIN() {
+
+  MSCLong32 rv;
+  MSCString arg2;
+  MSCString arg3;
+  MSCUChar8 pinNumber;
+  MSCULong32 pinSize;
+  MSCUChar8 pinData[128];
+
+  CHECK_ERR(pConnection == 0, "Must Connect First !");
+
+  arg2 = strtok(NULL, " ");
+
+  if ( arg2 ) {
+    pinNumber = strtoul(arg2, 0, 10);
+    
+    arg3 = strtok(NULL, " ");
+	if (arg3 == NULL) {
+		printf("ERR: Invalid Use: unblock [number] [value]\n");
+		return;
+	}
+
+    pinSize = strlen(arg3);
+
+    CHECK_ERR(pinSize > sizeof(pinData), "ERR: Invalid PIN Code !\n");
+    memcpy(pinData, arg3, pinSize);
+  } else {
+    printf("ERR: Invalid Use: unblock [number] [value]\n");
+    return;
+  }
+
+  rv = MSCUnblockPIN(pConnection, pinNumber, pinData, pinSize);
+  CHECK_ERR(rv != MSC_SUCCESS, "UnblockPIN Failed !");
+  printf("PIN Unblock Successful\n");
+
+  return;
+}
+
 void doMakePIN() {
 
   MSCLong32 rv;
@@ -1830,6 +1869,8 @@
       doListPIN();
     } else if (strcmp(arg1, "changepin") == 0) {
       doChangePIN();
+    } else if (strcmp(arg1, "unblock") == 0) {
+      doUnblockPIN();
     } else if (strcmp(arg1, "create") == 0) {
       doCreate();
     } else if (strcmp(arg1, "delete") == 0) {