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

Diff for /src/usr.bin/ssh/authfile.c between version 1.17 and 1.18

version 1.17, 2000/06/20 01:39:38 version 1.18, 2000/09/05 19:18:47
Line 262 
Line 262 
         return 1;          return 1;
 }  }
   
   /* load public key from private-key file */
 int  int
 load_public_key(const char *filename, Key * key, char **comment_return)  load_public_key(const char *filename, Key * key, char **comment_return)
 {  {
Line 490 
Line 491 
         }          }
         close(fd);          close(fd);
         return ret;          return ret;
   }
   
   int
   do_load_public_key(const char *filename, Key *k, char **commentp)
   {
           FILE *f;
           unsigned int bits;
           char line[1024];
           char *cp;
   
           f = fopen(filename, "r");
           if (f != NULL) {
                   while (fgets(line, sizeof(line), f)) {
                           line[sizeof(line)-1] = '\0';
                           cp = line;
                           switch(*cp){
                           case '#':
                           case '\n':
                           case '\0':
                                   continue;
                           }
                           /* Skip leading whitespace. */
                           for (; *cp && (*cp == ' ' || *cp == '\t'); cp++)
                                   ;
                           if (*cp) {
                                   bits = key_read(k, &cp);
                                   if (bits != 0) {
                                           if (commentp)
                                                   *commentp=xstrdup(filename);
                                           fclose(f);
                                           return 1;
                                   }
                           }
                   }
                   fclose(f);
           }
           return 0;
   }
   
   /* load public key from pubkey file */
   int
   try_load_public_key(const char *filename, Key *k, char **commentp)
   {
           char pub[MAXPATHLEN];
   
           if (do_load_public_key(filename, k, commentp) == 1)
                   return 1;
           if (strlcpy(pub, filename, sizeof pub) >= MAXPATHLEN)
                   return 0;
           if (strlcat(pub, ".pub", sizeof pub) >= MAXPATHLEN)
                   return 0;
           if (do_load_public_key(pub, k, commentp) == 1)
                   return 1;
           return 0;
 }  }

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18