diff --git a/crypto/ec/curve448/curve448utils.h b/crypto/ec/curve448/curve448utils.h index 1ef3d736726598e66a3bceada80b6b9c8a4f6d9c..7997cfd6f4b778f1e80bb462bc7e5be1f04a2478 100644 --- a/crypto/ec/curve448/curve448utils.h +++ b/crypto/ec/curve448/curve448utils.h @@ -14,6 +14,7 @@ #include #include +#include #ifdef __cplusplus extern "C" { @@ -28,7 +29,6 @@ extern "C" { #define DECAF_NOINLINE __attribute__((noinline)) #define DECAF_WARN_UNUSED __attribute__((warn_unused_result)) #define DECAF_NONNULL __attribute__((nonnull)) -#define DECAF_INLINE inline __attribute__((always_inline,unused)) /** @endcond */ /* Internal word types. @@ -76,13 +76,13 @@ typedef enum { /** Return success if x is true */ -static DECAF_INLINE decaf_error_t +static ossl_inline decaf_error_t decaf_succeed_if(decaf_bool_t x) { return (decaf_error_t)x; } /** Return DECAF_TRUE iff x == DECAF_SUCCESS */ -static DECAF_INLINE decaf_bool_t +static ossl_inline decaf_bool_t decaf_successful(decaf_error_t e) { decaf_dword_t w = ((decaf_word_t)e) ^ ((decaf_word_t)DECAF_SUCCESS); return (w-1)>>DECAF_WORD_BITS; diff --git a/crypto/ec/curve448/decaf.c b/crypto/ec/curve448/decaf.c index 212fa84804c81e452945a53b87f3e81a4a580260..135b2a7a58758379d7947ba60fd455b230d923a6 100644 --- a/crypto/ec/curve448/decaf.c +++ b/crypto/ec/curve448/decaf.c @@ -107,7 +107,7 @@ void curve448_point_double(curve448_point_t p, const curve448_point_t q) { } /* Operations on [p]niels */ -static DECAF_INLINE void +static ossl_inline void cond_neg_niels ( niels_t n, mask_t neg @@ -247,7 +247,7 @@ decaf_bool_t curve448_point_valid ( return mask_to_bool(out); } -static DECAF_INLINE void +static ossl_inline void constant_time_lookup_niels ( niels_s *__restrict__ ni, const niels_t *table, diff --git a/crypto/ec/curve448/field.h b/crypto/ec/curve448/field.h index 736495b5401c6f1fcb4eed571b1d51f2d70fe085..672ee3623e107d5196044ed3952203b214222401 100644 --- a/crypto/ec/curve448/field.h +++ b/crypto/ec/curve448/field.h @@ -15,7 +15,7 @@ #include /** Square x, n times. */ -static DECAF_INLINE void gf_sqrn ( +static ossl_inline void gf_sqrn ( gf_s *__restrict__ y, const gf x, int n @@ -80,11 +80,11 @@ gf_cond_swap(gf x, gf_s *__restrict__ y, mask_t swap) { constant_time_cond_swap(x,y,sizeof(gf_s),swap); } -static DECAF_INLINE void gf_mul_qnr(gf_s *__restrict__ out, const gf x) { +static ossl_inline void gf_mul_qnr(gf_s *__restrict__ out, const gf x) { gf_sub(out,ZERO,x); } -static DECAF_INLINE void gf_div_qnr(gf_s *__restrict__ out, const gf x) { +static ossl_inline void gf_div_qnr(gf_s *__restrict__ out, const gf x) { gf_sub(out,ZERO,x); } diff --git a/crypto/ec/curve448/scalar.c b/crypto/ec/curve448/scalar.c index 7509a5fb7683d4e3c2f0d3717306fc59bdcc359a..e3cb22d76455fda98db654df9005f75e7a823f2b 100644 --- a/crypto/ec/curve448/scalar.c +++ b/crypto/ec/curve448/scalar.c @@ -126,7 +126,7 @@ void curve448_scalar_add ( sc_subx(out, out->limb, sc_p, sc_p, chain); } -static DECAF_INLINE void scalar_decode_short ( +static ossl_inline void scalar_decode_short ( curve448_scalar_t s, const unsigned char *ser, unsigned int nbytes diff --git a/crypto/ec/curve448/word.h b/crypto/ec/curve448/word.h index 22ffe8dd0795e3bdf4b9dc23f534713779a32035..39ea949861d1ddc2982c48b83b7fa2f0371995fa 100644 --- a/crypto/ec/curve448/word.h +++ b/crypto/ec/curve448/word.h @@ -96,7 +96,7 @@ typedef uint64x4_t uint64xn_t; typedef uint32x8_t uint32xn_t; - static DECAF_INLINE big_register_t + static ossl_inline big_register_t br_set_to_mask(mask_t x) { uint32_t y = (uint32_t)x; big_register_t ret = {y,y,y,y,y,y,y,y}; @@ -108,7 +108,7 @@ typedef uint64x2_t uint64xn_t; typedef uint32x4_t uint32xn_t; - static DECAF_INLINE big_register_t + static ossl_inline big_register_t br_set_to_mask(mask_t x) { uint32_t y = x; big_register_t ret = {y,y,y,y}; @@ -120,7 +120,7 @@ typedef uint64x2_t uint64xn_t; typedef uint32x4_t uint32xn_t; - static DECAF_INLINE big_register_t + static ossl_inline big_register_t br_set_to_mask(mask_t x) { return vdupq_n_u32(x); } @@ -129,7 +129,7 @@ typedef uint64_t big_register_t, uint64xn_t; typedef uint32_t uint32xn_t; - static DECAF_INLINE big_register_t + static ossl_inline big_register_t br_set_to_mask(mask_t x) { return (big_register_t)x; } @@ -139,25 +139,25 @@ typedef uint32_t uint32xn_t; typedef uint32_t big_register_t; - static DECAF_INLINE big_register_t + static ossl_inline big_register_t br_set_to_mask(mask_t x) { return (big_register_t)x; } #endif #if __AVX2__ - static DECAF_INLINE big_register_t + static ossl_inline big_register_t br_is_zero(big_register_t x) { return (big_register_t)(x == br_set_to_mask(0)); } #elif __SSE2__ - static DECAF_INLINE big_register_t + static ossl_inline big_register_t br_is_zero(big_register_t x) { return (big_register_t)_mm_cmpeq_epi32((__m128i)x, _mm_setzero_si128()); //return (big_register_t)(x == br_set_to_mask(0)); } #elif __ARM_NEON__ - static DECAF_INLINE big_register_t + static ossl_inline big_register_t br_is_zero(big_register_t x) { return vceqq_u32(x,x^x); } @@ -189,11 +189,11 @@ * On the third hand, we have success vs boolean types, but that's handled in * common.h: it converts between decaf_bool_t and decaf_error_t. */ -static DECAF_INLINE decaf_bool_t mask_to_bool (mask_t m) { +static ossl_inline decaf_bool_t mask_to_bool (mask_t m) { return (decaf_sword_t)(sword_t)m; } -static DECAF_INLINE mask_t bool_to_mask (decaf_bool_t m) { +static ossl_inline mask_t bool_to_mask (decaf_bool_t m) { /* On most arches this will be optimized to a simple cast. */ mask_t ret = 0; unsigned int limit = sizeof(decaf_bool_t)/sizeof(mask_t); @@ -204,7 +204,7 @@ static DECAF_INLINE mask_t bool_to_mask (decaf_bool_t m) { return ret; } -static DECAF_INLINE void ignore_result ( decaf_bool_t boo ) { +static ossl_inline void ignore_result ( decaf_bool_t boo ) { (void)boo; }