|
Lines 485-490
do_convert_private_ssh2(struct sshbuf *b)
Link Here
|
| 485 |
BIGNUM *dsa_pub_key = NULL, *dsa_priv_key = NULL; |
485 |
BIGNUM *dsa_pub_key = NULL, *dsa_priv_key = NULL; |
| 486 |
BIGNUM *rsa_n = NULL, *rsa_e = NULL, *rsa_d = NULL; |
486 |
BIGNUM *rsa_n = NULL, *rsa_e = NULL, *rsa_d = NULL; |
| 487 |
BIGNUM *rsa_p = NULL, *rsa_q = NULL, *rsa_iqmp = NULL; |
487 |
BIGNUM *rsa_p = NULL, *rsa_q = NULL, *rsa_iqmp = NULL; |
|
|
488 |
char rsa_safe_alg[] = "rsa-sha2-256"; |
| 489 |
char *alg = NULL; |
| 488 |
|
490 |
|
| 489 |
if ((r = sshbuf_get_u32(b, &magic)) != 0) |
491 |
if ((r = sshbuf_get_u32(b, &magic)) != 0) |
| 490 |
fatal_fr(r, "parse magic"); |
492 |
fatal_fr(r, "parse magic"); |
|
Lines 584-589
do_convert_private_ssh2(struct sshbuf *b)
Link Here
|
| 584 |
if ((r = ssh_rsa_complete_crt_parameters(key, rsa_iqmp)) != 0) |
586 |
if ((r = ssh_rsa_complete_crt_parameters(key, rsa_iqmp)) != 0) |
| 585 |
fatal_fr(r, "generate RSA parameters"); |
587 |
fatal_fr(r, "generate RSA parameters"); |
| 586 |
BN_clear_free(rsa_iqmp); |
588 |
BN_clear_free(rsa_iqmp); |
|
|
589 |
alg = rsa_safe_alg; |
| 587 |
break; |
590 |
break; |
| 588 |
} |
591 |
} |
| 589 |
rlen = sshbuf_len(b); |
592 |
rlen = sshbuf_len(b); |
|
Lines 592-601
do_convert_private_ssh2(struct sshbuf *b)
Link Here
|
| 592 |
|
595 |
|
| 593 |
/* try the key */ |
596 |
/* try the key */ |
| 594 |
if ((r = sshkey_sign(key, &sig, &slen, data, sizeof(data), |
597 |
if ((r = sshkey_sign(key, &sig, &slen, data, sizeof(data), |
| 595 |
NULL, NULL, NULL, 0)) != 0) |
598 |
alg, NULL, NULL, 0)) != 0) |
| 596 |
error_fr(r, "signing with converted key failed"); |
599 |
error_fr(r, "signing with converted key failed"); |
| 597 |
else if ((r = sshkey_verify(key, sig, slen, data, sizeof(data), |
600 |
else if ((r = sshkey_verify(key, sig, slen, data, sizeof(data), |
| 598 |
NULL, 0, NULL)) != 0) |
601 |
alg, 0, NULL)) != 0) |
| 599 |
error_fr(r, "verification with converted key failed"); |
602 |
error_fr(r, "verification with converted key failed"); |
| 600 |
if (r != 0) { |
603 |
if (r != 0) { |
| 601 |
sshkey_free(key); |
604 |
sshkey_free(key); |