1 #include "tommath_private.h"
2 #ifdef BN_S_MP_GET_BIT_C
4 /* LibTomMath, multiple-precision integer library -- Tom St Denis */
5 /* SPDX-License-Identifier: Unlicense */
7 /* Get bit at position b and return MP_YES if the bit is 1, MP_NO if it is 0 */
8 mp_bool
s_mp_get_bit(const mp_int
*a
, unsigned int b
)
11 int limb
= (int)(b
/ MP_DIGIT_BIT
);
13 if (limb
>= a
->used
) {
17 bit
= (mp_digit
)1 << (b
% MP_DIGIT_BIT
);
18 return ((a
->dp
[limb
] & bit
) != 0u) ? MP_YES
: MP_NO
;