diff options
author | Jordan K. Hubbard <jkh@FreeBSD.org> | 1994-11-22 10:58:58 +0000 |
---|---|---|
committer | Jordan K. Hubbard <jkh@FreeBSD.org> | 1994-11-22 10:58:58 +0000 |
commit | 140932d6d85b561ad06abe5006a5e973a7713c45 (patch) | |
tree | be1d2469fd1ab2ab0df6164fbc91fb7bbbdd80f5 /eBones/ext_srvtab/ext_srvtab.c | |
parent | 324ec40db3d437d18da21aa07a7ae4d4ecd9c157 (diff) |
Diffstat (limited to 'eBones/ext_srvtab/ext_srvtab.c')
-rw-r--r-- | eBones/ext_srvtab/ext_srvtab.c | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/eBones/ext_srvtab/ext_srvtab.c b/eBones/ext_srvtab/ext_srvtab.c deleted file mode 100644 index 3a5dceca0cf4f..0000000000000 --- a/eBones/ext_srvtab/ext_srvtab.c +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright 1987, 1988 by the Massachusetts Institute of Technology. - * - * from: ext_srvtab.c,v 4.1 89/07/18 16:49:30 jtkohl Exp $ - * $Id: ext_srvtab.c,v 1.2 1994/07/19 19:22:36 g89r4222 Exp $ - */ - -#ifndef lint -static char rcsid[] = -"$Id: ext_srvtab.c,v 1.2 1994/07/19 19:22:36 g89r4222 Exp $"; -#endif lint - -#include <stdio.h> -#include <sys/file.h> -#include <sys/types.h> -#include <sys/time.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <signal.h> -#include <des.h> -#include <krb.h> -#include <krb_db.h> - -#define TRUE 1 -#define FALSE 0 - -static C_Block master_key; -static C_Block session_key; -static Key_schedule master_key_schedule; -char progname[] = "ext_srvtab"; -char realm[REALM_SZ]; - -main(argc, argv) - int argc; - char *argv[]; -{ - FILE *fout; - char fname[1024]; - int fopen_errs = 0; - int arg; - Principal princs[40]; - int more; - int prompt = TRUE; - register int n, i; - - bzero(realm, sizeof(realm)); - - /* Parse commandline arguments */ - if (argc < 2) - usage(); - else { - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-n") == 0) - prompt = FALSE; - else if (strcmp(argv[i], "-r") == 0) { - if (++i >= argc) - usage(); - else { - strcpy(realm, argv[i]); - /* - * This is to humor the broken way commandline - * argument parsing is done. Later, this - * program ignores everything that starts with -. - */ - argv[i][0] = '-'; - } - } - else if (argv[i][0] == '-') - usage(); - else - if (!k_isinst(argv[i])) { - fprintf(stderr, "%s: bad instance name: %s\n", - progname, argv[i]); - usage(); - } - } - } - - if (kdb_get_master_key (prompt, master_key, master_key_schedule) != 0) { - fprintf (stderr, "Couldn't read master key.\n"); - fflush (stderr); - exit(1); - } - - if (kdb_verify_master_key (master_key, master_key_schedule, stderr) < 0) { - exit(1); - } - - /* For each arg, search for instances of arg, and produce */ - /* srvtab file */ - if (!realm[0]) - if (krb_get_lrealm(realm, 1) != KSUCCESS) { - fprintf(stderr, "%s: couldn't get local realm\n", progname); - exit(1); - } - (void) umask(077); - - for (arg = 1; arg < argc; arg++) { - if (argv[arg][0] == '-') - continue; - sprintf(fname, "%s-new-srvtab", argv[arg]); - if ((fout = fopen(fname, "w")) == NULL) { - fprintf(stderr, "Couldn't create file '%s'.\n", fname); - fopen_errs++; - continue; - } - printf("Generating '%s'....\n", fname); - n = kerb_get_principal("*", argv[arg], &princs[0], 40, &more); - if (more) - fprintf(stderr, "More than 40 found...\n"); - for (i = 0; i < n; i++) { - FWrite(princs[i].name, strlen(princs[i].name) + 1, 1, fout); - FWrite(princs[i].instance, strlen(princs[i].instance) + 1, - 1, fout); - FWrite(realm, strlen(realm) + 1, 1, fout); - FWrite(&princs[i].key_version, - sizeof(princs[i].key_version), 1, fout); - bcopy(&princs[i].key_low, session_key, sizeof(long)); - bcopy(&princs[i].key_high, session_key + sizeof(long), - sizeof(long)); - kdb_encrypt_key (session_key, session_key, - master_key, master_key_schedule, DES_DECRYPT); - FWrite(session_key, sizeof session_key, 1, fout); - } - fclose(fout); - } - - StampOutSecrets(); - - exit(fopen_errs); /* 0 errors if successful */ - -} - -Die() -{ - StampOutSecrets(); - exit(1); -} - -FWrite(p, size, n, f) - char *p; - int size; - int n; - FILE *f; -{ - if (fwrite(p, size, n, f) != n) { - printf("Error writing output file. Terminating.\n"); - Die(); - } -} - -StampOutSecrets() -{ - bzero(master_key, sizeof master_key); - bzero(session_key, sizeof session_key); - bzero(master_key_schedule, sizeof master_key_schedule); -} - -usage() -{ - fprintf(stderr, - "Usage: %s [-n] [-r realm] instance [instance ...]\n", progname); - exit(1); -} |