[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.72 and 1.73

version 1.72, 2018/10/11 00:52:46 version 1.73, 2019/01/21 09:54:11
Line 2010 
Line 2010 
                         ret = SSH_ERR_ALLOC_FAIL;                          ret = SSH_ERR_ALLOC_FAIL;
                         goto out;                          goto out;
                 }                  }
                 if ((rsa_e = BN_new()) == NULL ||                  if (sshbuf_get_bignum2(b, &rsa_e) != 0 ||
                     (rsa_n = BN_new()) == NULL) {                      sshbuf_get_bignum2(b, &rsa_n) != 0) {
                         ret = SSH_ERR_ALLOC_FAIL;  
                         goto out;  
                 }  
                 if (sshbuf_get_bignum2(b, rsa_e) != 0 ||  
                     sshbuf_get_bignum2(b, rsa_n) != 0) {  
                         ret = SSH_ERR_INVALID_FORMAT;                          ret = SSH_ERR_INVALID_FORMAT;
                         goto out;                          goto out;
                 }                  }
Line 2043 
Line 2038 
                         ret = SSH_ERR_ALLOC_FAIL;                          ret = SSH_ERR_ALLOC_FAIL;
                         goto out;                          goto out;
                 }                  }
                 if ((dsa_p = BN_new()) == NULL ||                  if (sshbuf_get_bignum2(b, &dsa_p) != 0 ||
                     (dsa_q = BN_new()) == NULL ||                      sshbuf_get_bignum2(b, &dsa_q) != 0 ||
                     (dsa_g = BN_new()) == NULL ||                      sshbuf_get_bignum2(b, &dsa_g) != 0 ||
                     (dsa_pub_key = BN_new()) == NULL) {                      sshbuf_get_bignum2(b, &dsa_pub_key) != 0) {
                         ret = SSH_ERR_ALLOC_FAIL;  
                         goto out;  
                 }  
                 if (sshbuf_get_bignum2(b, dsa_p) != 0 ||  
                     sshbuf_get_bignum2(b, dsa_q) != 0 ||  
                     sshbuf_get_bignum2(b, dsa_g) != 0 ||  
                     sshbuf_get_bignum2(b, dsa_pub_key) != 0) {  
                         ret = SSH_ERR_INVALID_FORMAT;                          ret = SSH_ERR_INVALID_FORMAT;
                         goto out;                          goto out;
                 }                  }
