crypto interface
[pam_pcsc_cr.git] / test_cr.c
index 2d66d5fd11ca29162d1abc7e9f20698d7285720d..9415406d5ef62135ed8f56cc1ae843f03146c6c7 100644 (file)
--- a/test_cr.c
+++ b/test_cr.c
@@ -1,15 +1,39 @@
 #include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
 #include "pcsc_cr.h"
 
-char chal[] = {
+unsigned char chal[] = {
 0x0f,0x65,0xd1,0x3a,0xfe,0xcb,0xc4,0xb9,0x52,0xb1,0x60,0xcf,0xe8,0x55,0x6a,0xdd,0xfb,0xef,0xf6,0x55,0x83,0x4c,0x8d,0xea,0x38,0xea,0x3b,0x26,0xf7,0x0a,0xe8,0x0d,0x31,0x38,0xee,0x16,0x5d,0xab,0x8b,0x7f,0xf0,0x1b,0xe3,0xbe,0xd8,0x4b,0x6e,0x44,0x42,0x8d,0x0f,0xc1,0x3b,0x23,0xea,0xfe,0xc0,0x68,0xc1,0x0f,0x60,0x6c,0xf4};
 
+static void usage(const char const *cmd)
+{
+       fprintf(stderr, "usage: %s [-o backend:name=value] ...\n", cmd);
+}
+
 int main(int argc, char *argv[])
 {
        unsigned char rbuf[20];
        int rsize = sizeof(rbuf);
        int i;
        long rc;
+       int c;
+
+       while ((c = getopt(argc, argv, "ho:")) != -1) switch (c) {
+       case 'h':
+               usage(argv[0]);
+               exit(0);
+       case 'o':
+               if (pcsc_option(optarg)) {
+                       fprintf(stderr, "Option \"%s\" bad\n", optarg);
+                       exit(1);
+               }
+               break;
+       default:
+               usage(argv[0]);
+               exit(1);
+       }
 
        memset(rbuf, 0xFE, sizeof(rbuf));
        rc = pcsc_cr(chal, sizeof(chal), rbuf, &rsize);