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

Diff for /src/usr.bin/skey/skey.c between version 1.4 and 1.5

version 1.4, 1996/09/29 04:33:58 version 1.5, 1996/09/29 21:28:38
Line 38 
Line 38 
         int     n, i, cnt = 1, pass = 0, hexmode = 0;          int     n, i, cnt = 1, pass = 0, hexmode = 0;
         char    passwd[256], key[8], buf[33], *seed, *slash;          char    passwd[256], key[8], buf[33], *seed, *slash;
   
         while ((i = getopt(argc, argv, "n:p:x45")) != EOF) {          /* If we were called as otp-METHOD, set algorithm based on that */
                 switch (i) {          if (strncmp(argv[0], "otp-", 4) == 0) {
                 case 'n':                  if (skey_set_algorithm(&argv[0][4]) == NULL)
                         cnt = atoi(optarg);                          errx(1, "Unknown hash algorithm %s", &argv[0][4]);
                         break;  
                 case 'p':  
                         strcpy(passwd, optarg);  
                         pass = 1;  
                         break;  
                 case 'x':  
                         hexmode = 1;  
                         break;  
                 case '4':  
                         skey_set_MDX(4);  
                         break;  
                 case '5':  
                         skey_set_MDX(5);  
                         break;  
                 }  
         }          }
   
         /* check for md4/md5 argument */          for (i = 1; i < argc && argv[i][0] == '-' && strcmp(argv[i], "--");) {
         if (argv[optind]) {                  if (argv[i][2] == '\0') {
                 if (strcmp(argv[optind], "MD4") == 0) {                          /* Single character switch */
                         skey_set_MDX(4);                          switch (argv[i][1]) {
                         optind++;                          case 'n':
                 } else if (strcmp(argv[optind], "MD5") == 0) {                                  if (i + 1 == argc)
                         skey_set_MDX(5);                                          usage(argv[0]);
                         optind++;                                  cnt = atoi(argv[++i]);
                                   break;
                           case 'p':
                                   if (i + 1 == argc)
                                           usage(argv[0]);
                                   (void)strcpy(passwd, argv[++i]);
                                   pass = 1;
                                   break;
                           case 'x':
                                   hexmode = 1;
                                   break;
                           default:
                                   usage(argv[0]);
                           }
                   } else {
                           /* Multi character switches are hash types */
                           if (skey_set_algorithm(&argv[i][1]) == NULL) {
                                   warnx("Unknown hash algorithm %s", &argv[i][1]);
                                   usage(argv[0]);
                           }
                 }                  }
                   i++;
         }          }
   
         /* could be in the form <number>/<seed> */          /* Could be in the form <number>/<seed> */
         if (argc <= optind + 1) {          if (argc <= i + 1) {
                 /* look for / in it */                  /* look for / in it */
                 if (argc <= optind)                  if (argc <= i)
                         usage(argv[0]);                          usage(argv[0]);
                 slash = strchr(argv[optind], '/');                  slash = strchr(argv[i], '/');
                 if (slash == NULL)                  if (slash == NULL)
                         usage(argv[0]);                          usage(argv[0]);
                 *slash++ = '\0';                  *slash++ = '\0';
                 seed = slash;                  seed = slash;
   
                 if ((n = atoi(argv[optind])) < 0) {                  if ((n = atoi(argv[i])) < 0) {
                         warnx("%s not positive", argv[optind]);                          warnx("%s not positive", argv[i]);
                         usage(argv[0]);                          usage(argv[0]);
                 }                  }
         } else {          } else {
                 if ((n = atoi(argv[optind])) < 0) {                  if ((n = atoi(argv[i])) < 0) {
                         warnx("%s not positive", argv[optind]);                          warnx("%s not positive", argv[i]);
                         usage(argv[0]);                          usage(argv[0]);
                 }                  }
                 seed = argv[++optind];                  seed = argv[++i];
         }          }
   
         /* Get user's secret password */          /* Get user's secret password */
Line 128 
Line 133 
 usage(s)  usage(s)
         char   *s;          char   *s;
 {  {
         (void)fprintf(stderr, "Usage: %s [-x] [-4|-5] [-n count] [-p password] [MD4|MD5] sequence# [/] key", s);          (void)fprintf(stderr, "Usage: %s [-x] [-md4|-md5|-sha1] [-n count] [-p password] <sequence#>[/] key\n", s);
         exit(1);          exit(1);
 }  }

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5