mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 18:57:27 +02:00
Curve448: fix 32-bit implementation
Fix small define check
This commit is contained in:
@ -600,14 +600,14 @@ void fe448_to_bytes(unsigned char* b, const int64_t* a)
|
||||
in0 += o;
|
||||
in4 += o;
|
||||
in7 -= o << 56;
|
||||
o = (int64_t)(in0 >> 56); in1 += o; t = o << 56; in0 -= t;
|
||||
o = (int64_t)(in1 >> 56); in2 += o; t = o << 56; in1 -= t;
|
||||
o = (int64_t)(in2 >> 56); in3 += o; t = o << 56; in2 -= t;
|
||||
o = (int64_t)(in3 >> 56); in4 += o; t = o << 56; in3 -= t;
|
||||
o = (int64_t)(in4 >> 56); in5 += o; t = o << 56; in4 -= t;
|
||||
o = (int64_t)(in5 >> 56); in6 += o; t = o << 56; in5 -= t;
|
||||
o = (int64_t)(in6 >> 56); in7 += o; t = o << 56; in6 -= t;
|
||||
o = (int64_t)(in7 >> 56); in0 += o;
|
||||
o = (in0 >> 56); in1 += o; t = o << 56; in0 -= t;
|
||||
o = (in1 >> 56); in2 += o; t = o << 56; in1 -= t;
|
||||
o = (in2 >> 56); in3 += o; t = o << 56; in2 -= t;
|
||||
o = (in3 >> 56); in4 += o; t = o << 56; in3 -= t;
|
||||
o = (in4 >> 56); in5 += o; t = o << 56; in4 -= t;
|
||||
o = (in5 >> 56); in6 += o; t = o << 56; in5 -= t;
|
||||
o = (in6 >> 56); in7 += o; t = o << 56; in6 -= t;
|
||||
o = (in7 >> 56); in0 += o;
|
||||
in4 += o; t = o << 56; in7 -= t;
|
||||
|
||||
/* Output as bytes */
|
||||
@ -1469,22 +1469,22 @@ void fe448_to_bytes(unsigned char* b, const int32_t* a)
|
||||
in0 += o;
|
||||
in8 += o;
|
||||
in15 -= o << 28;
|
||||
o = (int32_t)(in0 >> 28); in1 += o; t = o << 28; in0 -= t;
|
||||
o = (int32_t)(in1 >> 28); in2 += o; t = o << 28; in1 -= t;
|
||||
o = (int32_t)(in2 >> 28); in3 += o; t = o << 28; in2 -= t;
|
||||
o = (int32_t)(in3 >> 28); in4 += o; t = o << 28; in3 -= t;
|
||||
o = (int32_t)(in4 >> 28); in5 += o; t = o << 28; in4 -= t;
|
||||
o = (int32_t)(in5 >> 28); in6 += o; t = o << 28; in5 -= t;
|
||||
o = (int32_t)(in6 >> 28); in7 += o; t = o << 28; in6 -= t;
|
||||
o = (int32_t)(in7 >> 28); in8 += o; t = o << 28; in7 -= t;
|
||||
o = (int32_t)(in8 >> 28); in9 += o; t = o << 28; in8 -= t;
|
||||
o = (int32_t)(in9 >> 28); in10 += o; t = o << 28; in9 -= t;
|
||||
o = (int32_t)(in10 >> 28); in11 += o; t = o << 28; in10 -= t;
|
||||
o = (int32_t)(in11 >> 28); in12 += o; t = o << 28; in11 -= t;
|
||||
o = (int32_t)(in12 >> 28); in13 += o; t = o << 28; in12 -= t;
|
||||
o = (int32_t)(in13 >> 28); in14 += o; t = o << 28; in13 -= t;
|
||||
o = (int32_t)(in14 >> 28); in15 += o; t = o << 28; in14 -= t;
|
||||
o = (int32_t)(in15 >> 28); in0 += o;
|
||||
o = (in0 >> 28); in1 += o; t = o << 28; in0 -= t;
|
||||
o = (in1 >> 28); in2 += o; t = o << 28; in1 -= t;
|
||||
o = (in2 >> 28); in3 += o; t = o << 28; in2 -= t;
|
||||
o = (in3 >> 28); in4 += o; t = o << 28; in3 -= t;
|
||||
o = (in4 >> 28); in5 += o; t = o << 28; in4 -= t;
|
||||
o = (in5 >> 28); in6 += o; t = o << 28; in5 -= t;
|
||||
o = (in6 >> 28); in7 += o; t = o << 28; in6 -= t;
|
||||
o = (in7 >> 28); in8 += o; t = o << 28; in7 -= t;
|
||||
o = (in8 >> 28); in9 += o; t = o << 28; in8 -= t;
|
||||
o = (in9 >> 28); in10 += o; t = o << 28; in9 -= t;
|
||||
o = (in10 >> 28); in11 += o; t = o << 28; in10 -= t;
|
||||
o = (in11 >> 28); in12 += o; t = o << 28; in11 -= t;
|
||||
o = (in12 >> 28); in13 += o; t = o << 28; in12 -= t;
|
||||
o = (in13 >> 28); in14 += o; t = o << 28; in13 -= t;
|
||||
o = (in14 >> 28); in15 += o; t = o << 28; in14 -= t;
|
||||
o = (in15 >> 28); in0 += o;
|
||||
in8 += o; t = o << 28; in15 -= t;
|
||||
|
||||
/* 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 t15 = o;
|
||||
t14 -= o << 28;
|
||||
o = (int32_t)(t0 >> 28); t1 += o; t = (int64_t)o << 28; t0 -= t;
|
||||
o = (int32_t)(t1 >> 28); t2 += o; t = (int64_t)o << 28; t1 -= t;
|
||||
o = (int32_t)(t2 >> 28); t3 += o; t = (int64_t)o << 28; t2 -= t;
|
||||
o = (int32_t)(t3 >> 28); t4 += o; t = (int64_t)o << 28; t3 -= t;
|
||||
o = (int32_t)(t4 >> 28); t5 += o; t = (int64_t)o << 28; t4 -= t;
|
||||
o = (int32_t)(t5 >> 28); t6 += o; t = (int64_t)o << 28; t5 -= t;
|
||||
o = (int32_t)(t6 >> 28); t7 += o; t = (int64_t)o << 28; t6 -= t;
|
||||
o = (int32_t)(t7 >> 28); t8 += o; t = (int64_t)o << 28; t7 -= t;
|
||||
o = (int32_t)(t8 >> 28); t9 += o; t = (int64_t)o << 28; t8 -= t;
|
||||
o = (int32_t)(t9 >> 28); t10 += o; t = (int64_t)o << 28; t9 -= t;
|
||||
o = (int32_t)(t10 >> 28); t11 += o; t = (int64_t)o << 28; t10 -= t;
|
||||
o = (int32_t)(t11 >> 28); t12 += o; t = (int64_t)o << 28; t11 -= t;
|
||||
o = (int32_t)(t12 >> 28); t13 += o; t = (int64_t)o << 28; t12 -= t;
|
||||
o = (int32_t)(t13 >> 28); t14 += o; t = (int64_t)o << 28; t13 -= t;
|
||||
o = (int32_t)(t14 >> 28); t15 += o; t = (int64_t)o << 28; t14 -= t;
|
||||
o = (int32_t)(t15 >> 28); t0 += o;
|
||||
t8 += o; t = (int64_t)o << 28; t15 -= t;
|
||||
o = (t0 >> 28); t1 += o; t = o << 28; t0 -= t;
|
||||
o = (t1 >> 28); t2 += o; t = o << 28; t1 -= t;
|
||||
o = (t2 >> 28); t3 += o; t = o << 28; t2 -= t;
|
||||
o = (t3 >> 28); t4 += o; t = o << 28; t3 -= t;
|
||||
o = (t4 >> 28); t5 += o; t = o << 28; t4 -= t;
|
||||
o = (t5 >> 28); t6 += o; t = o << 28; t5 -= t;
|
||||
o = (t6 >> 28); t7 += o; t = o << 28; t6 -= t;
|
||||
o = (t7 >> 28); t8 += o; t = o << 28; t7 -= t;
|
||||
o = (t8 >> 28); t9 += o; t = o << 28; t8 -= t;
|
||||
o = (t9 >> 28); t10 += o; t = o << 28; t9 -= t;
|
||||
o = (t10 >> 28); t11 += o; t = o << 28; t10 -= t;
|
||||
o = (t11 >> 28); t12 += o; t = o << 28; t11 -= t;
|
||||
o = (t12 >> 28); t13 += o; t = o << 28; t12 -= t;
|
||||
o = (t13 >> 28); t14 += o; t = o << 28; t13 -= t;
|
||||
o = (t14 >> 28); t15 += o; t = o << 28; t14 -= t;
|
||||
o = (t15 >> 28); t0 += o;
|
||||
t8 += o; t = o << 28; t15 -= t;
|
||||
|
||||
/* Store */
|
||||
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 t15 = o;
|
||||
t14 -= o << 28;
|
||||
o = (int32_t)(t0 >> 28); t1 += o; t = (int64_t)o << 28; t0 -= t;
|
||||
o = (int32_t)(t1 >> 28); t2 += o; t = (int64_t)o << 28; t1 -= t;
|
||||
o = (int32_t)(t2 >> 28); t3 += o; t = (int64_t)o << 28; t2 -= t;
|
||||
o = (int32_t)(t3 >> 28); t4 += o; t = (int64_t)o << 28; t3 -= t;
|
||||
o = (int32_t)(t4 >> 28); t5 += o; t = (int64_t)o << 28; t4 -= t;
|
||||
o = (int32_t)(t5 >> 28); t6 += o; t = (int64_t)o << 28; t5 -= t;
|
||||
o = (int32_t)(t6 >> 28); t7 += o; t = (int64_t)o << 28; t6 -= t;
|
||||
o = (int32_t)(t7 >> 28); t8 += o; t = (int64_t)o << 28; t7 -= t;
|
||||
o = (int32_t)(t8 >> 28); t9 += o; t = (int64_t)o << 28; t8 -= t;
|
||||
o = (int32_t)(t9 >> 28); t10 += o; t = (int64_t)o << 28; t9 -= t;
|
||||
o = (int32_t)(t10 >> 28); t11 += o; t = (int64_t)o << 28; t10 -= t;
|
||||
o = (int32_t)(t11 >> 28); t12 += o; t = (int64_t)o << 28; t11 -= t;
|
||||
o = (int32_t)(t12 >> 28); t13 += o; t = (int64_t)o << 28; t12 -= t;
|
||||
o = (int32_t)(t13 >> 28); t14 += o; t = (int64_t)o << 28; t13 -= t;
|
||||
o = (int32_t)(t14 >> 28); t15 += o; t = (int64_t)o << 28; t14 -= t;
|
||||
o = (int32_t)(t15 >> 28); t0 += o;
|
||||
t8 += o; t = (int64_t)o << 28; t15 -= t;
|
||||
o = (t0 >> 28); t1 += o; t = o << 28; t0 -= t;
|
||||
o = (t1 >> 28); t2 += o; t = o << 28; t1 -= t;
|
||||
o = (t2 >> 28); t3 += o; t = o << 28; t2 -= t;
|
||||
o = (t3 >> 28); t4 += o; t = o << 28; t3 -= t;
|
||||
o = (t4 >> 28); t5 += o; t = o << 28; t4 -= t;
|
||||
o = (t5 >> 28); t6 += o; t = o << 28; t5 -= t;
|
||||
o = (t6 >> 28); t7 += o; t = o << 28; t6 -= t;
|
||||
o = (t7 >> 28); t8 += o; t = o << 28; t7 -= t;
|
||||
o = (t8 >> 28); t9 += o; t = o << 28; t8 -= t;
|
||||
o = (t9 >> 28); t10 += o; t = o << 28; t9 -= t;
|
||||
o = (t10 >> 28); t11 += o; t = o << 28; t10 -= t;
|
||||
o = (t11 >> 28); t12 += o; t = o << 28; t11 -= t;
|
||||
o = (t12 >> 28); t13 += o; t = o << 28; t12 -= t;
|
||||
o = (t13 >> 28); t14 += o; t = o << 28; t13 -= t;
|
||||
o = (t14 >> 28); t15 += o; t = o << 28; t14 -= t;
|
||||
o = (t15 >> 28); t0 += o;
|
||||
t8 += o; t = o << 28; t15 -= t;
|
||||
|
||||
/* Store */
|
||||
r[0] = (int32_t)t0;
|
||||
|
@ -40,7 +40,7 @@
|
||||
#endif
|
||||
|
||||
/* 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)
|
||||
typedef int64_t fe448;
|
||||
|
Reference in New Issue
Block a user