Coverage Report

Created: 2025-11-24 06:34

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/dropbear/libtommath/bn_mp_cmp_mag.c
Line
Count
Source
1
#include "tommath_private.h"
2
#ifdef BN_MP_CMP_MAG_C
3
/* LibTomMath, multiple-precision integer library -- Tom St Denis */
4
/* SPDX-License-Identifier: Unlicense */
5
6
/* compare maginitude of two ints (unsigned) */
7
mp_ord mp_cmp_mag(const mp_int *a, const mp_int *b)
8
8.47M
{
9
8.47M
   int     n;
10
8.47M
   const mp_digit *tmpa, *tmpb;
11
12
   /* compare based on # of non-zero digits */
13
8.47M
   if (a->used > b->used) {
14
21.7k
      return MP_GT;
15
21.7k
   }
16
17
8.45M
   if (a->used < b->used) {
18
38.8k
      return MP_LT;
19
38.8k
   }
20
21
   /* alias for a */
22
8.41M
   tmpa = a->dp + (a->used - 1);
23
24
   /* alias for b */
25
8.41M
   tmpb = b->dp + (a->used - 1);
26
27
   /* compare based on digits  */
28
8.46M
   for (n = 0; n < a->used; ++n, --tmpa, --tmpb) {
29
8.46M
      if (*tmpa > *tmpb) {
30
2.49M
         return MP_GT;
31
2.49M
      }
32
33
5.96M
      if (*tmpa < *tmpb) {
34
5.91M
         return MP_LT;
35
5.91M
      }
36
5.96M
   }
37
1.14k
   return MP_EQ;
38
8.41M
}
39
#endif