hcrypto: import libtommath v1.2.0
[metze/heimdal/wip.git] / lib / hcrypto / libtommath / bn_mp_init.c
1 #include "tommath_private.h"
2 #ifdef BN_MP_INIT_C
3 /* LibTomMath, multiple-precision integer library -- Tom St Denis */
4 /* SPDX-License-Identifier: Unlicense */
5
6 /* init a new mp_int */
7 mp_err mp_init(mp_int *a)
8 {
9    /* allocate memory required and clear it */
10    a->dp = (mp_digit *) MP_CALLOC((size_t)MP_PREC, sizeof(mp_digit));
11    if (a->dp == NULL) {
12       return MP_MEM;
13    }
14
15    /* set the used to zero, allocated digits to the default precision
16     * and sign to positive */
17    a->used  = 0;
18    a->alloc = MP_PREC;
19    a->sign  = MP_ZPOS;
20
21    return MP_OKAY;
22 }
23 #endif