[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.35 and 1.36

version 1.35, 2002/05/17 15:54:13 version 1.36, 2002/05/19 02:09:28
Line 38 
Line 38 
 #define SKEY_NAMELEN    4  #define SKEY_NAMELEN    4
 #endif  #endif
   
 void    usage(char *);  void    usage(void);
 void    secure_mode(int *, char *, char *, char *, char *, size_t);  void    secure_mode(int *, char *, char *, char *, char *, size_t);
 void    normal_mode(char *, int, char *, char *, char *);  void    normal_mode(char *, int, char *, char *, char *);
 void    timedout(int);  void    timedout(int);
Line 46 
Line 46 
 void    enable_db(int);  void    enable_db(int);
   
 int  int
 main(argc, argv)  main(int argc, char **argv)
         int     argc;  
         char   *argv[];  
 {  {
         int     rval, i, l, n, defaultsetup, rmkey, hexmode, enable, convert;          int     rval, i, l, n, defaultsetup, rmkey, hexmode, enable, convert;
         char    hostname[MAXHOSTNAMELEN];          char    hostname[MAXHOSTNAMELEN];
Line 88 
Line 86 
                         switch (argv[i][1]) {                          switch (argv[i][1]) {
                         case 'a':                          case 'a':
                                 if (argv[++i] == NULL || argv[i][0] == '\0')                                  if (argv[++i] == NULL || argv[i][0] == '\0')
                                         usage(argv[0]);                                          usage();
                                 auth_type = argv[i];                                  auth_type = argv[i];
                                 break;                                  break;
                         case 's':                          case 's':
Line 103 
Line 101 
                                 break;                                  break;
                         case 'n':                          case 'n':
                                 if (argv[++i] == NULL || argv[i][0] == '\0')                                  if (argv[++i] == NULL || argv[i][0] == '\0')
                                         usage(argv[0]);                                          usage();
                                 if ((n = atoi(argv[i])) < 1 || n >= SKEY_MAX_SEQ)                                  if ((n = atoi(argv[i])) < 1 || n >= SKEY_MAX_SEQ)
                                         errx(1, "count must be > 0 and < %d",                                          errx(1, "count must be > 0 and < %d",
                                              SKEY_MAX_SEQ);                                               SKEY_MAX_SEQ);
Line 118 
Line 116 
                                 enable = 1;                                  enable = 1;
                                 break;                                  break;
                         default:                          default:
                                 usage(argv[0]);                                  usage();
                         }                          }
                 } else {                  } else {
                         /* Multi character switches are hash types */                          /* Multi character switches are hash types */
                         if ((ht = skey_set_algorithm(&argv[i][1])) == NULL) {                          if ((ht = skey_set_algorithm(&argv[i][1])) == NULL) {
                                 warnx("Unknown hash algorithm %s", &argv[i][1]);                                  warnx("Unknown hash algorithm %s", &argv[i][1]);
                                 usage(argv[0]);                                  usage();
                         }                          }
                 }                  }
                 i++;                  i++;
Line 134 
Line 132 
   
         if (argc > 1 || (enable && convert) || (enable && argc) ||          if (argc > 1 || (enable && convert) || (enable && argc) ||
             (convert && argc))              (convert && argc))
                 usage(argv[0]);                  usage();
   
         /* Handle -C, -D, and -E */          /* Handle -C, -D, and -E */
         if (convert || enable) {          if (convert || enable) {
Line 147 
Line 145 
   
         /* Check for optional user string. */          /* Check for optional user string. */
         if (argc == 1) {          if (argc == 1) {
                 if ((pp = getpwnam(argv[i])) == NULL) {                  if ((pp = getpwnam(argv[0])) == NULL) {
                         if (getuid() == 0) {                          if (getuid() == 0) {
                                 static struct passwd _pp;                                  static struct passwd _pp;
   
                                 _pp.pw_name = argv[i];                                  _pp.pw_name = argv[0];
                                 pp = &_pp;                                  pp = &_pp;
                                 warnx("Warning, user unknown: %s", argv[i]);                                  warnx("Warning, user unknown: %s", argv[0]);
                         } else {                          } else {
                                 errx(1, "User unknown: %s", argv[i]);                                  errx(1, "User unknown: %s", argv[0]);
                         }                          }
                 } else if (strcmp(pp->pw_name, me) != 0 && getuid() != 0) {                  } else if (strcmp(pp->pw_name, me) != 0 && getuid() != 0) {
                         /* Only root can change other's S/Keys. */                          /* Only root can change other's S/Keys. */
Line 249 
Line 247 
                                 errno = ENAMETOOLONG;                                  errno = ENAMETOOLONG;
                                 err(1, "Cannot create S/Key entry");                                  err(1, "Cannot create S/Key entry");
                         }                          }
                         if ((l = open(filename, O_RDWR | O_CREAT | O_EXCL,                          if ((l = open(filename,
                               O_RDWR | O_NONBLOCK | O_CREAT | O_TRUNC |O_NOFOLLOW,
                             S_IRUSR | S_IWUSR)) == -1 ||                              S_IRUSR | S_IWUSR)) == -1 ||
                             flock(l, LOCK_EX) != 0 ||                              flock(l, LOCK_EX) != 0 ||
                             (skey.keyfile = fdopen(l, "r+")) == NULL)                              (skey.keyfile = fdopen(l, "r+")) == NULL)
Line 291 
Line 290 
 }  }
   
 void  void
 secure_mode(count, key, seed, defaultseed, buf, bufsiz)  secure_mode(int *count, char *key, char *seed, char *defaultseed, char *buf,
         int *count;      size_t bufsiz)
         char *key;  
         char *seed;  
         char *defaultseed;  
         char *buf;  
         size_t bufsiz;  
 {  {
         int i, n;          int i, n;
         char *p;          char *p;
Line 378 
Line 372 
 }  }
   
 void  void
 normal_mode(username, n, key, seed, defaultseed)  normal_mode(char *username, int n, char *key, char *seed, char *defaultseed)
         char *username;  
         int n;  
         char *key;  
         char *seed;  
         char *defaultseed;  
 {  {
         int i, nn;          int i, nn;
         char passwd[SKEY_MAX_PW_LEN+2], passwd2[SKEY_MAX_PW_LEN+2];          char passwd[SKEY_MAX_PW_LEN+2], passwd2[SKEY_MAX_PW_LEN+2];
Line 436 
Line 425 
 }  }
   
 void  void
 enable_db(op)  enable_db(int op)
         int op;  
 {  {
         if (op == 1) {          if (op == 1) {
                 /* enable */                  /* enable */
Line 525 
Line 513 
   
 #define TIMEOUT_MSG     "Timed out waiting for input.\n"  #define TIMEOUT_MSG     "Timed out waiting for input.\n"
 void  void
 timedout(signo)  timedout(int signo)
         int signo;  
 {  {
   
         write(STDERR_FILENO, TIMEOUT_MSG, sizeof(TIMEOUT_MSG) - 1);          write(STDERR_FILENO, TIMEOUT_MSG, sizeof(TIMEOUT_MSG) - 1);
Line 534 
Line 521 
 }  }
   
 void  void
 usage(s)  usage(void)
         char *s;  
 {  {
         (void)fprintf(stderr, "usage: %s [-s] [-x] [-z] [-C] [-D] [-E] "          extern char *__progname;
   
           (void)fprintf(stderr, "usage: %s [-r] [-s] [-x] [-C] [-D] [-E] "
             "[-a auth_type] [-n count]\n                "              "[-a auth_type] [-n count]\n                "
             "[-md4|-md5|-sha1|-rmd160] [user]\n", s);              "[-md4|-md5|-sha1|-rmd160] [user]\n", __progname);
         exit(1);          exit(1);
 }  }

Legend:
Removed from v.1.35  
changed lines
  Added in v.1.36