summaryrefslogtreecommitdiff
path: root/lib/libsectok/readers.c
diff options
context:
space:
mode:
authorJim Rees <rees@cvs.openbsd.org>2001-06-07 15:17:34 +0000
committerJim Rees <rees@cvs.openbsd.org>2001-06-07 15:17:34 +0000
commite79bf55dc158d93c85332d7364cc081c5ed7f004 (patch)
tree0f156334f09069ae3055840248ec836e9d39d4cc /lib/libsectok/readers.c
parentbe748640a8100f6e89cc57bac4fe6358cb57b868 (diff)
libsectok for secure tokens (smartcard, iButton, etc)
Diffstat (limited to 'lib/libsectok/readers.c')
-rw-r--r--lib/libsectok/readers.c85
1 files changed, 85 insertions, 0 deletions
diff --git a/lib/libsectok/readers.c b/lib/libsectok/readers.c
new file mode 100644
index 00000000000..2818e9e9e5b
--- /dev/null
+++ b/lib/libsectok/readers.c
@@ -0,0 +1,85 @@
+/*
+ * parse the reader.conf file
+ *
+ * See copyright notice at end of file
+ *
+ * Jim Rees
+ * University of Michigan CITI, August 2000
+ */
+static char *rcsid = "$Id: readers.c,v 1.1 2001/06/07 15:17:33 rees Exp $";
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+int
+DBUpdateReaders(char *readerconf, void (callback) (char *name, unsigned long channelId, char *driverFile))
+{
+ FILE *f;
+ char buf[512], lv[64], rv[512], libpath[512];
+ long channelno;
+
+ f = fopen(readerconf, "r");
+ if (!f)
+ return -1;
+
+ libpath[0] = '\0';
+ channelno = -1;
+
+ while (fgets(buf, sizeof buf, f)) {
+ if (sscanf(buf, "%63s %511s", lv, rv) != 2)
+ continue;
+ if (rv[0] == '"') {
+ /* if rv starts with quote, read everything up to terminating quote */
+ sscanf(buf, "%*s \"%511[^\"]", rv);
+ }
+#ifdef DEBUG
+ printf("%s %s\n", lv, rv);
+#endif
+ if (!strcasecmp(lv, "libpath"))
+ strncpy(libpath, rv, sizeof libpath);
+ if (!strcasecmp(lv, "channelid"))
+ channelno = strtol(rv, NULL, 0);
+ if (libpath[0] && channelno != -1) {
+#ifdef DEBUG
+ printf("adding %x %s\n", channelno, libpath);
+#endif
+ (*callback)("", channelno, libpath);
+ libpath[0] = '\0';
+ channelno = -1;
+ }
+ }
+
+ fclose(f);
+ return 0;
+}
+
+/*
+copyright 2001
+the regents of the university of michigan
+all rights reserved
+
+permission is granted to use, copy, create derivative works
+and redistribute this software and such derivative works
+for any purpose, so long as the name of the university of
+michigan is not used in any advertising or publicity
+pertaining to the use or distribution of this software
+without specific, written prior authorization. if the
+above copyright notice or any other identification of the
+university of michigan is included in any copy of any
+portion of this software, then the disclaimer below must
+also be included.
+
+this software is provided as is, without representation
+from the university of michigan as to its fitness for any
+purpose, and without warranty by the university of
+michigan of any kind, either express or implied, including
+without limitation the implied warranties of
+merchantability and fitness for a particular purpose. the
+regents of the university of michigan shall not be liable
+for any damages, including special, indirect, incidental, or
+consequential damages, with respect to any claim arising
+out of or in connection with the use of the software, even
+if it has been or is hereafter advised of the possibility of
+such damages.
+*/