From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755336AbbDGNMU (ORCPT ); Tue, 7 Apr 2015 09:12:20 -0400 Received: from ip4-83-240-67-251.cust.nbox.cz ([83.240.67.251]:54510 "EHLO ip4-83-240-18-248.cust.nbox.cz" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754117AbbDGMwI (ORCPT ); Tue, 7 Apr 2015 08:52:08 -0400 From: Jiri Slaby To: stable@vger.kernel.org Cc: linux-kernel@vger.kernel.org, "David S. Miller" , Herbert Xu , Jiri Slaby Subject: [PATCH 3.12 079/155] crypto: sha - Handle unaligned input data in generic sha256 and sha512. Date: Tue, 7 Apr 2015 14:50:48 +0200 Message-Id: X-Mailer: git-send-email 2.3.4 In-Reply-To: <9a548862b8a26cbccc14f2c6c9c3688813d8d14b.1428411003.git.jslaby@suse.cz> References: <9a548862b8a26cbccc14f2c6c9c3688813d8d14b.1428411003.git.jslaby@suse.cz> In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "David S. Miller" 3.12-stable review patch. If anyone has any objections, please let me know. =============== commit be34c4ef693ff5c10f55606dbd656ddf0b4a8340 upstream. Like SHA1, use get_unaligned_be*() on the raw input data. Reported-by: Bob Picco Signed-off-by: David S. Miller Signed-off-by: Herbert Xu Signed-off-by: Jiri Slaby --- crypto/sha256_generic.c | 3 ++- crypto/sha512_generic.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/crypto/sha256_generic.c b/crypto/sha256_generic.c index 136381bdd48d..f85b1340e459 100644 --- a/crypto/sha256_generic.c +++ b/crypto/sha256_generic.c @@ -24,6 +24,7 @@ #include #include #include +#include static inline u32 Ch(u32 x, u32 y, u32 z) { @@ -42,7 +43,7 @@ static inline u32 Maj(u32 x, u32 y, u32 z) static inline void LOAD_OP(int I, u32 *W, const u8 *input) { - W[I] = __be32_to_cpu( ((__be32*)(input))[I] ); + W[I] = get_unaligned_be32((__u32 *)input + I); } static inline void BLEND_OP(int I, u32 *W) diff --git a/crypto/sha512_generic.c b/crypto/sha512_generic.c index 6c6d901a7cc1..13a23e169a7b 100644 --- a/crypto/sha512_generic.c +++ b/crypto/sha512_generic.c @@ -20,6 +20,7 @@ #include #include #include +#include static inline u64 Ch(u64 x, u64 y, u64 z) { @@ -68,7 +69,7 @@ static const u64 sha512_K[80] = { static inline void LOAD_OP(int I, u64 *W, const u8 *input) { - W[I] = __be64_to_cpu( ((__be64*)(input))[I] ); + W[I] = get_unaligned_be64((__u64 *)input + I); } static inline void BLEND_OP(int I, u64 *W) -- 2.3.4