Document a change I'd already made, and at the same time, correct the
change to work properly; BN_zero() should set 'neg' to zero as well as 'top' to match the behaviour of BN_new().
This commit is contained in:
parent
30fbcaa213
commit
9e051bac13
6
CHANGES
6
CHANGES
@ -4,6 +4,10 @@
|
|||||||
|
|
||||||
Changes between 0.9.7c and 0.9.8 [xx XXX xxxx]
|
Changes between 0.9.7c and 0.9.8 [xx XXX xxxx]
|
||||||
|
|
||||||
|
*) BN_CTX_get() should return zero-valued bignums, providing the same
|
||||||
|
initialised value as BN_new().
|
||||||
|
[Geoff Thorpe, suggested by Ulf Möller]
|
||||||
|
|
||||||
*) Support for inhibitAnyPolicy certificate extension.
|
*) Support for inhibitAnyPolicy certificate extension.
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
@ -21,7 +25,7 @@
|
|||||||
some point, these tighter rules will become openssl's default to improve
|
some point, these tighter rules will become openssl's default to improve
|
||||||
maintainability, though the assert()s and other overheads will remain only
|
maintainability, though the assert()s and other overheads will remain only
|
||||||
in debugging configurations. See bn.h for more details.
|
in debugging configurations. See bn.h for more details.
|
||||||
[Geoff Thorpe]
|
[Geoff Thorpe, Nils Larsch, Ulf Möller]
|
||||||
|
|
||||||
*) BN_CTX_init() has been deprecated, as BN_CTX is an opaque structure
|
*) BN_CTX_init() has been deprecated, as BN_CTX is an opaque structure
|
||||||
that can only be obtained through BN_CTX_new() (which implicitly
|
that can only be obtained through BN_CTX_new() (which implicitly
|
||||||
|
@ -140,6 +140,7 @@ void BN_CTX_start(BN_CTX *ctx)
|
|||||||
|
|
||||||
BIGNUM *BN_CTX_get(BN_CTX *ctx)
|
BIGNUM *BN_CTX_get(BN_CTX *ctx)
|
||||||
{
|
{
|
||||||
|
BIGNUM *ret;
|
||||||
/* Note: If BN_CTX_get is ever changed to allocate BIGNUMs dynamically,
|
/* Note: If BN_CTX_get is ever changed to allocate BIGNUMs dynamically,
|
||||||
* make sure that if BN_CTX_get fails once it will return NULL again
|
* make sure that if BN_CTX_get fails once it will return NULL again
|
||||||
* until BN_CTX_end is called. (This is so that callers have to check
|
* until BN_CTX_end is called. (This is so that callers have to check
|
||||||
@ -155,9 +156,10 @@ BIGNUM *BN_CTX_get(BN_CTX *ctx)
|
|||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
ret = ctx->bn + (ctx->tos++);
|
||||||
/* always return a 'zeroed' bignum */
|
/* always return a 'zeroed' bignum */
|
||||||
ctx->bn[ctx->tos].top = 0;
|
BN_zero(ret);
|
||||||
return (&(ctx->bn[ctx->tos++]));
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BN_CTX_end(BN_CTX *ctx)
|
void BN_CTX_end(BN_CTX *ctx)
|
||||||
|
@ -214,7 +214,6 @@ int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor,
|
|||||||
res=BN_CTX_get(ctx);
|
res=BN_CTX_get(ctx);
|
||||||
else res=dv;
|
else res=dv;
|
||||||
if (sdiv == NULL || res == NULL) goto err;
|
if (sdiv == NULL || res == NULL) goto err;
|
||||||
tmp->neg=0;
|
|
||||||
|
|
||||||
/* First we normalise the numbers */
|
/* First we normalise the numbers */
|
||||||
norm_shift=BN_BITS2-((BN_num_bits(divisor))%BN_BITS2);
|
norm_shift=BN_BITS2-((BN_num_bits(divisor))%BN_BITS2);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user