X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=crypto%2Fec%2Fcurve448%2Farch_32%2Farch_intrinsics.h;h=7a54903ac95aa59e4a01a15714af69b8f943cc41;hp=4e6aac2889e9347e688726be47f9f1eb26b059f7;hb=ae4186b00487762f581b2276ba83e5214e0e7ee1;hpb=1308e022e1a62214b9e7f8ec92ca7045e70af3a2 diff --git a/crypto/ec/curve448/arch_32/arch_intrinsics.h b/crypto/ec/curve448/arch_32/arch_intrinsics.h index 4e6aac2889..7a54903ac9 100644 --- a/crypto/ec/curve448/arch_32/arch_intrinsics.h +++ b/crypto/ec/curve448/arch_32/arch_intrinsics.h @@ -1,8 +1,8 @@ /* - * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2016 Cryptography Research, Inc. * - * Licensed under the OpenSSL license (the "License"). You may not use + * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy * in the file LICENSE in the source distribution or at * https://www.openssl.org/source/license.html @@ -10,21 +10,18 @@ * Originally written by Mike Hamburg */ -#ifndef __ARCH_ARCH_32_ARCH_INTRINSICS_H__ -#define __ARCH_ARCH_32_ARCH_INTRINSICS_H__ +#ifndef OSSL_CRYPTO_EC_CURVE448_ARCH_32_INTRINSICS_H +# define OSSL_CRYPTO_EC_CURVE448_ARCH_32_INTRINSICS_H -#define ARCH_WORD_BITS 32 +#include "internal/constant_time.h" -static __inline__ __attribute((always_inline,unused)) -uint32_t word_is_zero(uint32_t a) { - /* let's hope the compiler isn't clever enough to optimize this. */ - return (((uint64_t)a)-1)>>32; -} +# define ARCH_WORD_BITS 32 + +#define word_is_zero(a) constant_time_is_zero_32(a) -static __inline__ __attribute((always_inline,unused)) -uint64_t widemul(uint32_t a, uint32_t b) { +static ossl_inline uint64_t widemul(uint32_t a, uint32_t b) +{ return ((uint64_t)a) * b; } -#endif /* __ARCH_ARM_32_ARCH_INTRINSICS_H__ */ - +#endif /* OSSL_CRYPTO_EC_CURVE448_ARCH_32_INTRINSICS_H */