diff options
author | Matt Caswell <matt@openssl.org> | 2014-10-28 23:00:29 +0000 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2014-12-08 21:40:57 +0000 |
commit | 18125f7f554034d95c64851bee23fb058a23bfd9 (patch) | |
tree | 2079d890f829b34910893d9c96a1f96670a5a3fe /crypto/rsa/rsa_depr.c | |
parent | 68c29f61a404db3d620278878d77ca90ad853b8d (diff) | |
download | openssl-18125f7f554034d95c64851bee23fb058a23bfd9.zip openssl-18125f7f554034d95c64851bee23fb058a23bfd9.tar.gz openssl-18125f7f554034d95c64851bee23fb058a23bfd9.tar.bz2 |
Implement internally opaque bn access from rsa
Reviewed-by: Tim Hudson <tjh@openssl.org>
Diffstat (limited to 'crypto/rsa/rsa_depr.c')
-rw-r--r-- | crypto/rsa/rsa_depr.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/crypto/rsa/rsa_depr.c b/crypto/rsa/rsa_depr.c index a859ded..cd57086 100644 --- a/crypto/rsa/rsa_depr.c +++ b/crypto/rsa/rsa_depr.c @@ -71,12 +71,12 @@ static void *dummy=&dummy; RSA *RSA_generate_key(int bits, unsigned long e_value, void (*callback)(int,int,void *), void *cb_arg) { - BN_GENCB cb; int i; + BN_GENCB *cb = BN_GENCB_new(); RSA *rsa = RSA_new(); BIGNUM *e = BN_new(); - if(!rsa || !e) goto err; + if(!cb || !rsa || !e) goto err; /* The problem is when building with 8, 16, or 32 BN_ULONG, * unsigned long can be larger */ @@ -87,15 +87,17 @@ RSA *RSA_generate_key(int bits, unsigned long e_value, goto err; } - BN_GENCB_set_old(&cb, callback, cb_arg); + BN_GENCB_set_old(cb, callback, cb_arg); - if(RSA_generate_key_ex(rsa, bits, e, &cb)) { + if(RSA_generate_key_ex(rsa, bits, e, cb)) { BN_free(e); + BN_GENCB_free(cb); return rsa; } err: if(e) BN_free(e); if(rsa) RSA_free(rsa); + if(cb) BN_GENCB_free(cb); return 0; } #endif |