summaryrefslogtreecommitdiff
path: root/lib/libskey
diff options
context:
space:
mode:
authorTodd C. Miller <millert@cvs.openbsd.org>1996-10-02 03:49:38 +0000
committerTodd C. Miller <millert@cvs.openbsd.org>1996-10-02 03:49:38 +0000
commit3b4a19fe2a7ba832839e12ae75de1c5281a8c079 (patch)
treed7dc616096c8a8221ba66a8897c1a06febfb8990 /lib/libskey
parent36ae36319d92202d4c1d7634d20ab3dcc402e907 (diff)
Fix a bug wrt handling of old md4 entries. Now don't save a type with md4
so we don't go over the record size and munge other entries. Don't export symbols we don't need to in put.c.
Diffstat (limited to 'lib/libskey')
-rw-r--r--lib/libskey/put.c4
-rw-r--r--lib/libskey/skeylogin.c16
2 files changed, 13 insertions, 7 deletions
diff --git a/lib/libskey/put.c b/lib/libskey/put.c
index fe05e160a05..6b2636225b5 100644
--- a/lib/libskey/put.c
+++ b/lib/libskey/put.c
@@ -8,7 +8,7 @@
*
* Dictionary lookup and extraction.
*
- * $Id: put.c,v 1.3 1996/09/30 04:10:43 millert Exp $
+ * $Id: put.c,v 1.4 1996/10/02 03:49:37 millert Exp $
*/
#include <stdio.h>
@@ -23,7 +23,7 @@ static void insert __P ((char *s, int x, int start, int length));
static int wsrch __P ((char *w, int low, int high));
/* Dictionary for integer-word translations */
-char Wp[2048][4] = {
+static char Wp[2048][4] = {
"A",
"ABE",
"ACE",
diff --git a/lib/libskey/skeylogin.c b/lib/libskey/skeylogin.c
index 38cd82c5df9..8762a31302a 100644
--- a/lib/libskey/skeylogin.c
+++ b/lib/libskey/skeylogin.c
@@ -8,7 +8,7 @@
*
* S/KEY verification check, lookups, and authentication.
*
- * $Id: skeylogin.c,v 1.7 1996/09/30 04:10:46 millert Exp $
+ * $Id: skeylogin.c,v 1.8 1996/10/02 03:49:36 millert Exp $
*/
#include <sys/param.h>
@@ -17,7 +17,6 @@
#endif
#include <sys/stat.h>
#include <sys/time.h>
-#include <sys/timeb.h>
#include <sys/resource.h>
#include <stdio.h>
@@ -231,7 +230,8 @@ skeyverify(mp, response)
rip(mp->buf);
mp->logname = strtok(mp->buf, " \t");
cp = strtok(NULL, " \t") ;
- cp = strtok(NULL, " \t") ;
+ if (isalpha(*cp))
+ cp = strtok(NULL, " \t") ;
mp->seed = strtok(NULL, " \t");
mp->val = strtok(NULL, " \t");
/* And convert file value to hex for comparison */
@@ -253,8 +253,14 @@ skeyverify(mp, response)
btoa8(mp->val,key);
mp->n--;
(void)fseek(mp->keyfile, mp->recstart, SEEK_SET);
- (void)fprintf(mp->keyfile, "%s %s %04d %-16s %s %-21s\n",
- mp->logname, skey_get_algorithm(), mp->n, mp->seed, mp->val, tbuf);
+ /* Don't save algorithm type for md4 (keep record length same) */
+ if (strcmp(skey_get_algorithm(), "md4") == 0)
+ (void)fprintf(mp->keyfile, "%s %04d %-16s %s %-21s\n",
+ mp->logname, mp->n, mp->seed, mp->val, tbuf);
+ else
+ (void)fprintf(mp->keyfile, "%s %s %04d %-16s %s %-21s\n",
+ mp->logname, skey_get_algorithm(), mp->n,
+ mp->seed, mp->val, tbuf);
(void)fclose(mp->keyfile);