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

Diff for /src/usr.bin/ssh/ssh-keygen.c between version 1.82.2.4 and 1.95

version 1.82.2.4, 2002/06/22 07:23:18 version 1.95, 2002/03/21 16:54:53
Line 136 
Line 136 
 }  }
   
 #define SSH_COM_PUBLIC_BEGIN            "---- BEGIN SSH2 PUBLIC KEY ----"  #define SSH_COM_PUBLIC_BEGIN            "---- BEGIN SSH2 PUBLIC KEY ----"
 #define SSH_COM_PUBLIC_END              "---- END SSH2 PUBLIC KEY ----"  #define SSH_COM_PUBLIC_END              "---- END SSH2 PUBLIC KEY ----"
 #define SSH_COM_PRIVATE_BEGIN           "---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----"  #define SSH_COM_PRIVATE_BEGIN           "---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----"
 #define SSH_COM_PRIVATE_KEY_MAGIC       0x3f6ff9eb  #define SSH_COM_PRIVATE_KEY_MAGIC       0x3f6ff9eb
   
Line 286 
Line 286 
 {  {
         Key *k;          Key *k;
         int blen;          int blen;
         u_int len;  
         char line[1024], *p;          char line[1024], *p;
         u_char blob[8096];          u_char blob[8096];
         char encoded[8096];          char encoded[8096];
Line 331 
Line 330 
                 *p = '\0';                  *p = '\0';
                 strlcat(encoded, line, sizeof(encoded));                  strlcat(encoded, line, sizeof(encoded));
         }          }
         len = strlen(encoded);  
         if (((len % 4) == 3) &&  
             (encoded[len-1] == '=') &&  
             (encoded[len-2] == '=') &&  
             (encoded[len-3] == '='))  
                 encoded[len-3] = '\0';  
         blen = uudecode(encoded, blob, sizeof(blob));          blen = uudecode(encoded, blob, sizeof(blob));
         if (blen < 0) {          if (blen < 0) {
                 fprintf(stderr, "uudecode failed.\n");                  fprintf(stderr, "uudecode failed.\n");
Line 412 
Line 405 
         key_free(prv);          key_free(prv);
         if (ret < 0)          if (ret < 0)
                 exit(1);                  exit(1);
         log("loading key done");          log("loading key done");
         exit(0);          exit(0);
 }  }
   
 static void  static void
 do_download(struct passwd *pw, const char *sc_reader_id)  do_download(struct passwd *pw, const char *sc_reader_id)
 {  {
         Key **keys = NULL;          Key *pub = NULL;
         int i;  
   
         keys = sc_get_keys(sc_reader_id, NULL);          pub = sc_get_key(sc_reader_id);
         if (keys == NULL)          if (pub == NULL)
                 fatal("cannot read public key from smartcard");                  fatal("cannot read public key from smartcard");
         for (i = 0; keys[i]; i++) {          key_write(pub, stdout);
                 key_write(keys[i], stdout);          key_free(pub);
                 key_free(keys[i]);          fprintf(stdout, "\n");
                 fprintf(stdout, "\n");  
         }  
         xfree(keys);  
         exit(0);          exit(0);
 }  }
 #endif /* SMARTCARD */  #endif /* SMARTCARD */

Legend:
Removed from v.1.82.2.4  
changed lines
  Added in v.1.95