Curve448: fix 32-bit implementation

Fix small define check
This commit is contained in:
Sean Parkinson
2020-08-26 10:41:38 +10:00
parent d2802f2d15
commit 91c131fbd8
2 changed files with 59 additions and 59 deletions

View File

@ -600,14 +600,14 @@ void fe448_to_bytes(unsigned char* b, const int64_t* a)
in0 += o; in0 += o;
in4 += o; in4 += o;
in7 -= o << 56; in7 -= o << 56;
o = (int64_t)(in0 >> 56); in1 += o; t = o << 56; in0 -= t; o = (in0 >> 56); in1 += o; t = o << 56; in0 -= t;
o = (int64_t)(in1 >> 56); in2 += o; t = o << 56; in1 -= t; o = (in1 >> 56); in2 += o; t = o << 56; in1 -= t;
o = (int64_t)(in2 >> 56); in3 += o; t = o << 56; in2 -= t; o = (in2 >> 56); in3 += o; t = o << 56; in2 -= t;
o = (int64_t)(in3 >> 56); in4 += o; t = o << 56; in3 -= t; o = (in3 >> 56); in4 += o; t = o << 56; in3 -= t;
o = (int64_t)(in4 >> 56); in5 += o; t = o << 56; in4 -= t; o = (in4 >> 56); in5 += o; t = o << 56; in4 -= t;
o = (int64_t)(in5 >> 56); in6 += o; t = o << 56; in5 -= t; o = (in5 >> 56); in6 += o; t = o << 56; in5 -= t;
o = (int64_t)(in6 >> 56); in7 += o; t = o << 56; in6 -= t; o = (in6 >> 56); in7 += o; t = o << 56; in6 -= t;
o = (int64_t)(in7 >> 56); in0 += o; o = (in7 >> 56); in0 += o;
in4 += o; t = o << 56; in7 -= t; in4 += o; t = o << 56; in7 -= t;
/* Output as bytes */ /* Output as bytes */
@ -1469,22 +1469,22 @@ void fe448_to_bytes(unsigned char* b, const int32_t* a)
in0 += o; in0 += o;
in8 += o; in8 += o;
in15 -= o << 28; in15 -= o << 28;
o = (int32_t)(in0 >> 28); in1 += o; t = o << 28; in0 -= t; o = (in0 >> 28); in1 += o; t = o << 28; in0 -= t;
o = (int32_t)(in1 >> 28); in2 += o; t = o << 28; in1 -= t; o = (in1 >> 28); in2 += o; t = o << 28; in1 -= t;
o = (int32_t)(in2 >> 28); in3 += o; t = o << 28; in2 -= t; o = (in2 >> 28); in3 += o; t = o << 28; in2 -= t;
o = (int32_t)(in3 >> 28); in4 += o; t = o << 28; in3 -= t; o = (in3 >> 28); in4 += o; t = o << 28; in3 -= t;
o = (int32_t)(in4 >> 28); in5 += o; t = o << 28; in4 -= t; o = (in4 >> 28); in5 += o; t = o << 28; in4 -= t;
o = (int32_t)(in5 >> 28); in6 += o; t = o << 28; in5 -= t; o = (in5 >> 28); in6 += o; t = o << 28; in5 -= t;
o = (int32_t)(in6 >> 28); in7 += o; t = o << 28; in6 -= t; o = (in6 >> 28); in7 += o; t = o << 28; in6 -= t;
o = (int32_t)(in7 >> 28); in8 += o; t = o << 28; in7 -= t; o = (in7 >> 28); in8 += o; t = o << 28; in7 -= t;
o = (int32_t)(in8 >> 28); in9 += o; t = o << 28; in8 -= t; o = (in8 >> 28); in9 += o; t = o << 28; in8 -= t;
o = (int32_t)(in9 >> 28); in10 += o; t = o << 28; in9 -= t; o = (in9 >> 28); in10 += o; t = o << 28; in9 -= t;
o = (int32_t)(in10 >> 28); in11 += o; t = o << 28; in10 -= t; o = (in10 >> 28); in11 += o; t = o << 28; in10 -= t;
o = (int32_t)(in11 >> 28); in12 += o; t = o << 28; in11 -= t; o = (in11 >> 28); in12 += o; t = o << 28; in11 -= t;
o = (int32_t)(in12 >> 28); in13 += o; t = o << 28; in12 -= t; o = (in12 >> 28); in13 += o; t = o << 28; in12 -= t;
o = (int32_t)(in13 >> 28); in14 += o; t = o << 28; in13 -= t; o = (in13 >> 28); in14 += o; t = o << 28; in13 -= t;
o = (int32_t)(in14 >> 28); in15 += o; t = o << 28; in14 -= t; o = (in14 >> 28); in15 += o; t = o << 28; in14 -= t;
o = (int32_t)(in15 >> 28); in0 += o; o = (in15 >> 28); in0 += o;
in8 += o; t = o << 28; in15 -= t; in8 += o; t = o << 28; in15 -= t;
/* Output as bytes */ /* Output as bytes */
@ -1908,23 +1908,23 @@ static WC_INLINE void fe448_mul_8(int32_t* r, const int32_t* a, const int32_t* b
int64_t o = t14 >> 28; int64_t o = t14 >> 28;
int64_t t15 = o; int64_t t15 = o;
t14 -= o << 28; t14 -= o << 28;
o = (int32_t)(t0 >> 28); t1 += o; t = (int64_t)o << 28; t0 -= t; o = (t0 >> 28); t1 += o; t = o << 28; t0 -= t;
o = (int32_t)(t1 >> 28); t2 += o; t = (int64_t)o << 28; t1 -= t; o = (t1 >> 28); t2 += o; t = o << 28; t1 -= t;
o = (int32_t)(t2 >> 28); t3 += o; t = (int64_t)o << 28; t2 -= t; o = (t2 >> 28); t3 += o; t = o << 28; t2 -= t;
o = (int32_t)(t3 >> 28); t4 += o; t = (int64_t)o << 28; t3 -= t; o = (t3 >> 28); t4 += o; t = o << 28; t3 -= t;
o = (int32_t)(t4 >> 28); t5 += o; t = (int64_t)o << 28; t4 -= t; o = (t4 >> 28); t5 += o; t = o << 28; t4 -= t;
o = (int32_t)(t5 >> 28); t6 += o; t = (int64_t)o << 28; t5 -= t; o = (t5 >> 28); t6 += o; t = o << 28; t5 -= t;
o = (int32_t)(t6 >> 28); t7 += o; t = (int64_t)o << 28; t6 -= t; o = (t6 >> 28); t7 += o; t = o << 28; t6 -= t;
o = (int32_t)(t7 >> 28); t8 += o; t = (int64_t)o << 28; t7 -= t; o = (t7 >> 28); t8 += o; t = o << 28; t7 -= t;
o = (int32_t)(t8 >> 28); t9 += o; t = (int64_t)o << 28; t8 -= t; o = (t8 >> 28); t9 += o; t = o << 28; t8 -= t;
o = (int32_t)(t9 >> 28); t10 += o; t = (int64_t)o << 28; t9 -= t; o = (t9 >> 28); t10 += o; t = o << 28; t9 -= t;
o = (int32_t)(t10 >> 28); t11 += o; t = (int64_t)o << 28; t10 -= t; o = (t10 >> 28); t11 += o; t = o << 28; t10 -= t;
o = (int32_t)(t11 >> 28); t12 += o; t = (int64_t)o << 28; t11 -= t; o = (t11 >> 28); t12 += o; t = o << 28; t11 -= t;
o = (int32_t)(t12 >> 28); t13 += o; t = (int64_t)o << 28; t12 -= t; o = (t12 >> 28); t13 += o; t = o << 28; t12 -= t;
o = (int32_t)(t13 >> 28); t14 += o; t = (int64_t)o << 28; t13 -= t; o = (t13 >> 28); t14 += o; t = o << 28; t13 -= t;
o = (int32_t)(t14 >> 28); t15 += o; t = (int64_t)o << 28; t14 -= t; o = (t14 >> 28); t15 += o; t = o << 28; t14 -= t;
o = (int32_t)(t15 >> 28); t0 += o; o = (t15 >> 28); t0 += o;
t8 += o; t = (int64_t)o << 28; t15 -= t; t8 += o; t = o << 28; t15 -= t;
/* Store */ /* Store */
r[0] = (int32_t)t0; r[0] = (int32_t)t0;
@ -2053,23 +2053,23 @@ static WC_INLINE void fe448_sqr_8(int32_t* r, const int32_t* a)
int64_t o = t14 >> 28; int64_t o = t14 >> 28;
int64_t t15 = o; int64_t t15 = o;
t14 -= o << 28; t14 -= o << 28;
o = (int32_t)(t0 >> 28); t1 += o; t = (int64_t)o << 28; t0 -= t; o = (t0 >> 28); t1 += o; t = o << 28; t0 -= t;
o = (int32_t)(t1 >> 28); t2 += o; t = (int64_t)o << 28; t1 -= t; o = (t1 >> 28); t2 += o; t = o << 28; t1 -= t;
o = (int32_t)(t2 >> 28); t3 += o; t = (int64_t)o << 28; t2 -= t; o = (t2 >> 28); t3 += o; t = o << 28; t2 -= t;
o = (int32_t)(t3 >> 28); t4 += o; t = (int64_t)o << 28; t3 -= t; o = (t3 >> 28); t4 += o; t = o << 28; t3 -= t;
o = (int32_t)(t4 >> 28); t5 += o; t = (int64_t)o << 28; t4 -= t; o = (t4 >> 28); t5 += o; t = o << 28; t4 -= t;
o = (int32_t)(t5 >> 28); t6 += o; t = (int64_t)o << 28; t5 -= t; o = (t5 >> 28); t6 += o; t = o << 28; t5 -= t;
o = (int32_t)(t6 >> 28); t7 += o; t = (int64_t)o << 28; t6 -= t; o = (t6 >> 28); t7 += o; t = o << 28; t6 -= t;
o = (int32_t)(t7 >> 28); t8 += o; t = (int64_t)o << 28; t7 -= t; o = (t7 >> 28); t8 += o; t = o << 28; t7 -= t;
o = (int32_t)(t8 >> 28); t9 += o; t = (int64_t)o << 28; t8 -= t; o = (t8 >> 28); t9 += o; t = o << 28; t8 -= t;
o = (int32_t)(t9 >> 28); t10 += o; t = (int64_t)o << 28; t9 -= t; o = (t9 >> 28); t10 += o; t = o << 28; t9 -= t;
o = (int32_t)(t10 >> 28); t11 += o; t = (int64_t)o << 28; t10 -= t; o = (t10 >> 28); t11 += o; t = o << 28; t10 -= t;
o = (int32_t)(t11 >> 28); t12 += o; t = (int64_t)o << 28; t11 -= t; o = (t11 >> 28); t12 += o; t = o << 28; t11 -= t;
o = (int32_t)(t12 >> 28); t13 += o; t = (int64_t)o << 28; t12 -= t; o = (t12 >> 28); t13 += o; t = o << 28; t12 -= t;
o = (int32_t)(t13 >> 28); t14 += o; t = (int64_t)o << 28; t13 -= t; o = (t13 >> 28); t14 += o; t = o << 28; t13 -= t;
o = (int32_t)(t14 >> 28); t15 += o; t = (int64_t)o << 28; t14 -= t; o = (t14 >> 28); t15 += o; t = o << 28; t14 -= t;
o = (int32_t)(t15 >> 28); t0 += o; o = (t15 >> 28); t0 += o;
t8 += o; t = (int64_t)o << 28; t15 -= t; t8 += o; t = o << 28; t15 -= t;
/* Store */ /* Store */
r[0] = (int32_t)t0; r[0] = (int32_t)t0;

View File

@ -40,7 +40,7 @@
#endif #endif
/* default to be faster but take more memory */ /* default to be faster but take more memory */
#if !defined(CURVE448_SMALL) || !defined(ED448_SMALL) #if !defined(CURVE448_SMALL) && !defined(ED448_SMALL)
#if defined(CURVED448_128BIT) #if defined(CURVED448_128BIT)
typedef int64_t fe448; typedef int64_t fe448;