In genpkey, also look for algorithm string name in any supplied ENGINE.
authorDr. Stephen Henson <steve@openssl.org>
Wed, 12 Jul 2006 18:00:20 +0000 (18:00 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Wed, 12 Jul 2006 18:00:20 +0000 (18:00 +0000)
apps/genpkey.c

index 96801c7045373e0c896fa2b724418573b04464d1..1d1a53e84b3b3dd197501eaef83ae257e34c2a25 100644 (file)
@@ -375,14 +375,20 @@ static int init_gen_str(BIO *err, EVP_PKEY_CTX **pctx,
                BIO_puts(err, "Algorithm already set!\n");
                return 0;
                }
+
        ameth = EVP_PKEY_asn1_find_str(&tmpeng, algname, -1);
 
+       if (!ameth && e)
+               ameth = ENGINE_get_pkey_asn1_meth_str(e, algname, -1);
+
        if (!ameth)
                {
                BIO_printf(bio_err, "Algorithm %s not found\n", algname);
                return 0;
                }
 
+       ERR_clear_error();
+
        EVP_PKEY_asn1_get0_info(&pkey_id, NULL, NULL, NULL, NULL, ameth);
 #ifndef OPENSSL_NO_ENGINE
        if (tmpeng)