Commit b3c6a331 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

In genpkey, also look for algorithm string name in any supplied ENGINE.

parent 31780d0e
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -375,14 +375,20 @@ static int init_gen_str(BIO *err, EVP_PKEY_CTX **pctx,
		BIO_puts(err, "Algorithm already set!\n");
		BIO_puts(err, "Algorithm already set!\n");
		return 0;
		return 0;
		}
		}

	ameth = EVP_PKEY_asn1_find_str(&tmpeng, algname, -1);
	ameth = EVP_PKEY_asn1_find_str(&tmpeng, algname, -1);


	if (!ameth && e)
		ameth = ENGINE_get_pkey_asn1_meth_str(e, algname, -1);

	if (!ameth)
	if (!ameth)
		{
		{
		BIO_printf(bio_err, "Algorithm %s not found\n", algname);
		BIO_printf(bio_err, "Algorithm %s not found\n", algname);
		return 0;
		return 0;
		}
		}


	ERR_clear_error();

	EVP_PKEY_asn1_get0_info(&pkey_id, NULL, NULL, NULL, NULL, ameth);
	EVP_PKEY_asn1_get0_info(&pkey_id, NULL, NULL, NULL, NULL, ameth);
#ifndef OPENSSL_NO_ENGINE
#ifndef OPENSSL_NO_ENGINE
	if (tmpeng)
	if (tmpeng)