33
44#include " Common/Crypto/bn.h"
55
6+ #include < cstddef>
67#include < cstdio>
78#include < cstring>
89
910#include " Common/CommonTypes.h"
1011
11- static void bn_zero (u8 * d, int n)
12+ static void bn_zero (u8 * d, const size_t n)
1213{
1314 std::memset (d, 0 , n);
1415}
1516
16- static void bn_copy (u8 * d, const u8 * a, int n)
17+ static void bn_copy (u8 * d, const u8 * a, const size_t n)
1718{
1819 std::memcpy (d, a, n);
1920}
2021
21- int bn_compare (const u8 * a, const u8 * b, int n)
22+ int bn_compare (const u8 * a, const u8 * b, const size_t n)
2223{
2324 return std::memcmp (a, b, n);
2425}
2526
26- void bn_sub_modulus (u8 * a, const u8 * N, int n)
27+ void bn_sub_modulus (u8 * a, const u8 * N, const size_t n)
2728{
2829 u8 c = 0 ;
29- for (int i = n - 1 ; i >= 0 ; --i )
30+ for (size_t i = n; i > 0 ;)
3031 {
32+ --i;
3133 u32 dig = N[i] + c;
3234 c = (a[i] < dig);
3335 a[i] -= dig;
3436 }
3537}
3638
37- void bn_add (u8 * d, const u8 * a, const u8 * b, const u8 * N, int n)
39+ void bn_add (u8 * d, const u8 * a, const u8 * b, const u8 * N, const size_t n)
3840{
3941 u8 c = 0 ;
40- for (int i = n - 1 ; i >= 0 ; --i )
42+ for (size_t i = n; i > 0 ;)
4143 {
44+ --i;
4245 u32 dig = a[i] + b[i] + c;
4346 c = (dig >= 0x100 );
4447 d[i] = dig;
@@ -51,11 +54,11 @@ void bn_add(u8* d, const u8* a, const u8* b, const u8* N, int n)
5154 bn_sub_modulus (d, N, n);
5255}
5356
54- void bn_mul (u8 * d, const u8 * a, const u8 * b, const u8 * N, int n)
57+ void bn_mul (u8 * d, const u8 * a, const u8 * b, const u8 * N, const size_t n)
5558{
5659 bn_zero (d, n);
5760
58- for (int i = 0 ; i < n; i++)
61+ for (size_t i = 0 ; i < n; i++)
5962 {
6063 for (u8 mask = 0x80 ; mask != 0 ; mask >>= 1 )
6164 {
@@ -66,13 +69,13 @@ void bn_mul(u8* d, const u8* a, const u8* b, const u8* N, int n)
6669 }
6770}
6871
69- void bn_exp (u8 * d, const u8 * a, const u8 * N, int n, const u8 * e, int en)
72+ void bn_exp (u8 * d, const u8 * a, const u8 * N, const size_t n, const u8 * e, const size_t en)
7073{
7174 u8 t[512 ];
7275
7376 bn_zero (d, n);
7477 d[n - 1 ] = 1 ;
75- for (int i = 0 ; i < en; i++)
78+ for (size_t i = 0 ; i < en; i++)
7679 {
7780 for (u8 mask = 0x80 ; mask != 0 ; mask >>= 1 )
7881 {
@@ -86,7 +89,7 @@ void bn_exp(u8* d, const u8* a, const u8* N, int n, const u8* e, int en)
8689}
8790
8891// only for prime N -- stupid but lazy, see if I care
89- void bn_inv (u8 * d, const u8 * a, const u8 * N, int n)
92+ void bn_inv (u8 * d, const u8 * a, const u8 * N, const size_t n)
9093{
9194 u8 t[512 ], s[512 ];
9295
0 commit comments