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

Diff for /src/usr.bin/ssh/sshkey.c between version 1.7 and 1.8

version 1.7, 2014/12/21 22:27:55 version 1.8, 2015/01/08 10:14:08
Line 3663 
Line 3663 
 #endif /* WITH_SSH1 */  #endif /* WITH_SSH1 */
   
 #ifdef WITH_OPENSSL  #ifdef WITH_OPENSSL
 /* XXX make private once ssh-keysign.c fixed */  static int
 int  
 sshkey_parse_private_pem_fileblob(struct sshbuf *blob, int type,  sshkey_parse_private_pem_fileblob(struct sshbuf *blob, int type,
     const char *passphrase, struct sshkey **keyp, char **commentp)      const char *passphrase, struct sshkey **keyp)
 {  {
         EVP_PKEY *pk = NULL;          EVP_PKEY *pk = NULL;
         struct sshkey *prv = NULL;          struct sshkey *prv = NULL;
         char *name = "<no key>";  
         BIO *bio = NULL;          BIO *bio = NULL;
         int r;          int r;
   
         *keyp = NULL;          *keyp = NULL;
         if (commentp != NULL)  
                 *commentp = NULL;  
   
         if ((bio = BIO_new(BIO_s_mem())) == NULL || sshbuf_len(blob) > INT_MAX)          if ((bio = BIO_new(BIO_s_mem())) == NULL || sshbuf_len(blob) > INT_MAX)
                 return SSH_ERR_ALLOC_FAIL;                  return SSH_ERR_ALLOC_FAIL;
Line 3699 
Line 3695 
                 }                  }
                 prv->rsa = EVP_PKEY_get1_RSA(pk);                  prv->rsa = EVP_PKEY_get1_RSA(pk);
                 prv->type = KEY_RSA;                  prv->type = KEY_RSA;
                 name = "rsa w/o comment";  
 #ifdef DEBUG_PK  #ifdef DEBUG_PK
                 RSA_print_fp(stderr, prv->rsa, 8);                  RSA_print_fp(stderr, prv->rsa, 8);
 #endif  #endif
Line 3715 
Line 3710 
                 }                  }
                 prv->dsa = EVP_PKEY_get1_DSA(pk);                  prv->dsa = EVP_PKEY_get1_DSA(pk);
                 prv->type = KEY_DSA;                  prv->type = KEY_DSA;
                 name = "dsa w/o comment";  
 #ifdef DEBUG_PK  #ifdef DEBUG_PK
                 DSA_print_fp(stderr, prv->dsa, 8);                  DSA_print_fp(stderr, prv->dsa, 8);
 #endif  #endif
Line 3736 
Line 3730 
                         r = SSH_ERR_INVALID_FORMAT;                          r = SSH_ERR_INVALID_FORMAT;
                         goto out;                          goto out;
                 }                  }
                 name = "ecdsa w/o comment";  
 #ifdef DEBUG_PK  #ifdef DEBUG_PK
                 if (prv != NULL && prv->ecdsa != NULL)                  if (prv != NULL && prv->ecdsa != NULL)
                         sshkey_dump_ec_key(prv->ecdsa);                          sshkey_dump_ec_key(prv->ecdsa);
Line 3745 
Line 3738 
                 r = SSH_ERR_INVALID_FORMAT;                  r = SSH_ERR_INVALID_FORMAT;
                 goto out;                  goto out;
         }          }
         if (commentp != NULL &&  
             (*commentp = strdup(name)) == NULL) {  
                 r = SSH_ERR_ALLOC_FAIL;  
                 goto out;  
         }  
         r = 0;          r = 0;
         *keyp = prv;          *keyp = prv;
         prv = NULL;          prv = NULL;
Line 3781 
Line 3769 
         case KEY_DSA:          case KEY_DSA:
         case KEY_ECDSA:          case KEY_ECDSA:
         case KEY_RSA:          case KEY_RSA:
                 return sshkey_parse_private_pem_fileblob(blob, type, passphrase,                  return sshkey_parse_private_pem_fileblob(blob, type,
                     keyp, commentp);                      passphrase, keyp);
 #endif /* WITH_OPENSSL */  #endif /* WITH_OPENSSL */
         case KEY_ED25519:          case KEY_ED25519:
                 return sshkey_parse_private2(blob, type, passphrase,                  return sshkey_parse_private2(blob, type, passphrase,
Line 3792 
Line 3780 
                     commentp)) == 0)                      commentp)) == 0)
                         return 0;                          return 0;
 #ifdef WITH_OPENSSL  #ifdef WITH_OPENSSL
                 return sshkey_parse_private_pem_fileblob(blob, type, passphrase,                  return sshkey_parse_private_pem_fileblob(blob, type,
                     keyp, commentp);                      passphrase, keyp);
 #else  #else
                 return SSH_ERR_INVALID_FORMAT;                  return SSH_ERR_INVALID_FORMAT;
 #endif /* WITH_OPENSSL */  #endif /* WITH_OPENSSL */

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8