Add const qualifier where appropriate.

This commit is contained in:
Ken MacKay
2015-04-25 15:42:19 -07:00
parent c5749e621b
commit dd195a17ac
3 changed files with 78 additions and 78 deletions
+24 -24
View File
@@ -20,7 +20,7 @@
#if (uECC_ASM == uECC_asm_fast)
static uint32_t vli_add(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
static uint32_t vli_add(uint32_t *p_result, const uint32_t *p_left, const uint32_t *p_right)
{
uint32_t l_carry = 0;
uint32_t l_left;
@@ -57,7 +57,7 @@ static uint32_t vli_add(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
}
#define asm_add 1
static uint32_t vli_sub(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
static uint32_t vli_sub(uint32_t *p_result, const uint32_t *p_left, const uint32_t *p_right)
{
uint32_t l_carry = 0;
uint32_t l_left;
@@ -96,11 +96,11 @@ static uint32_t vli_sub(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
#if (uECC_PLATFORM != uECC_arm_thumb)
#if (uECC_WORDS == 5)
static void vli_mult(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
static void vli_mult(uint32_t *p_result, const uint32_t *p_left, const uint32_t *p_right)
{
register uint32_t *r0 __asm__("r0") = p_result;
register uint32_t *r1 __asm__("r1") = p_left;
register uint32_t *r2 __asm__("r2") = p_right;
register const uint32_t *r1 __asm__("r1") = p_left;
register const uint32_t *r2 __asm__("r2") = p_right;
__asm__ volatile (
".syntax unified \n\t"
@@ -267,11 +267,11 @@ static void vli_mult(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
#endif /* (uECC_WORDS == 5) */
#if (uECC_WORDS == 6)
static void vli_mult(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
static void vli_mult(uint32_t *p_result, const uint32_t *p_left, const uint32_t *p_right)
{
register uint32_t *r0 __asm__("r0") = p_result;
register uint32_t *r1 __asm__("r1") = p_left;
register uint32_t *r2 __asm__("r2") = p_right;
register const uint32_t *r1 __asm__("r1") = p_left;
register const uint32_t *r2 __asm__("r2") = p_right;
__asm__ volatile (
".syntax unified \n\t"
@@ -503,11 +503,11 @@ static void vli_mult(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
#endif /* (uECC_WORDS == 6) */
#if (uECC_WORDS == 8)
static void vli_mult(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
static void vli_mult(uint32_t *p_result, const uint32_t *p_left, const uint32_t *p_right)
{
register uint32_t *r0 __asm__("r0") = p_result;
register uint32_t *r1 __asm__("r1") = p_left;
register uint32_t *r2 __asm__("r2") = p_right;
register const uint32_t *r1 __asm__("r1") = p_left;
register const uint32_t *r2 __asm__("r2") = p_right;
__asm__ volatile (
".syntax unified \n\t"
@@ -924,10 +924,10 @@ static void vli_mult(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
#endif /* (uECC_WORDS == 8) */
#if (uECC_WORDS == 5)
static void vli_square(uint32_t *p_result, uint32_t *p_left)
static void vli_square(uint32_t *p_result, const uint32_t *p_left)
{
register uint32_t *r0 __asm__("r0") = p_result;
register uint32_t *r1 __asm__("r1") = p_left;
register const uint32_t *r1 __asm__("r1") = p_left;
__asm__ volatile (
".syntax unified \n\t"
@@ -1046,10 +1046,10 @@ static void vli_square(uint32_t *p_result, uint32_t *p_left)
#endif /* (uECC_WORDS == 5) */
#if (uECC_WORDS == 6)
static void vli_square(uint32_t *p_result, uint32_t *p_left)
static void vli_square(uint32_t *p_result, const uint32_t *p_left)
{
register uint32_t *r0 __asm__("r0") = p_result;
register uint32_t *r1 __asm__("r1") = p_left;
register const uint32_t *r1 __asm__("r1") = p_left;
__asm__ volatile (
".syntax unified \n\t"
@@ -1204,10 +1204,10 @@ static void vli_square(uint32_t *p_result, uint32_t *p_left)
#endif /* (uECC_WORDS == 6) */
#if (uECC_WORDS == 8)
static void vli_square(uint32_t *p_result, uint32_t *p_left)
static void vli_square(uint32_t *p_result, const uint32_t *p_left)
{
register uint32_t *r0 __asm__("r0") = p_result;
register uint32_t *r1 __asm__("r1") = p_left;
register const uint32_t *r1 __asm__("r1") = p_left;
__asm__ volatile (
".syntax unified \n\t"
@@ -1492,7 +1492,7 @@ static void vli_square(uint32_t *p_result, uint32_t *p_left)
#endif /* (uECC_ASM == uECC_asm_fast) */
#if !asm_add
static uint32_t vli_add(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
static uint32_t vli_add(uint32_t *p_result, const uint32_t *p_left, const uint32_t *p_right)
{
uint32_t l_counter = uECC_WORDS;
uint32_t l_carry = 0; /* carry = 0 initially */
@@ -1529,7 +1529,7 @@ static uint32_t vli_add(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
#endif
#if !asm_sub
static uint32_t vli_sub(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
static uint32_t vli_sub(uint32_t *p_result, const uint32_t *p_left, const uint32_t *p_right)
{
uint32_t l_counter = uECC_WORDS;
uint32_t l_carry = 1; /* carry = 1 initially (means don't borrow) */
@@ -1566,7 +1566,7 @@ static uint32_t vli_sub(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
#endif
#if !asm_mult
static void vli_mult(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
static void vli_mult(uint32_t *p_result, const uint32_t *p_left, const uint32_t *p_right)
{
#if (uECC_PLATFORM != uECC_arm_thumb)
uint32_t c0 = 0;
@@ -1631,8 +1631,8 @@ static void vli_mult(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
#else /* Thumb-1 */
register uint32_t *r0 __asm__("r0") = p_result;
register uint32_t *r1 __asm__("r1") = p_left;
register uint32_t *r2 __asm__("r2") = p_right;
register const uint32_t *r1 __asm__("r1") = p_left;
register const uint32_t *r2 __asm__("r2") = p_right;
__asm__ volatile (
".syntax unified \n\t"
@@ -1725,7 +1725,7 @@ static void vli_mult(uint32_t *p_result, uint32_t *p_left, uint32_t *p_right)
#if uECC_SQUARE_FUNC
#if !asm_square
static void vli_square(uint32_t *p_result, uint32_t *p_left)
static void vli_square(uint32_t *p_result, const uint32_t *p_left)
{
#if (uECC_PLATFORM != uECC_arm_thumb)
uint32_t c0 = 0;
@@ -1800,7 +1800,7 @@ static void vli_square(uint32_t *p_result, uint32_t *p_left)
#else
register uint32_t *r0 __asm__("r0") = p_result;
register uint32_t *r1 __asm__("r1") = p_left;
register const uint32_t *r1 __asm__("r1") = p_left;
__asm__ volatile (
".syntax unified \n\t"
+13 -13
View File
@@ -89,7 +89,7 @@ static void vli_rshift1(uint8_t *p_vli)
#define asm_rshift1 1
/* Computes p_result = p_left + p_right, returning carry. Can modify in place. */
static uint8_t vli_add(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
static uint8_t vli_add(uint8_t *p_result, const uint8_t *p_left, const uint8_t *p_right)
{
uint8_t l_carry = 0;
uint8_t l_left;
@@ -121,7 +121,7 @@ static uint8_t vli_add(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
#define asm_add 1
/* Computes p_result = p_left - p_right, returning borrow. Can modify in place. */
static uint8_t vli_sub(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
static uint8_t vli_sub(uint8_t *p_result, const uint8_t *p_left, const uint8_t *p_right)
{
uint8_t l_borrow = 0;
uint8_t l_left;
@@ -154,7 +154,7 @@ static uint8_t vli_sub(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
#if (uECC_BYTES == 20)
__attribute((noinline))
static void vli_mult(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
static void vli_mult(uint8_t *p_result, const uint8_t *p_left, const uint8_t *p_right)
{
__asm__ volatile (
"adiw r30, 10 \n\t"
@@ -2069,7 +2069,7 @@ static void vli_mult(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
#define asm_mult 1
#elif (uECC_BYTES == 24)
__attribute((noinline))
static void vli_mult(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
static void vli_mult(uint8_t *p_result, const uint8_t *p_left, const uint8_t *p_right)
{
__asm__ volatile (
"adiw r30, 20 \n\t"
@@ -4852,7 +4852,7 @@ static void vli_mult(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
#define asm_mult 1
#elif (uECC_BYTES == 32)
__attribute((noinline))
static void vli_mult(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
static void vli_mult(uint8_t *p_result, const uint8_t *p_left, const uint8_t *p_right)
{
__asm__ volatile (
"adiw r30, 30 \n\t"
@@ -9781,7 +9781,7 @@ static void vli_mult(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
#if uECC_SQUARE_FUNC
#if (uECC_BYTES == 20)
static void vli_square(uint8_t *p_result, uint8_t *p_left)
static void vli_square(uint8_t *p_result, const uint8_t *p_left)
{
__asm__ volatile (
"ld r2, x+ \n\t"
@@ -10948,7 +10948,7 @@ static void vli_square(uint8_t *p_result, uint8_t *p_left)
#elif (uECC_BYTES == 24)
__attribute((noinline))
static void vli_square(uint8_t *p_result, uint8_t *p_left)
static void vli_square(uint8_t *p_result, const uint8_t *p_left)
{
__asm__ volatile (
"ldi r25, 0 \n\t"
@@ -12607,7 +12607,7 @@ static void vli_square(uint8_t *p_result, uint8_t *p_left)
#elif (uECC_BYTES == 32)
__attribute((noinline))
static void vli_square(uint8_t *p_result, uint8_t *p_left)
static void vli_square(uint8_t *p_result, const uint8_t *p_left)
{
__asm__ volatile (
"ldi r25, 0 \n\t"
@@ -15442,7 +15442,7 @@ static void vli_square(uint8_t *p_result, uint8_t *p_left)
#endif /* uECC_BYTES == xx */
#endif /* uECC_SQUARE_FUNC */
static void vli_modSub_fast(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
static void vli_modSub_fast(uint8_t *p_result, const uint8_t *p_left, const uint8_t *p_right)
{
uint8_t t1, t2;
__asm__ volatile (
@@ -16024,7 +16024,7 @@ static void vli_rshift1(uint8_t *p_vli)
#endif
#if !asm_add
static uint8_t vli_add(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
static uint8_t vli_add(uint8_t *p_result, const uint8_t *p_left, const uint8_t *p_right)
{
uint8_t i = uECC_BYTES;
uint8_t l_carry = 0;
@@ -16057,7 +16057,7 @@ static uint8_t vli_add(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
#endif
#if !asm_sub
static uint8_t vli_sub(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
static uint8_t vli_sub(uint8_t *p_result, const uint8_t *p_left, const uint8_t *p_right)
{
uint8_t i = uECC_BYTES;
uint8_t l_borrow = 0;
@@ -16091,7 +16091,7 @@ static uint8_t vli_sub(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
#if !asm_mult
__attribute((noinline))
static void vli_mult(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
static void vli_mult(uint8_t *p_result, const uint8_t *p_left, const uint8_t *p_right)
{
uint8_t r0 = 0;
uint8_t r1 = 0;
@@ -16188,7 +16188,7 @@ static void vli_mult(uint8_t *p_result, uint8_t *p_left, uint8_t *p_right)
#if uECC_SQUARE_FUNC
#if !asm_square
static void vli_square(uint8_t *p_result, uint8_t *p_left)
static void vli_square(uint8_t *p_result, const uint8_t *p_left)
{
uint8_t r0 = 0;
uint8_t r1 = 0;
+41 -41
View File
@@ -307,20 +307,20 @@ static uECC_word_t vli_isZero(const uECC_word_t *p_vli);
static uECC_word_t vli_testBit(const uECC_word_t *p_vli, bitcount_t p_bit);
static bitcount_t vli_numBits(const uECC_word_t *p_vli, wordcount_t p_maxWords);
static void vli_set(uECC_word_t *p_dest, const uECC_word_t *p_src);
static cmpresult_t vli_cmp(uECC_word_t *p_left, uECC_word_t *p_right);
static cmpresult_t vli_equal(uECC_word_t *p_left, uECC_word_t *p_right);
static cmpresult_t vli_cmp(const uECC_word_t *p_left, const uECC_word_t *p_right);
static cmpresult_t vli_equal(const uECC_word_t *p_left, const uECC_word_t *p_right);
static void vli_rshift1(uECC_word_t *p_vli);
static uECC_word_t vli_add(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right);
static uECC_word_t vli_sub(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right);
static void vli_mult(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right);
static void vli_modAdd(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right, uECC_word_t *p_mod);
static void vli_modSub(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right, uECC_word_t *p_mod);
static uECC_word_t vli_add(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right);
static uECC_word_t vli_sub(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right);
static void vli_mult(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right);
static void vli_modAdd(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right, const uECC_word_t *p_mod);
static void vli_modSub(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right, const uECC_word_t *p_mod);
static void vli_mmod_fast(uECC_word_t *RESTRICT p_result, uECC_word_t *RESTRICT p_product);
static void vli_modMult_fast(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right);
static void vli_modInv(uECC_word_t *p_result, uECC_word_t *p_input, uECC_word_t *p_mod);
static void vli_modMult_fast(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right);
static void vli_modInv(uECC_word_t *p_result, const uECC_word_t *p_input, const uECC_word_t *p_mod);
#if uECC_SQUARE_FUNC
static void vli_square(uECC_word_t *p_result, uECC_word_t *p_left);
static void vli_modSquare_fast(uECC_word_t *p_result, uECC_word_t *p_left);
static void vli_square(uECC_word_t *p_result, const uECC_word_t *p_left);
static void vli_modSquare_fast(uECC_word_t *p_result, const uECC_word_t *p_left);
#endif
#if (defined(_WIN32) || defined(_WIN64))
@@ -497,7 +497,7 @@ static void vli_set(uECC_word_t *p_dest, const uECC_word_t *p_src)
/* Returns sign of p_left - p_right. */
#if !asm_cmp
static cmpresult_t vli_cmp(uECC_word_t *p_left, uECC_word_t *p_right)
static cmpresult_t vli_cmp(const uECC_word_t *p_left, const uECC_word_t *p_right)
{
swordcount_t i;
for(i = uECC_WORDS-1; i >= 0; --i)
@@ -515,7 +515,7 @@ static cmpresult_t vli_cmp(uECC_word_t *p_left, uECC_word_t *p_right)
}
#endif
static cmpresult_t vli_equal(uECC_word_t *p_left, uECC_word_t *p_right)
static cmpresult_t vli_equal(const uECC_word_t *p_left, const uECC_word_t *p_right)
{
uECC_word_t l_result = 0;
@@ -547,7 +547,7 @@ static void vli_rshift1(uECC_word_t *p_vli)
/* Computes p_result = p_left + p_right, returning carry. Can modify in place. */
#if !asm_add
static uECC_word_t vli_add(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right)
static uECC_word_t vli_add(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right)
{
uECC_word_t l_carry = 0;
wordcount_t i;
@@ -566,7 +566,7 @@ static uECC_word_t vli_add(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word
/* Computes p_result = p_left - p_right, returning borrow. Can modify in place. */
#if !asm_sub
static uECC_word_t vli_sub(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right)
static uECC_word_t vli_sub(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right)
{
uECC_word_t l_borrow = 0;
wordcount_t i;
@@ -625,7 +625,7 @@ static void muladd(uECC_word_t a, uECC_word_t b, uECC_word_t *r0, uECC_word_t *r
#endif
#if !asm_mult
static void vli_mult(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right)
static void vli_mult(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right)
{
uECC_word_t r0 = 0;
uECC_word_t r1 = 0;
@@ -708,7 +708,7 @@ static void mul2add(uECC_word_t a, uECC_word_t b, uECC_word_t *r0, uECC_word_t *
#endif
}
static void vli_square(uECC_word_t *p_result, uECC_word_t *p_left)
static void vli_square(uECC_word_t *p_result, const uECC_word_t *p_left)
{
uECC_word_t r0 = 0;
uECC_word_t r1 = 0;
@@ -750,7 +750,7 @@ static void vli_square(uECC_word_t *p_result, uECC_word_t *p_left)
/* Computes p_result = (p_left + p_right) % p_mod.
Assumes that p_left < p_mod and p_right < p_mod, p_result != p_mod. */
#if !asm_modAdd
static void vli_modAdd(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right, uECC_word_t *p_mod)
static void vli_modAdd(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right, const uECC_word_t *p_mod)
{
uECC_word_t l_carry = vli_add(p_result, p_left, p_right);
if(l_carry || vli_cmp(p_result, p_mod) >= 0)
@@ -763,7 +763,7 @@ static void vli_modAdd(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *
/* Computes p_result = (p_left - p_right) % p_mod.
Assumes that p_left < p_mod and p_right < p_mod, p_result != p_mod. */
#if !asm_modSub
static void vli_modSub(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right, uECC_word_t *p_mod)
static void vli_modSub(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right, const uECC_word_t *p_mod)
{
uECC_word_t l_borrow = vli_sub(p_result, p_left, p_right);
if(l_borrow)
@@ -782,7 +782,7 @@ static void vli_modSub(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *
#if (uECC_CURVE == uECC_secp160r1 || uECC_CURVE == uECC_secp256k1)
/* omega_mult() is defined farther below for the different curves / word sizes */
static void omega_mult(uECC_word_t * RESTRICT p_result, uECC_word_t * RESTRICT p_right);
static void omega_mult(uECC_word_t * RESTRICT p_result, const uECC_word_t * RESTRICT p_right);
/* Computes p_result = p_product % curve_p
see http://www.isys.uni-klu.ac.at/PDF/2001-0126-MT.pdf page 354
@@ -820,7 +820,7 @@ static void vli_mmod_fast(uECC_word_t *RESTRICT p_result, uECC_word_t *RESTRICT
#if uECC_CURVE == uECC_secp160r1
#if uECC_WORD_SIZE == 1
static void omega_mult(uint8_t * RESTRICT p_result, uint8_t * RESTRICT p_right)
static void omega_mult(uint8_t * RESTRICT p_result, const uint8_t * RESTRICT p_right)
{
uint8_t l_carry;
uint8_t i;
@@ -839,7 +839,7 @@ static void omega_mult(uint8_t * RESTRICT p_result, uint8_t * RESTRICT p_right)
}
}
#elif uECC_WORD_SIZE == 4
static void omega_mult(uint32_t * RESTRICT p_result, uint32_t * RESTRICT p_right)
static void omega_mult(uint32_t * RESTRICT p_result, const uint32_t * RESTRICT p_right)
{
uint32_t l_carry;
unsigned i;
@@ -1257,7 +1257,7 @@ static void vli_mmod_fast(uint64_t *RESTRICT p_result, uint64_t *RESTRICT p_prod
#elif uECC_CURVE == uECC_secp256k1
#if uECC_WORD_SIZE == 1
static void omega_mult(uint8_t * RESTRICT p_result, uint8_t * RESTRICT p_right)
static void omega_mult(uint8_t * RESTRICT p_result, const uint8_t * RESTRICT p_right)
{
/* Multiply by (2^32 + 2^9 + 2^8 + 2^7 + 2^6 + 2^4 + 1). */
uECC_word_t r0 = 0;
@@ -1290,7 +1290,7 @@ static void omega_mult(uint8_t * RESTRICT p_result, uint8_t * RESTRICT p_right)
p_result[4 + uECC_WORDS] = vli_add(p_result + 4, p_result + 4, p_right); /* add the 2^32 multiple */
}
#elif uECC_WORD_SIZE == 4
static void omega_mult(uint32_t * RESTRICT p_result, uint32_t * RESTRICT p_right)
static void omega_mult(uint32_t * RESTRICT p_result, const uint32_t * RESTRICT p_right)
{
/* Multiply by (2^9 + 2^8 + 2^7 + 2^6 + 2^4 + 1). */
uint32_t l_carry = 0;
@@ -1307,7 +1307,7 @@ static void omega_mult(uint32_t * RESTRICT p_result, uint32_t * RESTRICT p_right
p_result[1 + uECC_WORDS] = vli_add(p_result + 1, p_result + 1, p_right); /* add the 2^32 multiple */
}
#else
static void omega_mult(uint64_t * RESTRICT p_result, uint64_t * RESTRICT p_right)
static void omega_mult(uint64_t * RESTRICT p_result, const uint64_t * RESTRICT p_right)
{
uECC_word_t r0 = 0;
uECC_word_t r1 = 0;
@@ -1333,7 +1333,7 @@ static void omega_mult(uint64_t * RESTRICT p_result, uint64_t * RESTRICT p_right
#endif /* !asm_mmod_fast */
/* Computes p_result = (p_left * p_right) % curve_p. */
static void vli_modMult_fast(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right)
static void vli_modMult_fast(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right)
{
uECC_word_t l_product[2 * uECC_WORDS];
vli_mult(l_product, p_left, p_right);
@@ -1343,7 +1343,7 @@ static void vli_modMult_fast(uECC_word_t *p_result, uECC_word_t *p_left, uECC_wo
#if uECC_SQUARE_FUNC
/* Computes p_result = p_left^2 % curve_p. */
static void vli_modSquare_fast(uECC_word_t *p_result, uECC_word_t *p_left)
static void vli_modSquare_fast(uECC_word_t *p_result, const uECC_word_t *p_left)
{
uECC_word_t l_product[2 * uECC_WORDS];
vli_square(l_product, p_left);
@@ -1362,7 +1362,7 @@ static void vli_modSquare_fast(uECC_word_t *p_result, uECC_word_t *p_left)
See "From Euclid's GCD to Montgomery Multiplication to the Great Divide"
https://labs.oracle.com/techrep/2001/smli_tr-2001-95.pdf */
#if !asm_modInv
static void vli_modInv(uECC_word_t *p_result, uECC_word_t *p_input, uECC_word_t *p_mod)
static void vli_modInv(uECC_word_t *p_result, const uECC_word_t *p_input, const uECC_word_t *p_mod)
{
uECC_word_t a[uECC_WORDS], b[uECC_WORDS], u[uECC_WORDS], v[uECC_WORDS];
uECC_word_t l_carry;
@@ -1455,7 +1455,7 @@ static void vli_modInv(uECC_word_t *p_result, uECC_word_t *p_input, uECC_word_t
/* ------ Point operations ------ */
/* Returns 1 if p_point is the point at infinity, 0 otherwise. */
static cmpresult_t EccPoint_isZero(EccPoint *p_point)
static cmpresult_t EccPoint_isZero(const EccPoint *p_point)
{
return (vli_isZero(p_point->x) && vli_isZero(p_point->y));
}
@@ -1556,7 +1556,7 @@ static void EccPoint_double_jacobian(uECC_word_t * RESTRICT X1, uECC_word_t * RE
#endif
/* Modify (x1, y1) => (x1 * z^2, y1 * z^3) */
static void apply_z(uECC_word_t * RESTRICT X1, uECC_word_t * RESTRICT Y1, uECC_word_t * RESTRICT Z)
static void apply_z(uECC_word_t * RESTRICT X1, uECC_word_t * RESTRICT Y1, const uECC_word_t * RESTRICT Z)
{
uECC_word_t t1[uECC_WORDS];
@@ -1853,7 +1853,7 @@ void uECC_compress(const uint8_t p_publicKey[uECC_BYTES*2], uint8_t p_compressed
}
/* Computes p_result = x^3 + ax + b. p_result must not overlap x. */
static void curve_x_side(uECC_word_t * RESTRICT p_result, uECC_word_t * RESTRICT x)
static void curve_x_side(uECC_word_t * RESTRICT p_result, const uECC_word_t * RESTRICT x)
{
#if (uECC_CURVE == uECC_secp256k1)
vli_modSquare_fast(p_result, x); /* r = x^2 */
@@ -1937,7 +1937,7 @@ static void vli_set_n(uECC_word_t *p_dest, const uECC_word_t *p_src)
p_dest[uECC_N_WORDS-1] = p_src[uECC_N_WORDS-1];
}
static cmpresult_t vli_cmp_n(uECC_word_t *p_left, uECC_word_t *p_right)
static cmpresult_t vli_cmp_n(const uECC_word_t *p_left, const uECC_word_t *p_right)
{
if(p_left[uECC_N_WORDS-1] > p_right[uECC_N_WORDS-1])
{
@@ -1957,7 +1957,7 @@ static void vli_rshift1_n(uECC_word_t *p_vli)
p_vli[uECC_N_WORDS-1] = p_vli[uECC_N_WORDS-1] >> 1;
}
static uECC_word_t vli_add_n(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right)
static uECC_word_t vli_add_n(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right)
{
uECC_word_t l_carry = vli_add(p_result, p_left, p_right);
uECC_word_t l_sum = p_left[uECC_N_WORDS-1] + p_right[uECC_N_WORDS-1] + l_carry;
@@ -1969,7 +1969,7 @@ static uECC_word_t vli_add_n(uECC_word_t *p_result, uECC_word_t *p_left, uECC_wo
return l_carry;
}
static uECC_word_t vli_sub_n(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right)
static uECC_word_t vli_sub_n(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right)
{
uECC_word_t l_borrow = vli_sub(p_result, p_left, p_right);
uECC_word_t l_diff = p_left[uECC_N_WORDS-1] - p_right[uECC_N_WORDS-1] - l_borrow;
@@ -1994,7 +1994,7 @@ static void muladd(uECC_word_t a, uECC_word_t b, uECC_word_t *r0, uECC_word_t *r
#define muladd_exists 1
#endif
static void vli_mult_n(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right)
static void vli_mult_n(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right)
{
uECC_word_t r0 = 0;
uECC_word_t r1 = 0;
@@ -2018,7 +2018,7 @@ static void vli_mult_n(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *
p_result[uECC_N_WORDS*2 - 1] = r0;
}
static void vli_modAdd_n(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right, uECC_word_t *p_mod)
static void vli_modAdd_n(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right, const uECC_word_t *p_mod)
{
uECC_word_t l_carry = vli_add_n(p_result, p_left, p_right);
if(l_carry || vli_cmp_n(p_result, p_mod) >= 0)
@@ -2027,7 +2027,7 @@ static void vli_modAdd_n(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t
}
}
static void vli_modInv_n(uECC_word_t *p_result, uECC_word_t *p_input, uECC_word_t *p_mod)
static void vli_modInv_n(uECC_word_t *p_result, const uECC_word_t *p_input, const uECC_word_t *p_mod)
{
uECC_word_t a[uECC_N_WORDS], b[uECC_N_WORDS], u[uECC_N_WORDS], v[uECC_N_WORDS];
uECC_word_t l_carry;
@@ -2093,7 +2093,7 @@ static void vli2_rshift1_n(uECC_word_t *p_vli)
vli_rshift1_n(p_vli + uECC_N_WORDS);
}
static uECC_word_t vli2_sub_n(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right)
static uECC_word_t vli2_sub_n(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right)
{
uECC_word_t l_borrow = 0;
wordcount_t i;
@@ -2110,7 +2110,7 @@ static uECC_word_t vli2_sub_n(uECC_word_t *p_result, uECC_word_t *p_left, uECC_w
}
/* Computes p_result = (p_left * p_right) % curve_n. */
static void vli_modMult_n(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right)
static void vli_modMult_n(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right)
{
uECC_word_t l_product[2 * uECC_N_WORDS];
uECC_word_t l_modMultiple[2 * uECC_N_WORDS];
@@ -2148,7 +2148,7 @@ static void vli2_rshift1(uECC_word_t *p_vli)
vli_rshift1(p_vli + uECC_WORDS);
}
static uECC_word_t vli2_sub(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right)
static uECC_word_t vli2_sub(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right)
{
uECC_word_t l_borrow = 0;
wordcount_t i;
@@ -2165,7 +2165,7 @@ static uECC_word_t vli2_sub(uECC_word_t *p_result, uECC_word_t *p_left, uECC_wor
}
/* Computes p_result = (p_left * p_right) % curve_n. */
static void vli_modMult_n(uECC_word_t *p_result, uECC_word_t *p_left, uECC_word_t *p_right)
static void vli_modMult_n(uECC_word_t *p_result, const uECC_word_t *p_left, const uECC_word_t *p_right)
{
uECC_word_t l_product[2 * uECC_WORDS];
uECC_word_t l_modMultiple[2 * uECC_WORDS];