[BACK]Return to skeyinit.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / skeyinit

Diff for /src/usr.bin/skeyinit/skeyinit.c between version 1.9 and 1.10

version 1.9, 1996/09/29 23:11:04 version 1.10, 1996/09/30 06:30:43
Line 115 
Line 115 
         }          }
         salt = pp->pw_passwd;          salt = pp->pw_passwd;
   
         (void)setpriority(PRIO_PROCESS, 0, -4);  
   
         if (getuid() != 0) {          if (getuid() != 0) {
                 (void)setpriority(PRIO_PROCESS, 0, -4);  
   
                 pw = getpass("Password:");                  pw = getpass("Password:");
                 p = crypt(pw, salt);                  if (strcasecmp(pw, "s/key") == 0) {
                           if (skey_haskey(me))
                 (void)setpriority(PRIO_PROCESS, 0, 0);                                  exit(1);
                           if (skey_authenticate(me))
                 if (pp && strcmp(p, pp->pw_passwd))                                  errx(1, "Password incorrect.");
                         errx(1, "Password incorrect.");                  } else {
                           p = crypt(pw, salt);
                           if (strcmp(p, pp->pw_passwd))
                                   errx(1, "Password incorrect.");
                   }
         }          }
   
           (void)setpriority(PRIO_PROCESS, 0, -4);
   
         rval = skeylookup(&skey, pp->pw_name);          rval = skeylookup(&skey, pp->pw_name);
         switch (rval) {          switch (rval) {
                 case -1:                  case -1:
Line 177 
Line 179 
                 for (i = 0;; i++) {                  for (i = 0;; i++) {
                         if (i >= 2)                          if (i >= 2)
                                 exit(1);                                  exit(1);
   
                         (void)printf("Enter sequence count from 1 to %d: ",                          (void)printf("Enter sequence count from 1 to %d: ",
                                      SKEY_MAXSEQ);                                       SKEY_MAXSEQ);
                         (void)fgets(tmp, sizeof(tmp), stdin);                          (void)fgets(tmp, sizeof(tmp), stdin);
                         n = atoi(tmp);                          n = atoi(tmp);
                         if (n > 0 && n < SKEY_MAXSEQ)                          if (n > 0 && n < SKEY_MAXSEQ)
                                 break;  /* Valid range */                                  break;  /* Valid range */
                         (void)printf("\n Error: Count must be > 0 and < %d\n",                          (void)printf("Error: Count must be > 0 and < %d\n",
                                      SKEY_MAXSEQ);                                       SKEY_MAXSEQ);
                 }                  }
   
                 (void)printf("Enter new key [default %s]: ", defaultseed);                  for (i = 0;; i++) {
                 (void)fflush(stdout);                          if (i >= 2)
                 (void)fgets(seed, sizeof(seed), stdin);                                  exit(1);
                 rip(seed);  
                           (void)printf("Enter new key [default %s]: ",
                                        defaultseed);
                           (void)fgets(seed, sizeof(seed), stdin);
                           rip(seed);
                           for (p = seed; *p; p++) {
                                   if (isalpha(*p)) {
                                           if (isupper(*p))
                                                   *p = tolower(*p);
                                   } else if (!isdigit(*p)) {
                                           (void)puts("Error: seed may only contain alpha numeric characters");
                                           break;
                                   }
                           }
                           if (*p == '\0')
                                   break;  /* Valid seed */
                   }
                 if (strlen(seed) > 16) {                  if (strlen(seed) > 16) {
                         (void)puts("Notice: Seed truncated to 16 characters.");                          (void)puts("Notice: Seed truncated to 16 characters.");
                         seed[16] = '\0';                          seed[16] = '\0';
Line 202 
Line 221 
                         if (i >= 2)                          if (i >= 2)
                                 exit(1);                                  exit(1);
   
                         (void)printf("skey %d %s\nskey access password: ",                          (void)printf("otp-%s %d %s\nS/Key access password: ",
                             n, seed);                                       skey_get_algorithm(), n, seed);
                         (void)fgets(tmp, sizeof(tmp), stdin);                          (void)fgets(tmp, sizeof(tmp), stdin);
                         rip(tmp);                          rip(tmp);
                         backspace(tmp);                          backspace(tmp);
Line 268 
Line 287 
         (void)fprintf(skey.keyfile, "%s %s %04d %-16s %s %-21s\n",          (void)fprintf(skey.keyfile, "%s %s %04d %-16s %s %-21s\n",
             pp->pw_name, skey_get_algorithm(), n, seed, skey.val, tbuf);              pp->pw_name, skey_get_algorithm(), n, seed, skey.val, tbuf);
         (void)fclose(skey.keyfile);          (void)fclose(skey.keyfile);
         (void)printf("\nID %s skey is %d %s\n", pp->pw_name, n, seed);  
         (void)printf("Next login password: %s\n", hexmode ? put8(buf, key) : btoe(buf, key));  
   
           (void)setpriority(PRIO_PROCESS, 0, 0);
   
           (void)printf("\nID %s skey is %d %s\n", pp->pw_name, n, seed);
           (void)printf("Next login password: %s\n\n",
                        hexmode ? put8(buf, key) : btoe(buf, key));
         exit(0);          exit(0);
 }  }
   

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.10