From 31166ec8f33f1d1af25901be4411d47ef15ff340 Mon Sep 17 00:00:00 2001 From: Geoff Thorpe Date: Wed, 29 Oct 2003 20:47:49 +0000 Subject: [PATCH] Some provisional bignum debugging has begun to detect inconsistent BIGNUM structures being passed in to or out of API functions, and this corrects a couple of cases found so far. Also, lop off a couple of bytes of white-space. --- crypto/bn/bn_lib.c | 1 - crypto/bn/bn_nist.c | 3 ++- crypto/bn/bn_recp.c | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/crypto/bn/bn_lib.c b/crypto/bn/bn_lib.c index 8207bce230..783881d3a6 100644 --- a/crypto/bn/bn_lib.c +++ b/crypto/bn/bn_lib.c @@ -462,7 +462,6 @@ BIGNUM *bn_expand2(BIGNUM *b, int words) A[0]=0; assert(A == &(b->d[b->dmax])); } - return b; } diff --git a/crypto/bn/bn_nist.c b/crypto/bn/bn_nist.c index 19bd540725..2ababfbed1 100644 --- a/crypto/bn/bn_nist.c +++ b/crypto/bn/bn_nist.c @@ -823,6 +823,7 @@ int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, if (tmp->top == BN_NIST_521_TOP) tmp->d[BN_NIST_521_TOP-1] &= BN_NIST_521_TOP_MASK; + bn_fix_top(tmp); if (!BN_uadd(r, tmp, r)) return 0; top = r->top; @@ -838,6 +839,6 @@ int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, ret = 1; err: BN_CTX_end(ctx); - + return ret; } diff --git a/crypto/bn/bn_recp.c b/crypto/bn/bn_recp.c index ef5fdd4708..22cbcfc49b 100644 --- a/crypto/bn/bn_recp.c +++ b/crypto/bn/bn_recp.c @@ -203,6 +203,8 @@ int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, ret=1; err: BN_CTX_end(ctx); + if(dv) bn_fix_top(dv); + if(rem) bn_fix_top(rem); return(ret); } -- GitLab