Hello,

when an ENGINE implements the RSA key generation the current 
implementation of the 'genrsa' command doesn't use the funcion reference 
of that ENGINE for this. This reference should be stored in the RSA 
struct and is passed to the RSA_generate_key_ex() function.
The problem is that the RSA strcut is initialized via RSA_new() with the 
default function before the ENGINE interface was set up properly. The 
patch below fixes this.

Regards,
Ralf Vennemann

@@ -105,9 +105,9 @@
        char *inrand=NULL;
        BIO *out=NULL;
        BIGNUM *bn = BN_new();
-       RSA *rsa = RSA_new();
+       RSA *rsa = NULL;

-       if(!bn || !rsa) goto err;
+       if(!bn) goto err;

        apps_startup();
        BN_GENCB_set(&cb, genrsa_cb, bio_err);
@@ -266,6 +266,9 @@
        BIO_printf(bio_err,"Generating RSA private key, %d bit long modulus\n",
                num);

+       rsa = RSA_new();
+       if(!rsa) goto err;
+
        if(!BN_set_word(bn, f4) || !RSA_generate_key_ex(rsa, num, bn, &cb))
                goto err;
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [EMAIL PROTECTED]

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to