diff options
author | djm <> | 2009-01-05 21:36:39 +0000 |
---|---|---|
committer | djm <> | 2009-01-05 21:36:39 +0000 |
commit | 13c662ccd1d22d856f1f2defeea26dd18c0af043 (patch) | |
tree | e0d2d687fbd4e4e9eb6bc4b178ea069817f0aba4 /src/lib/libcrypto/rsa/rsa_eay.c | |
parent | acc5957d1b6d6872ce50e4100edebccea0476481 (diff) | |
download | openbsd-13c662ccd1d22d856f1f2defeea26dd18c0af043.tar.gz openbsd-13c662ccd1d22d856f1f2defeea26dd18c0af043.tar.bz2 openbsd-13c662ccd1d22d856f1f2defeea26dd18c0af043.zip |
update to openssl-0.9.8i; tested by several, especially krw@
Diffstat (limited to 'src/lib/libcrypto/rsa/rsa_eay.c')
-rw-r--r-- | src/lib/libcrypto/rsa/rsa_eay.c | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/src/lib/libcrypto/rsa/rsa_eay.c b/src/lib/libcrypto/rsa/rsa_eay.c index 272c5eed18..5a6eda7961 100644 --- a/src/lib/libcrypto/rsa/rsa_eay.c +++ b/src/lib/libcrypto/rsa/rsa_eay.c | |||
@@ -150,16 +150,6 @@ const RSA_METHOD *RSA_PKCS1_SSLeay(void) | |||
150 | return(&rsa_pkcs1_eay_meth); | 150 | return(&rsa_pkcs1_eay_meth); |
151 | } | 151 | } |
152 | 152 | ||
153 | /* Usage example; | ||
154 | * MONT_HELPER(rsa->_method_mod_p, bn_ctx, rsa->p, rsa->flags & RSA_FLAG_CACHE_PRIVATE, goto err); | ||
155 | */ | ||
156 | #define MONT_HELPER(method_mod, ctx, m, pre_cond, err_instr) \ | ||
157 | if ((pre_cond) && ((method_mod) == NULL) && \ | ||
158 | !BN_MONT_CTX_set_locked(&(method_mod), \ | ||
159 | CRYPTO_LOCK_RSA, \ | ||
160 | (m), (ctx))) \ | ||
161 | err_instr | ||
162 | |||
163 | static int RSA_eay_public_encrypt(int flen, const unsigned char *from, | 153 | static int RSA_eay_public_encrypt(int flen, const unsigned char *from, |
164 | unsigned char *to, RSA *rsa, int padding) | 154 | unsigned char *to, RSA *rsa, int padding) |
165 | { | 155 | { |
@@ -233,7 +223,9 @@ static int RSA_eay_public_encrypt(int flen, const unsigned char *from, | |||
233 | goto err; | 223 | goto err; |
234 | } | 224 | } |
235 | 225 | ||
236 | MONT_HELPER(rsa->_method_mod_n, ctx, rsa->n, rsa->flags & RSA_FLAG_CACHE_PUBLIC, goto err); | 226 | if (rsa->flags & RSA_FLAG_CACHE_PUBLIC) |
227 | if (!BN_MONT_CTX_set_locked(&rsa->_method_mod_n, CRYPTO_LOCK_RSA, rsa->n, ctx)) | ||
228 | goto err; | ||
237 | 229 | ||
238 | if (!rsa->meth->bn_mod_exp(ret,f,rsa->e,rsa->n,ctx, | 230 | if (!rsa->meth->bn_mod_exp(ret,f,rsa->e,rsa->n,ctx, |
239 | rsa->_method_mod_n)) goto err; | 231 | rsa->_method_mod_n)) goto err; |
@@ -460,7 +452,9 @@ static int RSA_eay_private_encrypt(int flen, const unsigned char *from, | |||
460 | else | 452 | else |
461 | d= rsa->d; | 453 | d= rsa->d; |
462 | 454 | ||
463 | MONT_HELPER(rsa->_method_mod_n, ctx, rsa->n, rsa->flags & RSA_FLAG_CACHE_PUBLIC, goto err); | 455 | if (rsa->flags & RSA_FLAG_CACHE_PUBLIC) |
456 | if(!BN_MONT_CTX_set_locked(&rsa->_method_mod_n, CRYPTO_LOCK_RSA, rsa->n, ctx)) | ||
457 | goto err; | ||
464 | 458 | ||
465 | if (!rsa->meth->bn_mod_exp(ret,f,d,rsa->n,ctx, | 459 | if (!rsa->meth->bn_mod_exp(ret,f,d,rsa->n,ctx, |
466 | rsa->_method_mod_n)) goto err; | 460 | rsa->_method_mod_n)) goto err; |
@@ -581,7 +575,9 @@ static int RSA_eay_private_decrypt(int flen, const unsigned char *from, | |||
581 | else | 575 | else |
582 | d = rsa->d; | 576 | d = rsa->d; |
583 | 577 | ||
584 | MONT_HELPER(rsa->_method_mod_n, ctx, rsa->n, rsa->flags & RSA_FLAG_CACHE_PUBLIC, goto err); | 578 | if (rsa->flags & RSA_FLAG_CACHE_PUBLIC) |
579 | if (!BN_MONT_CTX_set_locked(&rsa->_method_mod_n, CRYPTO_LOCK_RSA, rsa->n, ctx)) | ||
580 | goto err; | ||
585 | if (!rsa->meth->bn_mod_exp(ret,f,d,rsa->n,ctx, | 581 | if (!rsa->meth->bn_mod_exp(ret,f,d,rsa->n,ctx, |
586 | rsa->_method_mod_n)) | 582 | rsa->_method_mod_n)) |
587 | goto err; | 583 | goto err; |
@@ -691,7 +687,9 @@ static int RSA_eay_public_decrypt(int flen, const unsigned char *from, | |||
691 | goto err; | 687 | goto err; |
692 | } | 688 | } |
693 | 689 | ||
694 | MONT_HELPER(rsa->_method_mod_n, ctx, rsa->n, rsa->flags & RSA_FLAG_CACHE_PUBLIC, goto err); | 690 | if (rsa->flags & RSA_FLAG_CACHE_PUBLIC) |
691 | if (!BN_MONT_CTX_set_locked(&rsa->_method_mod_n, CRYPTO_LOCK_RSA, rsa->n, ctx)) | ||
692 | goto err; | ||
695 | 693 | ||
696 | if (!rsa->meth->bn_mod_exp(ret,f,rsa->e,rsa->n,ctx, | 694 | if (!rsa->meth->bn_mod_exp(ret,f,rsa->e,rsa->n,ctx, |
697 | rsa->_method_mod_n)) goto err; | 695 | rsa->_method_mod_n)) goto err; |
@@ -769,11 +767,18 @@ static int RSA_eay_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx) | |||
769 | q = rsa->q; | 767 | q = rsa->q; |
770 | } | 768 | } |
771 | 769 | ||
772 | MONT_HELPER(rsa->_method_mod_p, ctx, p, rsa->flags & RSA_FLAG_CACHE_PRIVATE, goto err); | 770 | if (rsa->flags & RSA_FLAG_CACHE_PRIVATE) |
773 | MONT_HELPER(rsa->_method_mod_q, ctx, q, rsa->flags & RSA_FLAG_CACHE_PRIVATE, goto err); | 771 | { |
772 | if (!BN_MONT_CTX_set_locked(&rsa->_method_mod_p, CRYPTO_LOCK_RSA, p, ctx)) | ||
773 | goto err; | ||
774 | if (!BN_MONT_CTX_set_locked(&rsa->_method_mod_q, CRYPTO_LOCK_RSA, q, ctx)) | ||
775 | goto err; | ||
776 | } | ||
774 | } | 777 | } |
775 | 778 | ||
776 | MONT_HELPER(rsa->_method_mod_n, ctx, rsa->n, rsa->flags & RSA_FLAG_CACHE_PUBLIC, goto err); | 779 | if (rsa->flags & RSA_FLAG_CACHE_PUBLIC) |
780 | if (!BN_MONT_CTX_set_locked(&rsa->_method_mod_n, CRYPTO_LOCK_RSA, rsa->n, ctx)) | ||
781 | goto err; | ||
777 | 782 | ||
778 | /* compute I mod q */ | 783 | /* compute I mod q */ |
779 | if (!(rsa->flags & RSA_FLAG_NO_CONSTTIME)) | 784 | if (!(rsa->flags & RSA_FLAG_NO_CONSTTIME)) |