diff options
author | Ulf Möller <ulf@openssl.org> | 2000-02-05 14:17:32 +0000 |
---|---|---|
committer | Ulf Möller <ulf@openssl.org> | 2000-02-05 14:17:32 +0000 |
commit | 9b141126d4b6f0636bc047e81b846c193ae26611 (patch) | |
tree | c8786c99bfccc8b9899cad5c3aa30f29ada5e1b9 /crypto/rsa/rsa_gen.c | |
parent | 7e708ebee066d0308a335579b546326220dc8317 (diff) | |
download | openssl-9b141126d4b6f0636bc047e81b846c193ae26611.tar.gz |
New functions BN_CTX_start(), BN_CTX_get(), BN_CTX_end() to access
temporary BIGNUMs. BN_CTX still uses a fixed number of BIGNUMs, but
the BN_CTX implementation could now easily be changed.
Diffstat (limited to 'crypto/rsa/rsa_gen.c')
-rw-r--r-- | crypto/rsa/rsa_gen.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/crypto/rsa/rsa_gen.c b/crypto/rsa/rsa_gen.c index 3ed6edd6a1..95e636d3f0 100644 --- a/crypto/rsa/rsa_gen.c +++ b/crypto/rsa/rsa_gen.c @@ -74,11 +74,12 @@ RSA *RSA_generate_key(int bits, unsigned long e_value, if (ctx == NULL) goto err; ctx2=BN_CTX_new(); if (ctx2 == NULL) goto err; - r0= &(ctx->bn[0]); - r1= &(ctx->bn[1]); - r2= &(ctx->bn[2]); - r3= &(ctx->bn[3]); - ctx->tos+=4; + BN_CTX_start(ctx); + r0 = BN_CTX_get(ctx); + r1 = BN_CTX_get(ctx); + r2 = BN_CTX_get(ctx); + r3 = BN_CTX_get(ctx); + if (r3 == NULL) goto err; bitsp=(bits+1)/2; bitsq=bits-bitsp; @@ -181,6 +182,7 @@ err: RSAerr(RSA_F_RSA_GENERATE_KEY,ERR_LIB_BN); ok=0; } + BN_CTX_end(ctx); BN_CTX_free(ctx); BN_CTX_free(ctx2); |