[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.61 and 1.64

version 1.61, 2001/05/25 14:37:32 version 1.64, 2001/06/23 17:05:22
Line 75 
Line 75 
   
 char hostname[MAXHOSTNAMELEN];  char hostname[MAXHOSTNAMELEN];
   
 void  static void
 ask_filename(struct passwd *pw, const char *prompt)  ask_filename(struct passwd *pw, const char *prompt)
 {  {
         char buf[1024];          char buf[1024];
Line 108 
Line 108 
         have_identity = 1;          have_identity = 1;
 }  }
   
 Key *  static Key *
 load_identity(char *filename)  load_identity(char *filename)
 {  {
         char *pass;          char *pass;
Line 132 
Line 132 
 #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
   
 void  static void
 do_convert_to_ssh2(struct passwd *pw)  do_convert_to_ssh2(struct passwd *pw)
 {  {
         Key *k;          Key *k;
Line 165 
Line 165 
         exit(0);          exit(0);
 }  }
   
 void  static void
 buffer_get_bignum_bits(Buffer *b, BIGNUM *value)  buffer_get_bignum_bits(Buffer *b, BIGNUM *value)
 {  {
         int bits = buffer_get_int(b);          int bits = buffer_get_int(b);
Line 178 
Line 178 
         buffer_consume(b, bytes);          buffer_consume(b, bytes);
 }  }
   
 Key *  static Key *
 do_convert_private_ssh2_from_blob(char *blob, int blen)  do_convert_private_ssh2_from_blob(char *blob, int blen)
 {  {
         Buffer b;          Buffer b;
         Key *key = NULL;          Key *key = NULL;
         int ignore, magic, rlen, ktype;  
         char *type, *cipher;          char *type, *cipher;
           u_char *sig, data[10] = "abcde12345";
           int magic, rlen, ktype, i1, i2, i3, i4;
           u_int slen;
           u_long e;
   
         buffer_init(&b);          buffer_init(&b);
         buffer_append(&b, blob, blen);          buffer_append(&b, blob, blen);
Line 195 
Line 198 
                 buffer_free(&b);                  buffer_free(&b);
                 return NULL;                  return NULL;
         }          }
         ignore = buffer_get_int(&b);          i1 = buffer_get_int(&b);
         type   = buffer_get_string(&b, NULL);          type   = buffer_get_string(&b, NULL);
         cipher = buffer_get_string(&b, NULL);          cipher = buffer_get_string(&b, NULL);
         ignore = buffer_get_int(&b);          i2 = buffer_get_int(&b);
         ignore = buffer_get_int(&b);          i3 = buffer_get_int(&b);
         ignore = buffer_get_int(&b);          i4 = buffer_get_int(&b);
           debug("ignore (%d %d %d %d)", i1,i2,i3,i4);
         if (strcmp(cipher, "none") != 0) {          if (strcmp(cipher, "none") != 0) {
                 error("unsupported cipher %s", cipher);                  error("unsupported cipher %s", cipher);
                 xfree(cipher);                  xfree(cipher);
Line 231 
Line 234 
                 buffer_get_bignum_bits(&b, key->dsa->priv_key);                  buffer_get_bignum_bits(&b, key->dsa->priv_key);
                 break;                  break;
         case KEY_RSA:          case KEY_RSA:
                 if (!BN_set_word(key->rsa->e, (u_long) buffer_get_char(&b))) {                  e  = buffer_get_char(&b);
                   debug("e %lx", e);
                   if (e < 30) {
                           e <<= 8;
                           e += buffer_get_char(&b);
                           debug("e %lx", e);
                           e <<= 8;
                           e += buffer_get_char(&b);
                           debug("e %lx", e);
                   }
                   if (!BN_set_word(key->rsa->e, e)) {
                         buffer_free(&b);                          buffer_free(&b);
                         key_free(key);                          key_free(key);
                         return NULL;                          return NULL;
Line 249 
Line 262 
                 error("do_convert_private_ssh2_from_blob: "                  error("do_convert_private_ssh2_from_blob: "
                     "remaining bytes in key blob %d", rlen);                      "remaining bytes in key blob %d", rlen);
         buffer_free(&b);          buffer_free(&b);
 #ifdef DEBUG_PK  
         {  
                 u_int slen;  
                 u_char *sig, data[10] = "abcde12345";  
   
                 key_sign(key, &sig, &slen, data, sizeof data);          /* try the key */
                 key_verify(key, sig, slen, data, sizeof data);          key_sign(key, &sig, &slen, data, sizeof(data));
                 xfree(sig);          key_verify(key, sig, slen, data, sizeof(data));
         }          xfree(sig);
 #endif  
         return key;          return key;
 }  }
   
 void  static void
 do_convert_from_ssh2(struct passwd *pw)  do_convert_from_ssh2(struct passwd *pw)
 {  {
         Key *k;          Key *k;
Line 297 
Line 305 
                     strstr(line, ": ") != NULL) {                      strstr(line, ": ") != NULL) {
                         if (strstr(line, SSH_COM_PRIVATE_BEGIN) != NULL)                          if (strstr(line, SSH_COM_PRIVATE_BEGIN) != NULL)
                                 private = 1;                                  private = 1;
                           if (strstr(line, " END ") != NULL) {
                                   break;
                           }
                         /* fprintf(stderr, "ignore: %s", line); */                          /* fprintf(stderr, "ignore: %s", line); */
                         continue;                          continue;
                 }                  }
Line 335 
Line 346 
         exit(0);          exit(0);
 }  }
   
 void  static void
 do_print_public(struct passwd *pw)  do_print_public(struct passwd *pw)
 {  {
         Key *prv;          Key *prv;
Line 359 
Line 370 
         exit(0);          exit(0);
 }  }
   
 void  static void
 do_fingerprint(struct passwd *pw)  do_fingerprint(struct passwd *pw)
 {  {
         FILE *f;          FILE *f;
Line 456 
Line 467 
  * Perform changing a passphrase.  The argument is the passwd structure   * Perform changing a passphrase.  The argument is the passwd structure
  * for the current user.   * for the current user.
  */   */
 void  static void
 do_change_passphrase(struct passwd *pw)  do_change_passphrase(struct passwd *pw)
 {  {
         char *comment;          char *comment;
Line 532 
Line 543 
 /*  /*
  * Change the comment of a private key file.   * Change the comment of a private key file.
  */   */
 void  static void
 do_change_comment(struct passwd *pw)  do_change_comment(struct passwd *pw)
 {  {
         char new_comment[1024], *comment, *passphrase;          char new_comment[1024], *comment, *passphrase;
Line 625 
Line 636 
         exit(0);          exit(0);
 }  }
   
 void  static void
 usage(void)  usage(void)
 {  {
         printf("Usage: %s [-ceilpqyB] [-t type] [-b bits] [-f file] [-C comment] "          printf("Usage: %s [-ceilpqyB] [-t type] [-b bits] [-f file] [-C comment] "

Legend:
Removed from v.1.61  
changed lines
  Added in v.1.64