Diff
Not logged in

Differences From Artifact [8c27cfacac]:

To Artifact [160b551de2]:


1
2
3

4
5
6
7
8
9
10
11
12

13
14
15
16

17
18
19


20
21
22


23
24
25

26
27

28
29

30
31

32
33
34
35
36
37
1
2

3









4

5
6

7
8


9
10
11


12
13
14
15

16
17

18
19

20
21

22
23
24






-
+
-
-
-
-
-
-
-
-
-
+
-


-
+

-
-
+
+

-
-
+
+


-
+

-
+

-
+

-
+


-
-
-
-
#include "tommath_private.h"
#ifdef BN_MP_MULMOD_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis
/* LibTomMath, multiple-precision integer library -- Tom St Denis */
 *
 * LibTomMath is a library that provides multiple-precision
 * integer arithmetic as well as number theoretic functionality.
 *
 * The library was designed directly after the MPI library by
 * Michael Fromberger but has been written from scratch with
 * additional optimizations in place.
 *
 * SPDX-License-Identifier: Unlicense
/* SPDX-License-Identifier: Unlicense */
 */

/* d = a * b (mod c) */
int mp_mulmod(const mp_int *a, const mp_int *b, const mp_int *c, mp_int *d)
mp_err mp_mulmod(const mp_int *a, const mp_int *b, const mp_int *c, mp_int *d)
{
   int     res;
   mp_int  t;
   mp_err err;
   mp_int t;

   if ((res = mp_init_size(&t, c->used)) != MP_OKAY) {
      return res;
   if ((err = mp_init_size(&t, c->used)) != MP_OKAY) {
      return err;
   }

   if ((res = mp_mul(a, b, &t)) != MP_OKAY) {
   if ((err = mp_mul(a, b, &t)) != MP_OKAY) {
      mp_clear(&t);
      return res;
      return err;
   }
   res = mp_mod(&t, c, d);
   err = mp_mod(&t, c, d);
   mp_clear(&t);
   return res;
   return err;
}
#endif

/* ref:         $Format:%D$ */
/* git commit:  $Format:%H$ */
/* commit time: $Format:%ai$ */