|
@@ -0,0 +1,119 @@
|
|
|
+From 608738ccad9ac3743ccd535bde1e84f401e6176f Mon Sep 17 00:00:00 2001
|
|
|
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
|
+Date: Sat, 20 Jun 2020 12:50:40 +0200
|
|
|
+Subject: [PATCH] sha2/sha2.c: fix build on big endian
|
|
|
+
|
|
|
+Build is broken since 865ec9ba1d44e629c1107c299aebd20e901a19ff because
|
|
|
+tmp is undefined in put32be and put64be:
|
|
|
+
|
|
|
+sha2.c: In function 'put32be':
|
|
|
+sha2.c:177:34: error: 'tmp' undeclared (first use in this function)
|
|
|
+ MEMCPY_BCOPY(data, &val, sizeof(tmp));
|
|
|
+ ^~~
|
|
|
+
|
|
|
+Fix this error by replacing tmp by val
|
|
|
+
|
|
|
+Moreover, move MEMCPY_BCOPY before its usage or linking step will fail
|
|
|
+
|
|
|
+Fixes:
|
|
|
+ - http://autobuild.buildroot.org/results/e8704e02fdede7b63e22da552292977b23380b32
|
|
|
+
|
|
|
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
|
+[Upstream: https://github.com/eclipse/tinydtls/commit/78a2d32f47165eda10cbf8f5cf79f86fa1c4872b]
|
|
|
+---
|
|
|
+ sha2/sha2.c | 58 ++++++++++++++++++++++++++---------------------------
|
|
|
+ 1 file changed, 29 insertions(+), 29 deletions(-)
|
|
|
+
|
|
|
+diff --git a/sha2/sha2.c b/sha2/sha2.c
|
|
|
+index cb6d90f..5c794c6 100644
|
|
|
+--- a/sha2/sha2.c
|
|
|
++++ b/sha2/sha2.c
|
|
|
+@@ -114,6 +114,33 @@
|
|
|
+ #error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN
|
|
|
+ #endif
|
|
|
+
|
|
|
++/*
|
|
|
++ * Macros for copying blocks of memory and for zeroing out ranges
|
|
|
++ * of memory. Using these macros makes it easy to switch from
|
|
|
++ * using memset()/memcpy() and using bzero()/bcopy().
|
|
|
++ *
|
|
|
++ * Please define either SHA2_USE_MEMSET_MEMCPY or define
|
|
|
++ * SHA2_USE_BZERO_BCOPY depending on which function set you
|
|
|
++ * choose to use:
|
|
|
++ */
|
|
|
++#if !defined(SHA2_USE_MEMSET_MEMCPY) && !defined(SHA2_USE_BZERO_BCOPY)
|
|
|
++/* Default to memset()/memcpy() if no option is specified */
|
|
|
++#define SHA2_USE_MEMSET_MEMCPY 1
|
|
|
++#endif
|
|
|
++#if defined(SHA2_USE_MEMSET_MEMCPY) && defined(SHA2_USE_BZERO_BCOPY)
|
|
|
++/* Abort with an error if BOTH options are defined */
|
|
|
++#error Define either SHA2_USE_MEMSET_MEMCPY or SHA2_USE_BZERO_BCOPY, not both!
|
|
|
++#endif
|
|
|
++
|
|
|
++#ifdef SHA2_USE_MEMSET_MEMCPY
|
|
|
++#define MEMSET_BZERO(p,l) memset((p), 0, (l))
|
|
|
++#define MEMCPY_BCOPY(d,s,l) memcpy((d), (s), (l))
|
|
|
++#endif
|
|
|
++#ifdef SHA2_USE_BZERO_BCOPY
|
|
|
++#define MEMSET_BZERO(p,l) bzero((p), (l))
|
|
|
++#define MEMCPY_BCOPY(d,s,l) bcopy((s), (d), (l))
|
|
|
++#endif
|
|
|
++
|
|
|
+ /*
|
|
|
+ * Define the followingsha2_* types to types of the correct length on
|
|
|
+ * the native archtecture. Most BSD systems and Linux define u_intXX_t
|
|
|
+@@ -174,7 +201,7 @@ static inline void put32be(sha2_byte* data, sha2_word32 val)
|
|
|
+ data[1] = val; val >>= 8;
|
|
|
+ data[0] = val;
|
|
|
+ #else /* BYTE_ORDER != LITTLE_ENDIAN */
|
|
|
+- MEMCPY_BCOPY(data, &val, sizeof(tmp));
|
|
|
++ MEMCPY_BCOPY(data, &val, sizeof(val));
|
|
|
+ #endif /* BYTE_ORDER != LITTLE_ENDIAN */
|
|
|
+ }
|
|
|
+
|
|
|
+@@ -209,7 +236,7 @@ static inline void put64be(sha2_byte* data, sha2_word64 val)
|
|
|
+ data[1] = val; val >>= 8;
|
|
|
+ data[0] = val;
|
|
|
+ #else /* BYTE_ORDER != LITTLE_ENDIAN */
|
|
|
+- MEMCPY_BCOPY(data, &val, sizeof(tmp));
|
|
|
++ MEMCPY_BCOPY(data, &val, sizeof(val));
|
|
|
+ #endif /* BYTE_ORDER != LITTLE_ENDIAN */
|
|
|
+ }
|
|
|
+
|
|
|
+@@ -225,33 +252,6 @@ static inline void put64be(sha2_byte* data, sha2_word64 val)
|
|
|
+ } \
|
|
|
+ }
|
|
|
+
|
|
|
+-/*
|
|
|
+- * Macros for copying blocks of memory and for zeroing out ranges
|
|
|
+- * of memory. Using these macros makes it easy to switch from
|
|
|
+- * using memset()/memcpy() and using bzero()/bcopy().
|
|
|
+- *
|
|
|
+- * Please define either SHA2_USE_MEMSET_MEMCPY or define
|
|
|
+- * SHA2_USE_BZERO_BCOPY depending on which function set you
|
|
|
+- * choose to use:
|
|
|
+- */
|
|
|
+-#if !defined(SHA2_USE_MEMSET_MEMCPY) && !defined(SHA2_USE_BZERO_BCOPY)
|
|
|
+-/* Default to memset()/memcpy() if no option is specified */
|
|
|
+-#define SHA2_USE_MEMSET_MEMCPY 1
|
|
|
+-#endif
|
|
|
+-#if defined(SHA2_USE_MEMSET_MEMCPY) && defined(SHA2_USE_BZERO_BCOPY)
|
|
|
+-/* Abort with an error if BOTH options are defined */
|
|
|
+-#error Define either SHA2_USE_MEMSET_MEMCPY or SHA2_USE_BZERO_BCOPY, not both!
|
|
|
+-#endif
|
|
|
+-
|
|
|
+-#ifdef SHA2_USE_MEMSET_MEMCPY
|
|
|
+-#define MEMSET_BZERO(p,l) memset((p), 0, (l))
|
|
|
+-#define MEMCPY_BCOPY(d,s,l) memcpy((d), (s), (l))
|
|
|
+-#endif
|
|
|
+-#ifdef SHA2_USE_BZERO_BCOPY
|
|
|
+-#define MEMSET_BZERO(p,l) bzero((p), (l))
|
|
|
+-#define MEMCPY_BCOPY(d,s,l) bcopy((s), (d), (l))
|
|
|
+-#endif
|
|
|
+-
|
|
|
+
|
|
|
+ /*** THE SIX LOGICAL FUNCTIONS ****************************************/
|
|
|
+ /*
|
|
|
+--
|
|
|
+2.26.2
|
|
|
+
|