From 3117ccf3583c950e7089b4502779f4b520ded119 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Fri, 24 Apr 2015 13:52:56 +0200 Subject: [PATCH] Use memcpy() instead of ugly casts. No changes to compiled code. --- .../donna_c64/smult_curve25519_donna_c64.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/libsodium/crypto_scalarmult/curve25519/donna_c64/smult_curve25519_donna_c64.c b/src/libsodium/crypto_scalarmult/curve25519/donna_c64/smult_curve25519_donna_c64.c index 7da3e1c0..d4d0aed4 100644 --- a/src/libsodium/crypto_scalarmult/curve25519/donna_c64/smult_curve25519_donna_c64.c +++ b/src/libsodium/crypto_scalarmult/curve25519/donna_c64/smult_curve25519_donna_c64.c @@ -189,9 +189,17 @@ fsquare_times(felem output, const felem in, limb count) { output[4] = r4; } -#if !defined(CPU_ALIGNED_ACCESS_REQUIRED) && defined(NATIVE_LITTLE_ENDIAN) -# define load_limb(p) (*((const limb *) (p))) -# define store_limb(p, v) (*((limb *) (p)) = (v)) +#ifdef NATIVE_LITTLE_ENDIAN +static inline limb force_inline +load_limb(const u8 *in) { + limb out; + memcpy(&out, in, sizeof (limb)); + return out; +} +static inline void force_inline +store_limb(u8 *out, limb in) { + memcpy(out, &in, sizeof (limb)); +} #else static inline limb force_inline load_limb(const u8 *in) {