=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/skeyinit/skeyinit.c,v retrieving revision 1.34 retrieving revision 1.35 diff -c -r1.34 -r1.35 *** src/usr.bin/skeyinit/skeyinit.c 2002/05/17 00:55:54 1.34 --- src/usr.bin/skeyinit/skeyinit.c 2002/05/17 15:54:13 1.35 *************** *** 1,4 **** ! /* $OpenBSD: skeyinit.c,v 1.34 2002/05/17 00:55:54 millert Exp $ */ /* OpenBSD S/Key (skeyinit.c) * --- 1,4 ---- ! /* $OpenBSD: skeyinit.c,v 1.35 2002/05/17 15:54:13 millert Exp $ */ /* OpenBSD S/Key (skeyinit.c) * *************** *** 50,56 **** int argc; char *argv[]; { ! int rval, i, l, n, defaultsetup, zerokey, hexmode, enable, convert; char hostname[MAXHOSTNAMELEN]; char seed[SKEY_MAX_SEED_LEN + 2], defaultseed[SKEY_MAX_SEED_LEN + 1]; char buf[256], key[SKEY_BINKEY_SIZE], filename[PATH_MAX], *ht; --- 50,56 ---- int argc; char *argv[]; { ! int rval, i, l, n, defaultsetup, rmkey, hexmode, enable, convert; char hostname[MAXHOSTNAMELEN]; char seed[SKEY_MAX_SEED_LEN + 2], defaultseed[SKEY_MAX_SEED_LEN + 1]; char buf[256], key[SKEY_BINKEY_SIZE], filename[PATH_MAX], *ht; *************** *** 58,64 **** struct skey skey; struct passwd *pp; ! n = zerokey = hexmode = enable = convert = 0; defaultsetup = 1; ht = auth_type = NULL; --- 58,64 ---- struct skey skey; struct passwd *pp; ! n = rmkey = hexmode = enable = convert = 0; defaultsetup = 1; ht = auth_type = NULL; *************** *** 98,105 **** case 'x': hexmode = 1; break; ! case 'z': ! zerokey = 1; break; case 'n': if (argv[++i] == NULL || argv[i][0] == '\0') --- 98,105 ---- case 'x': hexmode = 1; break; ! case 'r': ! rmkey = 1; break; case 'n': if (argv[++i] == NULL || argv[i][0] == '\0') *************** *** 190,198 **** err(1, "cannot open database"); break; case 0: ! /* comment out user if asked to */ ! if (zerokey) ! exit(skeyzero(&skey)); (void)printf("[Updating %s with %s]\n", pp->pw_name, ht ? ht : skey_get_algorithm()); --- 190,209 ---- err(1, "cannot open database"); break; case 0: ! /* remove user if asked to do so */ ! if (rmkey) { ! if (snprintf(filename, sizeof(filename), ! "%s/%s", _PATH_SKEYDIR, pp->pw_name) ! >= sizeof(filename)) { ! errno = ENAMETOOLONG; ! err(1, "Cannot remove S/Key entry"); ! } ! if (unlink(filename) != 0) ! err(1, "Cannot remove S/Key entry"); ! printf("S/Key entry for %s removed.\n", ! pp->pw_name); ! exit(0); ! } (void)printf("[Updating %s with %s]\n", pp->pw_name, ht ? ht : skey_get_algorithm()); *************** *** 229,236 **** } break; case 1: ! if (zerokey) ! errx(1, "You have no entry to zero."); (void)printf("[Adding %s with %s]\n", pp->pw_name, ht ? ht : skey_get_algorithm()); if (snprintf(filename, sizeof(filename), "%s/%s", --- 240,247 ---- } break; case 1: ! if (rmkey) ! errx(1, "You have no entry to remove."); (void)printf("[Adding %s with %s]\n", pp->pw_name, ht ? ht : skey_get_algorithm()); if (snprintf(filename, sizeof(filename), "%s/%s",