Line 2883 
Line 2871 
                         r = SSH_ERR_ALLOC_FAIL;                          r = SSH_ERR_ALLOC_FAIL;
                         goto out;                          goto out;
                 }                  }
                 if ((dsa_p = BN_new()) == NULL ||                  if ((r = sshbuf_get_bignum2(buf, &dsa_p)) != 0 ||
                     (dsa_q = BN_new()) == NULL ||                      (r = sshbuf_get_bignum2(buf, &dsa_q)) != 0 ||
                     (dsa_g = BN_new()) == NULL ||                      (r = sshbuf_get_bignum2(buf, &dsa_g)) != 0 ||
                     (dsa_pub_key = BN_new()) == NULL ||                      (r = sshbuf_get_bignum2(buf, &dsa_pub_key)) != 0 ||
                     (dsa_priv_key = BN_new()) == NULL) {                      (r = sshbuf_get_bignum2(buf, &dsa_priv_key)) != 0)
                         r = SSH_ERR_ALLOC_FAIL;  
                         goto out;                          goto out;
                 }  
                 if ((r = sshbuf_get_bignum2(buf, dsa_p)) != 0 ||  
                     (r = sshbuf_get_bignum2(buf, dsa_q)) != 0 ||  
                     (r = sshbuf_get_bignum2(buf, dsa_g)) != 0 ||  
                     (r = sshbuf_get_bignum2(buf, dsa_pub_key)) != 0 ||  
                     (r = sshbuf_get_bignum2(buf, dsa_priv_key)) != 0)  
                         goto out;  
                 if (!DSA_set0_pqg(k->dsa, dsa_p, dsa_q, dsa_g)) {                  if (!DSA_set0_pqg(k->dsa, dsa_p, dsa_q, dsa_g)) {
                         r = SSH_ERR_LIBCRYPTO_ERROR;                          r = SSH_ERR_LIBCRYPTO_ERROR;
                         goto out;                          goto out;
Line 2909 
Line 2889 
                 dsa_pub_key = dsa_priv_key = NULL; /* transferred */                  dsa_pub_key = dsa_priv_key = NULL; /* transferred */
                 break;                  break;
         case KEY_DSA_CERT:          case KEY_DSA_CERT:
                 if ((dsa_priv_key = BN_new()) == NULL) {  
                         r = SSH_ERR_ALLOC_FAIL;  
                         goto out;  
                 }  
                 if ((r = sshkey_froms(buf, &k)) != 0 ||                  if ((r = sshkey_froms(buf, &k)) != 0 ||
                     (r = sshbuf_get_bignum2(buf, dsa_priv_key)) != 0)                      (r = sshbuf_get_bignum2(buf, &dsa_priv_key)) != 0)
                         goto out;                          goto out;
                 if (!DSA_set0_key(k->dsa, NULL, dsa_priv_key)) {                  if (!DSA_set0_key(k->dsa, NULL, dsa_priv_key)) {
                         r = SSH_ERR_LIBCRYPTO_ERROR;                          r = SSH_ERR_LIBCRYPTO_ERROR;
Line 2938 
Line 2914 
                         goto out;                          goto out;
                 }                  }
                 k->ecdsa = EC_KEY_new_by_curve_name(k->ecdsa_nid);                  k->ecdsa = EC_KEY_new_by_curve_name(k->ecdsa_nid);
                 if (k->ecdsa  == NULL || (exponent = BN_new()) == NULL) {                  if (k->ecdsa  == NULL) {
                         r = SSH_ERR_LIBCRYPTO_ERROR;                          r = SSH_ERR_LIBCRYPTO_ERROR;
                         goto out;                          goto out;
                 }                  }
                 if ((r = sshbuf_get_eckey(buf, k->ecdsa)) != 0 ||                  if ((r = sshbuf_get_eckey(buf, k->ecdsa)) != 0 ||
                     (r = sshbuf_get_bignum2(buf, exponent)))                      (r = sshbuf_get_bignum2(buf, &exponent)))
                         goto out;                          goto out;
                 if (EC_KEY_set_private_key(k->ecdsa, exponent) != 1) {                  if (EC_KEY_set_private_key(k->ecdsa, exponent) != 1) {
                         r = SSH_ERR_LIBCRYPTO_ERROR;                          r = SSH_ERR_LIBCRYPTO_ERROR;
Line 2955 
Line 2931 
                         goto out;                          goto out;
                 break;                  break;
         case KEY_ECDSA_CERT:          case KEY_ECDSA_CERT:
                 if ((exponent = BN_new()) == NULL) {  
                         r = SSH_ERR_LIBCRYPTO_ERROR;  
                         goto out;  
                 }  
                 if ((r = sshkey_froms(buf, &k)) != 0 ||                  if ((r = sshkey_froms(buf, &k)) != 0 ||
                     (r = sshbuf_get_bignum2(buf, exponent)) != 0)                      (r = sshbuf_get_bignum2(buf, &exponent)) != 0)
                         goto out;                          goto out;
                 if (EC_KEY_set_private_key(k->ecdsa, exponent) != 1) {                  if (EC_KEY_set_private_key(k->ecdsa, exponent) != 1) {
                         r = SSH_ERR_LIBCRYPTO_ERROR;                          r = SSH_ERR_LIBCRYPTO_ERROR;
Line 2976 
Line 2948 
                         r = SSH_ERR_ALLOC_FAIL;                          r = SSH_ERR_ALLOC_FAIL;
                         goto out;                          goto out;
                 }                  }
                 if ((rsa_n = BN_new()) == NULL ||                  if ((r = sshbuf_get_bignum2(buf, &rsa_n)) != 0 ||
                     (rsa_e = BN_new()) == NULL ||                      (r = sshbuf_get_bignum2(buf, &rsa_e)) != 0 ||
                     (rsa_d = BN_new()) == NULL ||                      (r = sshbuf_get_bignum2(buf, &rsa_d)) != 0 ||
                     (rsa_iqmp = BN_new()) == NULL ||                      (r = sshbuf_get_bignum2(buf, &rsa_iqmp)) != 0 ||
                     (rsa_p = BN_new()) == NULL ||                      (r = sshbuf_get_bignum2(buf, &rsa_p)) != 0 ||
                     (rsa_q = BN_new()) == NULL) {                      (r = sshbuf_get_bignum2(buf, &rsa_q)) != 0)
                         r = SSH_ERR_ALLOC_FAIL;  
                         goto out;                          goto out;
                 }  
                 if ((r = sshbuf_get_bignum2(buf, rsa_n)) != 0 ||  
                     (r = sshbuf_get_bignum2(buf, rsa_e)) != 0 ||  
                     (r = sshbuf_get_bignum2(buf, rsa_d)) != 0 ||  
                     (r = sshbuf_get_bignum2(buf, rsa_iqmp)) != 0 ||  
                     (r = sshbuf_get_bignum2(buf, rsa_p)) != 0 ||  
                     (r = sshbuf_get_bignum2(buf, rsa_q)) != 0)  
                         goto out;  
                 if (!RSA_set0_key(k->rsa, rsa_n, rsa_e, rsa_d)) {                  if (!RSA_set0_key(k->rsa, rsa_n, rsa_e, rsa_d)) {
                         r = SSH_ERR_LIBCRYPTO_ERROR;                          r = SSH_ERR_LIBCRYPTO_ERROR;
                         goto out;                          goto out;
Line 3008 
Line 2971 
                         goto out;                          goto out;
                 break;                  break;
         case KEY_RSA_CERT:          case KEY_RSA_CERT:
                 if ((rsa_d = BN_new()) == NULL ||  
                     (rsa_iqmp = BN_new()) == NULL ||  
                     (rsa_p = BN_new()) == NULL ||  
                     (rsa_q = BN_new()) == NULL) {  
                         r = SSH_ERR_ALLOC_FAIL;  
                         goto out;  
                 }  
                 if ((r = sshkey_froms(buf, &k)) != 0 ||                  if ((r = sshkey_froms(buf, &k)) != 0 ||
                     (r = sshbuf_get_bignum2(buf, rsa_d)) != 0 ||                      (r = sshbuf_get_bignum2(buf, &rsa_d)) != 0 ||
                     (r = sshbuf_get_bignum2(buf, rsa_iqmp)) != 0 ||                      (r = sshbuf_get_bignum2(buf, &rsa_iqmp)) != 0 ||
                     (r = sshbuf_get_bignum2(buf, rsa_p)) != 0 ||                      (r = sshbuf_get_bignum2(buf, &rsa_p)) != 0 ||
                     (r = sshbuf_get_bignum2(buf, rsa_q)) != 0)                      (r = sshbuf_get_bignum2(buf, &rsa_q)) != 0)
                         goto out;                          goto out;
                 if (!RSA_set0_key(k->rsa, NULL, NULL, rsa_d)) {                  if (!RSA_set0_key(k->rsa, NULL, NULL, rsa_d)) {
                         r = SSH_ERR_LIBCRYPTO_ERROR;                          r = SSH_ERR_LIBCRYPTO_ERROR;

Legend:
Removed from v.1.72  
changed lines
  Added in v.1.73