=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/x99token/x99token.c,v retrieving revision 1.3 retrieving revision 1.4 diff -c -r1.3 -r1.4 *** src/usr.bin/x99token/x99token.c 2003/01/04 22:36:13 1.3 --- src/usr.bin/x99token/x99token.c 2003/06/10 17:06:52 1.4 *************** *** 20,26 **** #define HEXDIGITS "0123456789abcdef" #define DECDIGITS "0123456789012345" ! void predict(des_key_schedule, char *, int); char *digits = HEXDIGITS; extern char *__progname; --- 20,26 ---- #define HEXDIGITS "0123456789abcdef" #define DECDIGITS "0123456789012345" ! void predict(des_key_schedule, const char *, int); char *digits = HEXDIGITS; extern char *__progname; *************** *** 92,102 **** char *b = buf; /* Assume octal input */ for (i = 0; i < 8; ++i) { ! if (!*b) { fprintf(stderr, "%s: invalid key\n", buf); - } while (isdigit(*b)) ! key[i] = key[i] << 3 | *b++ - '0'; while (*b && !isdigit(*b)) ++b; } --- 92,101 ---- char *b = buf; /* Assume octal input */ for (i = 0; i < 8; ++i) { ! if (!*b) fprintf(stderr, "%s: invalid key\n", buf); while (isdigit(*b)) ! key[i] = key[i] << 3 | (*b++ - '0'); while (*b && !isdigit(*b)) ++b; } *************** *** 167,180 **** } void ! predict(des_key_schedule ks, char *chal, int cnt) { int i; des_cblock cb; while (cnt-- > 0) { ! printf("%.8s: ", chal); ! des_ecb_encrypt((des_cblock *)chal, &cb, ks, DES_ENCRYPT); for (i = 0; i < 4; ++i) { printf("%c", digits[(cb[i]>>4) & 0xf]); printf("%c", digits[(cb[i]>>0) & 0xf]); --- 166,180 ---- } void ! predict(des_key_schedule ks, const char *chal, int cnt) { int i; des_cblock cb; + memcpy(&cb, chal, sizeof(cb)); while (cnt-- > 0) { ! printf("%.8s: ", (char *)cb); ! des_ecb_encrypt(&cb, &cb, ks, DES_ENCRYPT); for (i = 0; i < 4; ++i) { printf("%c", digits[(cb[i]>>4) & 0xf]); printf("%c", digits[(cb[i]>>0) & 0xf]);