diff options
-rw-r--r-- | src/compat/compat.h | 7 | ||||
-rw-r--r-- | src/crypto/zinc/blake2s/blake2s-x86_64-glue.h | 5 | ||||
-rw-r--r-- | src/crypto/zinc/blake2s/blake2s.c | 14 |
3 files changed, 15 insertions, 11 deletions
diff --git a/src/compat/compat.h b/src/compat/compat.h index 17606f5..2e67edb 100644 --- a/src/compat/compat.h +++ b/src/compat/compat.h @@ -689,6 +689,13 @@ static inline void *skb_put_data(struct sk_buff *skb, const void *data, unsigned #endif #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0) +static inline void le32_to_cpu_array(u32 *buf, unsigned int words) +{ + while (words--) { + __le32_to_cpus(buf); + buf++; + } +} static inline void cpu_to_le32_array(u32 *buf, unsigned int words) { while (words--) { diff --git a/src/crypto/zinc/blake2s/blake2s-x86_64-glue.h b/src/crypto/zinc/blake2s/blake2s-x86_64-glue.h index 83d56e9..1f331cb 100644 --- a/src/crypto/zinc/blake2s/blake2s-x86_64-glue.h +++ b/src/crypto/zinc/blake2s/blake2s-x86_64-glue.h @@ -34,8 +34,9 @@ static void __init blake2s_fpu_init(void) #endif } -static inline bool blake2s_arch(struct blake2s_state *state, const u8 *block, - size_t nblocks, const u32 inc) +static inline bool blake2s_compress_arch(struct blake2s_state *state, + const u8 *block, size_t nblocks, + const u32 inc) { simd_context_t simd_context; diff --git a/src/crypto/zinc/blake2s/blake2s.c b/src/crypto/zinc/blake2s/blake2s.c index bd7146b..8e22824 100644 --- a/src/crypto/zinc/blake2s/blake2s.c +++ b/src/crypto/zinc/blake2s/blake2s.c @@ -120,8 +120,9 @@ static void __init blake2s_fpu_init(void) { } -static inline bool blake2s_arch(struct blake2s_state *state, const u8 *block, - const size_t nblocks, const u32 inc) +static inline bool blake2s_compress_arch(struct blake2s_state *state, + const u8 *block, size_t nblocks, + const u32 inc) { return false; } @@ -139,18 +140,13 @@ static inline void blake2s_compress(struct blake2s_state *state, BUG_ON(nblocks > 1 && inc != BLAKE2S_BLOCK_SIZE); #endif - if (blake2s_arch(state, block, nblocks, inc)) + if (blake2s_compress_arch(state, block, nblocks, inc)) return; while (nblocks > 0) { blake2s_increment_counter(state, inc); - -#ifdef __LITTLE_ENDIAN memcpy(m, block, BLAKE2S_BLOCK_SIZE); -#else - for (i = 0; i < 16; ++i) - m[i] = get_unaligned_le32(block + i * sizeof(m[i])); -#endif + le32_to_cpu_array(m, ARRAY_SIZE(m)); memcpy(v, state->h, 32); v[ 8] = blake2s_iv[0]; v[ 9] = blake2s_iv[1]; |