Rename it to be an internal function bn_init.
Reviewed-by: Tim Hudson <tjh@openssl.org>
if (item == NULL)
return NULL;
for (loop = 0, bn = item->vals; loop++ < BN_CTX_POOL_SIZE; bn++) {
- BN_init(bn);
+ bn_init(bn);
if ((flag & BN_FLG_SECURE) != 0)
BN_set_flags(bn, BN_FLG_SECURE);
}
*/
{
BIGNUM local_B;
- BN_init(&local_B);
+ bn_init(&local_B);
BN_with_flags(&local_B, B, BN_FLG_CONSTTIME);
if (!BN_nnmod(B, &local_B, A, ctx))
goto err;
*/
{
BIGNUM local_A;
- BN_init(&local_A);
+ bn_init(&local_A);
BN_with_flags(&local_A, A, BN_FLG_CONSTTIME);
/* (D, M) := (A/B, A%B) ... */
}
# endif /* !BN_LLONG */
-void BN_init(BIGNUM *a);
void BN_RECP_CTX_init(BN_RECP_CTX *recp);
void BN_MONT_CTX_init(BN_MONT_CTX *ctx);
+void bn_init(BIGNUM *a);
void bn_mul_normal(BN_ULONG *r, BN_ULONG *a, int na, BN_ULONG *b, int nb);
void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b);
void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b);
}
}
-void BN_init(BIGNUM *a)
+void bn_init(BIGNUM *a)
{
- memset(a, 0, sizeof(*a));
+ static BIGNUM nilbn;
+
+ *a = nilbn;
bn_check_top(a);
}
void BN_MONT_CTX_init(BN_MONT_CTX *ctx)
{
ctx->ri = 0;
- BN_init(&(ctx->RR));
- BN_init(&(ctx->N));
- BN_init(&(ctx->Ni));
+ bn_init(&(ctx->RR));
+ bn_init(&(ctx->N));
+ bn_init(&(ctx->Ni));
ctx->n0[0] = ctx->n0[1] = 0;
ctx->flags = 0;
}
BIGNUM tmod;
BN_ULONG buf[2];
- BN_init(&tmod);
+ bn_init(&tmod);
tmod.d = buf;
tmod.dmax = 2;
tmod.neg = 0;
void BN_RECP_CTX_init(BN_RECP_CTX *recp)
{
- BN_init(&(recp->N));
- BN_init(&(recp->Nr));
+ bn_init(&(recp->N));
+ bn_init(&(recp->Nr));
recp->num_bits = 0;
recp->flags = 0;
}
=head1 NAME
-BN_new, BN_init, BN_clear, BN_free, BN_clear_free - allocate and free BIGNUMs
+BN_new, BN_clear, BN_free, BN_clear_free - allocate and free BIGNUMs
=head1 SYNOPSIS
BN_clear(), BN_free() and BN_clear_free() have no return values.
-=head1 REMOVED FUNCTIONALITY
-
- void BN_init(BIGNUM *);
-
-BN_init() is no longer available as of OpenSSL 1.1.0. It was used to initialize
-an existing uninitialized B<BIGNUM>. Typically this would be done as follows:
-
- BIGNUM a;
- BN_init(&a);
-
-Applications should replace use of BN_init with BN_new instead:
-
- BIGNUM *a;
- a = BN_new();
- if(!a) /* Handle error */
- ...
- BN_free(a);
-
=head1 SEE ALSO
L<bn(3)>, L<ERR_get_error(3)>
=head1 HISTORY
-BN_init() was removed in OpenSSL 1.1.0.
+BN_init() was removed in OpenSSL 1.1.0; use BN_new() instead.
=cut