From f8385b0fc0215b378b61891582b0579659d0b9f4 Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Wed, 15 Nov 2017 16:24:32 +0000 Subject: Remove the curve448/decaf sub-directory Reviewed-by: Bernd Edlinger (Merged from https://github.com/openssl/openssl/pull/5105) --- crypto/ec/curve448/curve448utils.h | 102 +++++++++++++++++++++++++++++++++++++ crypto/ec/curve448/decaf/common.h | 102 ------------------------------------- crypto/ec/curve448/point_448.h | 2 +- crypto/ec/curve448/shake.h | 2 +- crypto/ec/curve448/utils.c | 2 +- crypto/ec/curve448/word.h | 2 +- 6 files changed, 106 insertions(+), 106 deletions(-) create mode 100644 crypto/ec/curve448/curve448utils.h delete mode 100644 crypto/ec/curve448/decaf/common.h diff --git a/crypto/ec/curve448/curve448utils.h b/crypto/ec/curve448/curve448utils.h new file mode 100644 index 0000000000..71f8795e6e --- /dev/null +++ b/crypto/ec/curve448/curve448utils.h @@ -0,0 +1,102 @@ +/** + * @file decaf/common.h + * @author Mike Hamburg + * + * @copyright + * Copyright (c) 2015 Cryptography Research, Inc. \n + * Released under the MIT License. See LICENSE.txt for license information. + * + * @brief Common utility headers for Decaf library. + */ + +#ifndef __DECAF_COMMON_H__ +#define __DECAF_COMMON_H__ 1 + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Goldilocks' build flags default to hidden and stripping executables. */ +/** @cond internal */ +#if defined(DOXYGEN) && !defined(__attribute__) +#define __attribute__((x)) +#endif +#define DECAF_API_VIS __attribute__((visibility("default"))) +#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. + * + * Somewhat tricky. This could be decided separately per platform. However, + * the structs do need to be all the same size and alignment on a given + * platform to support dynamic linking, since even if you header was built + * with eg arch_neon, you might end up linking a library built with arch_arm32. + */ +#ifndef DECAF_WORD_BITS + #if (defined(__ILP64__) || defined(__amd64__) || defined(__x86_64__) || (((__UINT_FAST32_MAX__)>>30)>>30)) + #define DECAF_WORD_BITS 64 /**< The number of bits in a word */ + #else + #define DECAF_WORD_BITS 32 /**< The number of bits in a word */ + #endif +#endif + +#if DECAF_WORD_BITS == 64 +typedef uint64_t decaf_word_t; /**< Word size for internal computations */ +typedef int64_t decaf_sword_t; /**< Signed word size for internal computations */ +typedef uint64_t decaf_bool_t; /**< "Boolean" type, will be set to all-zero or all-one (i.e. -1u) */ +typedef __uint128_t decaf_dword_t; /**< Double-word size for internal computations */ +typedef __int128_t decaf_dsword_t; /**< Signed double-word size for internal computations */ +#elif DECAF_WORD_BITS == 32 /**< The number of bits in a word */ +typedef uint32_t decaf_word_t; /**< Word size for internal computations */ +typedef int32_t decaf_sword_t; /**< Signed word size for internal computations */ +typedef uint32_t decaf_bool_t; /**< "Boolean" type, will be set to all-zero or all-one (i.e. -1u) */ +typedef uint64_t decaf_dword_t; /**< Double-word size for internal computations */ +typedef int64_t decaf_dsword_t; /**< Signed double-word size for internal computations */ +#else +#error "Only supporting DECAF_WORD_BITS = 32 or 64 for now" +#endif + +/** DECAF_TRUE = -1 so that DECAF_TRUE & x = x */ +static const decaf_bool_t DECAF_TRUE = -(decaf_bool_t)1; + +/** DECAF_FALSE = 0 so that DECAF_FALSE & x = 0 */ +static const decaf_bool_t DECAF_FALSE = 0; + +/** Another boolean type used to indicate success or failure. */ +typedef enum { + DECAF_SUCCESS = -1, /**< The operation succeeded. */ + DECAF_FAILURE = 0 /**< The operation failed. */ +} decaf_error_t; + + +/** Return success if x is true */ +static DECAF_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 +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; +} + +/** Overwrite data with zeros. Uses memset_s if available. */ +void decaf_bzero ( + void *data, + size_t size +) DECAF_NONNULL DECAF_API_VIS; + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* __DECAF_COMMON_H__ */ diff --git a/crypto/ec/curve448/decaf/common.h b/crypto/ec/curve448/decaf/common.h deleted file mode 100644 index 71f8795e6e..0000000000 --- a/crypto/ec/curve448/decaf/common.h +++ /dev/null @@ -1,102 +0,0 @@ -/** - * @file decaf/common.h - * @author Mike Hamburg - * - * @copyright - * Copyright (c) 2015 Cryptography Research, Inc. \n - * Released under the MIT License. See LICENSE.txt for license information. - * - * @brief Common utility headers for Decaf library. - */ - -#ifndef __DECAF_COMMON_H__ -#define __DECAF_COMMON_H__ 1 - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Goldilocks' build flags default to hidden and stripping executables. */ -/** @cond internal */ -#if defined(DOXYGEN) && !defined(__attribute__) -#define __attribute__((x)) -#endif -#define DECAF_API_VIS __attribute__((visibility("default"))) -#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. - * - * Somewhat tricky. This could be decided separately per platform. However, - * the structs do need to be all the same size and alignment on a given - * platform to support dynamic linking, since even if you header was built - * with eg arch_neon, you might end up linking a library built with arch_arm32. - */ -#ifndef DECAF_WORD_BITS - #if (defined(__ILP64__) || defined(__amd64__) || defined(__x86_64__) || (((__UINT_FAST32_MAX__)>>30)>>30)) - #define DECAF_WORD_BITS 64 /**< The number of bits in a word */ - #else - #define DECAF_WORD_BITS 32 /**< The number of bits in a word */ - #endif -#endif - -#if DECAF_WORD_BITS == 64 -typedef uint64_t decaf_word_t; /**< Word size for internal computations */ -typedef int64_t decaf_sword_t; /**< Signed word size for internal computations */ -typedef uint64_t decaf_bool_t; /**< "Boolean" type, will be set to all-zero or all-one (i.e. -1u) */ -typedef __uint128_t decaf_dword_t; /**< Double-word size for internal computations */ -typedef __int128_t decaf_dsword_t; /**< Signed double-word size for internal computations */ -#elif DECAF_WORD_BITS == 32 /**< The number of bits in a word */ -typedef uint32_t decaf_word_t; /**< Word size for internal computations */ -typedef int32_t decaf_sword_t; /**< Signed word size for internal computations */ -typedef uint32_t decaf_bool_t; /**< "Boolean" type, will be set to all-zero or all-one (i.e. -1u) */ -typedef uint64_t decaf_dword_t; /**< Double-word size for internal computations */ -typedef int64_t decaf_dsword_t; /**< Signed double-word size for internal computations */ -#else -#error "Only supporting DECAF_WORD_BITS = 32 or 64 for now" -#endif - -/** DECAF_TRUE = -1 so that DECAF_TRUE & x = x */ -static const decaf_bool_t DECAF_TRUE = -(decaf_bool_t)1; - -/** DECAF_FALSE = 0 so that DECAF_FALSE & x = 0 */ -static const decaf_bool_t DECAF_FALSE = 0; - -/** Another boolean type used to indicate success or failure. */ -typedef enum { - DECAF_SUCCESS = -1, /**< The operation succeeded. */ - DECAF_FAILURE = 0 /**< The operation failed. */ -} decaf_error_t; - - -/** Return success if x is true */ -static DECAF_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 -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; -} - -/** Overwrite data with zeros. Uses memset_s if available. */ -void decaf_bzero ( - void *data, - size_t size -) DECAF_NONNULL DECAF_API_VIS; - - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* __DECAF_COMMON_H__ */ diff --git a/crypto/ec/curve448/point_448.h b/crypto/ec/curve448/point_448.h index 1757129e84..066bd70c27 100644 --- a/crypto/ec/curve448/point_448.h +++ b/crypto/ec/curve448/point_448.h @@ -15,7 +15,7 @@ #ifndef __DECAF_POINT_448_H__ #define __DECAF_POINT_448_H__ 1 -#include +#include "curve448utils.h" #ifdef __cplusplus extern "C" { diff --git a/crypto/ec/curve448/shake.h b/crypto/ec/curve448/shake.h index ae125b923a..4a9ae5d303 100644 --- a/crypto/ec/curve448/shake.h +++ b/crypto/ec/curve448/shake.h @@ -15,7 +15,7 @@ #include #include /* for NULL */ -#include +#include "curve448utils.h" #ifdef __cplusplus extern "C" { diff --git a/crypto/ec/curve448/utils.c b/crypto/ec/curve448/utils.c index 80a6ea5b5b..b28a164980 100644 --- a/crypto/ec/curve448/utils.c +++ b/crypto/ec/curve448/utils.c @@ -8,7 +8,7 @@ * @brief Decaf utility functions. */ -#include +#include "curve448utils.h" void decaf_bzero ( void *s, diff --git a/crypto/ec/curve448/word.h b/crypto/ec/curve448/word.h index 7c7644ad2c..b62487797d 100644 --- a/crypto/ec/curve448/word.h +++ b/crypto/ec/curve448/word.h @@ -17,7 +17,7 @@ extern int posix_memalign(void **, size_t, size_t); #include #include "arch_intrinsics.h" -#include +#include "curve448utils.h" #ifndef _BSD_SOURCE #define _BSD_SOURCE 1 -- cgit v1.2.3