Coverage Report

Created: 2023-06-07 06:49

/src/dropbear/libtommath/bn_mp_reduce_2k_setup.c
Line
Count
Source (jump to first uncovered line)
1
#include "tommath_private.h"
2
#ifdef BN_MP_REDUCE_2K_SETUP_C
3
/* LibTomMath, multiple-precision integer library -- Tom St Denis */
4
/* SPDX-License-Identifier: Unlicense */
5
6
/* determines the setup value */
7
mp_err mp_reduce_2k_setup(const mp_int *a, mp_digit *d)
8
0
{
9
0
   mp_err err;
10
0
   mp_int tmp;
11
0
   int    p;
12
13
0
   if ((err = mp_init(&tmp)) != MP_OKAY) {
14
0
      return err;
15
0
   }
16
17
0
   p = mp_count_bits(a);
18
0
   if ((err = mp_2expt(&tmp, p)) != MP_OKAY) {
19
0
      mp_clear(&tmp);
20
0
      return err;
21
0
   }
22
23
0
   if ((err = s_mp_sub(&tmp, a, &tmp)) != MP_OKAY) {
24
0
      mp_clear(&tmp);
25
0
      return err;
26
0
   }
27
28
0
   *d = tmp.dp[0];
29
0
   mp_clear(&tmp);
30
0
   return MP_OKAY;
31
0
}
32
#endif