summaryrefslogtreecommitdiffstats
path: root/usr.sbin/xntpd/authstuff/mkrandkeys.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/xntpd/authstuff/mkrandkeys.c')
-rw-r--r--usr.sbin/xntpd/authstuff/mkrandkeys.c167
1 files changed, 0 insertions, 167 deletions
diff --git a/usr.sbin/xntpd/authstuff/mkrandkeys.c b/usr.sbin/xntpd/authstuff/mkrandkeys.c
deleted file mode 100644
index 0edf733..0000000
--- a/usr.sbin/xntpd/authstuff/mkrandkeys.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * mkrandkeys - make a key file for xntpd with some quite random keys
- */
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include "ntp_stdlib.h"
-
-#define STREQ(a, b) (*(a) == *(b) && strcmp((a), (b)) == 0)
-
-char *progname;
-int debug;
-
-u_long keydata[2];
-
-int std = 1; /* DES standard key format */
-u_char dokey[16] = { 0 };
-
-static void rand_data P((u_long *));
-
-/*
- * main - parse arguments and handle options
- */
-void
-main(argc, argv)
-int argc;
-char *argv[];
-{
- int c;
- int i;
- int j;
- int errflg = 0;
- int numkeys;
- u_long tmp;
- char *passwd;
- extern int ntp_optind;
- extern char *ntp_optarg;
- extern char *getpass();
-
- numkeys = 0;
- progname = argv[0];
- passwd = NULL;
- while ((c = ntp_getopt(argc, argv, "dnp:s")) != EOF)
- switch (c) {
- case 'd':
- ++debug;
- break;
- case 'n':
- std = 0;
- break;
- case 'p':
- passwd = ntp_optarg;
- break;
- case 's':
- std = 1;
- break;
- default:
- errflg++;
- break;
- }
-
- numkeys = 0;
- for (; !errflg && ntp_optind < argc; ntp_optind++) {
- c = atoi(argv[ntp_optind]);
- if (c <= 0 || c > 15) {
- (void) fprintf(stderr, "%s: invalid key number `%s'\n",
- progname, argv[ntp_optind]);
- exit(2);
- }
- dokey[c] = 1;
- numkeys++;
- }
-
- if (errflg || numkeys == 0) {
- (void) fprintf(stderr,
- "usage: %s [-ns] [-p seed] key# [key# ...]\n",
- progname);
- exit(2);
- }
-
- while (passwd == 0 || *passwd == '\0') {
- passwd = getpass("Seed: ");
- if (*passwd == '\0') {
- (void) fprintf(stderr,
- "better use a better seed than that\n");
- }
- }
-
- keydata[0] = keydata[1] = 0;
- for (i = 0; i < 8 && *passwd != '\0'; i++) {
- keydata[i/4] |= ((((u_long)(*passwd))&0xff)<<(1+((3-(i%4))*8)));
- passwd++;
- }
-
- for (i = 1; i <= 15; i++) {
- if (dokey[i]) {
- for (c = 0, tmp = 0; c < 32; c += 4)
- tmp |= (i << c);
- keydata[0] ^= tmp;
- keydata[1] ^= tmp;
- rand_data(keydata);
- DESauth_parity(keydata);
-
- if (std) {
- (void)printf("%-2d S\t%08x%08x\n",
- i, keydata[0], keydata[1]);
- } else {
- for (j = 0; j < 2; j++) {
- keydata[j]
- = ((keydata[j] & 0xfefefefe) >> 1)
- | ((keydata[j] & 0x01010101) << 7);
- }
- (void)printf("%-2d N\t%08x%08x\n",
- i, keydata[0], keydata[1]);
- }
- }
- }
- exit(0);
-}
-
-char *volatile_file[] = {
- "/bin/echo",
- "/bin/sh",
- "/bin/cat",
- "/bin/ls",
- "/bin/stty",
- "/bin/date",
- "/bin/cat",
- "/bin/cc",
- "/etc/motd",
- "/etc/utmp",
- "/dev/kmem",
- "/dev/null",
- "",
-};
-
-#define NEXT(X) (0x1e1f2f2d*(X) + 0x361962e9)
-
-static void
-rand_data(data)
- u_long *data;
-{
- register i;
- struct stat buf;
- extern long time();
- char ekeys[128], dkeys[128];
-
- *data ^= 0x9662f394;
- *(data+1) ^= 0x9f17c55f;
- DESauth_subkeys(data, ekeys, dkeys);
- *data ^= NEXT(getpid() + (getuid() << 16));
- *(data+1) ^= NEXT(time((long *)0));
- DESauth_des(data, ekeys);
- for (i = 0; strlen(volatile_file[i]); i++) {
- if (stat(volatile_file[i], &buf) == -1)
- continue;
- if (i & 1) {
- *data ^= NEXT(buf.st_atime);
- *(data+1) ^= NEXT(buf.st_mtime);
- } else {
- *data ^= NEXT(buf.st_mtime);
- *(data+1) ^= NEXT(buf.st_atime);
- }
- DESauth_des(data, ekeys);
- }
-}
OpenPOWER on IntegriCloud