View | Details | Raw Unified | Return to bug 3546
Collapse All | Expand All

(-)a/ssh-keygen.c (-2 / +5 lines)
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);

Return to bug 3546