summaryrefslogtreecommitdiffstats
path: root/crypto/rsa
diff options
context:
space:
mode:
authorGeoff Thorpe <geoff@openssl.org>2002-12-08 16:45:26 +0000
committerGeoff Thorpe <geoff@openssl.org>2002-12-08 16:45:26 +0000
commite189872486477c2bb9b041cb00f4390ef4aa911b (patch)
treed5a3ad328351adddf360315937074087669ee83d /crypto/rsa
parentfdaea9ed2e5644b98baae983ce7a55100c956999 (diff)
Nils Larsch submitted;
- a patch to fix a memory leak in rsa_gen.c - a note about compiler warnings with unions - a note about improving structure element names This applies his patch and implements a solution to the notes.
Diffstat (limited to 'crypto/rsa')
-rw-r--r--crypto/rsa/rsa_depr.c4
-rw-r--r--crypto/rsa/rsa_gen.c10
2 files changed, 3 insertions, 11 deletions
diff --git a/crypto/rsa/rsa_depr.c b/crypto/rsa/rsa_depr.c
index 25fa954393..3773d037c6 100644
--- a/crypto/rsa/rsa_depr.c
+++ b/crypto/rsa/rsa_depr.c
@@ -71,9 +71,7 @@ RSA *RSA_generate_key(int bits, unsigned long e_value,
if((rsa=RSA_new()) == NULL)
return 0;
- cb.ver = 1;
- cb.arg = cb_arg;
- cb.cb_1 = callback;
+ BN_GENCB_set_old(&cb, callback, cb_arg);
if(RSA_generate_key_ex(rsa, bits, e_value, &cb))
return rsa;
diff --git a/crypto/rsa/rsa_gen.c b/crypto/rsa/rsa_gen.c
index a45b9aab5c..e3ae03e691 100644
--- a/crypto/rsa/rsa_gen.c
+++ b/crypto/rsa/rsa_gen.c
@@ -166,22 +166,16 @@ int RSA_generate_key_ex(RSA *rsa, int bits, unsigned long e_value, BN_GENCB *cb)
goto err;
}
*/
- rsa->d=BN_mod_inverse(NULL,rsa->e,r0,ctx2); /* d */
- if (rsa->d == NULL) goto err;
+ if (!BN_mod_inverse(rsa->d,rsa->e,r0,ctx2)) goto err; /* d */
/* calculate d mod (p-1) */
- rsa->dmp1=BN_new();
- if (rsa->dmp1 == NULL) goto err;
if (!BN_mod(rsa->dmp1,rsa->d,r1,ctx)) goto err;
/* calculate d mod (q-1) */
- rsa->dmq1=BN_new();
- if (rsa->dmq1 == NULL) goto err;
if (!BN_mod(rsa->dmq1,rsa->d,r2,ctx)) goto err;
/* calculate inverse of q mod p */
- rsa->iqmp=BN_mod_inverse(NULL,rsa->q,rsa->p,ctx2);
- if (rsa->iqmp == NULL) goto err;
+ if (!BN_mod_inverse(rsa->iqmp,rsa->q,rsa->p,ctx2)) goto err;
ok=1;
err: