From 33e401116c55911260fb0dd8546d44b3b25adb96 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sun, 27 Jan 2019 06:37:48 -0500 Subject: [PATCH] Fix Poly1305TLS on big-endian systems (GH #727) --- poly1305.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/poly1305.cpp b/poly1305.cpp index fe1ae499..1d8abf9e 100644 --- a/poly1305.cpp +++ b/poly1305.cpp @@ -322,7 +322,10 @@ void Poly1305TLS_Base::UncheckedSetKey(const byte *key, unsigned int length, con m_r[3] = GetWord(false, LITTLE_ENDIAN_ORDER, key + 12) & 0x0ffffffc; key += 16; - std::memcpy(m_n, key, 16); + m_n[0] = GetWord(false, LITTLE_ENDIAN_ORDER, key + 0); + m_n[1] = GetWord(false, LITTLE_ENDIAN_ORDER, key + 4); + m_n[2] = GetWord(false, LITTLE_ENDIAN_ORDER, key + 8); + m_n[3] = GetWord(false, LITTLE_ENDIAN_ORDER, key + 12); Restart(); }