diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-09-27 00:28:47 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-10-02 03:41:49 +0200 |
commit | cfa6a82310de91038a153a2b5d011d5f08573285 (patch) | |
tree | e4bfddbd855be754b3bb6e9453f8e25d8dcdad38 /src/crypto/zinc/chacha20 | |
parent | ae383dd701c0f27349893d4fbd48c7b72a39b92a (diff) |
crypto: prefer IS_ENABLED to ifdefs
Suggested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'src/crypto/zinc/chacha20')
-rw-r--r-- | src/crypto/zinc/chacha20/chacha20-arm-glue.h | 55 | ||||
-rw-r--r-- | src/crypto/zinc/chacha20/chacha20-mips-glue.h | 1 | ||||
-rw-r--r-- | src/crypto/zinc/chacha20/chacha20-x86_64-glue.h | 43 |
3 files changed, 37 insertions, 62 deletions
diff --git a/src/crypto/zinc/chacha20/chacha20-arm-glue.h b/src/crypto/zinc/chacha20/chacha20-arm-glue.h index 86cce85..b8d9e12 100644 --- a/src/crypto/zinc/chacha20/chacha20-arm-glue.h +++ b/src/crypto/zinc/chacha20/chacha20-arm-glue.h @@ -12,13 +12,9 @@ asmlinkage void chacha20_arm(u8 *out, const u8 *in, const size_t len, const u32 key[8], const u32 counter[4]); -#if defined(CONFIG_ARM) asmlinkage void hchacha20_arm(const u32 state[16], u32 out[8]); -#endif -#if defined(CONFIG_KERNEL_MODE_NEON) asmlinkage void chacha20_neon(u8 *out, const u8 *in, const size_t len, const u32 key[8], const u32 counter[4]); -#endif static bool chacha20_use_neon __ro_after_init; @@ -42,15 +38,13 @@ static void __init chacha20_fpu_init(void) } static inline bool chacha20_arch(struct chacha20_ctx *state, u8 *dst, - const u8 *src, size_t len, + const u8 *src, const size_t len, simd_context_t *simd_context) { -#if defined(CONFIG_KERNEL_MODE_NEON) - if (chacha20_use_neon && len >= CHACHA20_BLOCK_SIZE * 3 && - simd_use(simd_context)) + if (IS_ENABLED(CONFIG_KERNEL_MODE_NEON) && chacha20_use_neon && + len >= CHACHA20_BLOCK_SIZE * 3 && simd_use(simd_context)) chacha20_neon(dst, src, len, state->key, state->counter); else -#endif chacha20_arm(dst, src, len, state->key, state->counter); state->counter[0] += (len + 63) / 64; @@ -62,27 +56,26 @@ static inline bool hchacha20_arch(u32 derived_key[CHACHA20_KEY_WORDS], const u8 key[HCHACHA20_KEY_SIZE], simd_context_t *simd_context) { -#if defined(CONFIG_ARM) - u32 x[] = { CHACHA20_CONSTANT_EXPA, - CHACHA20_CONSTANT_ND_3, - CHACHA20_CONSTANT_2_BY, - CHACHA20_CONSTANT_TE_K, - get_unaligned_le32(key + 0), - get_unaligned_le32(key + 4), - get_unaligned_le32(key + 8), - get_unaligned_le32(key + 12), - get_unaligned_le32(key + 16), - get_unaligned_le32(key + 20), - get_unaligned_le32(key + 24), - get_unaligned_le32(key + 28), - get_unaligned_le32(nonce + 0), - get_unaligned_le32(nonce + 4), - get_unaligned_le32(nonce + 8), - get_unaligned_le32(nonce + 12) - }; - hchacha20_arm(x, derived_key); - return true; -#else + if (IS_ENABLED(CONFIG_ARM)) { + u32 x[] = { CHACHA20_CONSTANT_EXPA, + CHACHA20_CONSTANT_ND_3, + CHACHA20_CONSTANT_2_BY, + CHACHA20_CONSTANT_TE_K, + get_unaligned_le32(key + 0), + get_unaligned_le32(key + 4), + get_unaligned_le32(key + 8), + get_unaligned_le32(key + 12), + get_unaligned_le32(key + 16), + get_unaligned_le32(key + 20), + get_unaligned_le32(key + 24), + get_unaligned_le32(key + 28), + get_unaligned_le32(nonce + 0), + get_unaligned_le32(nonce + 4), + get_unaligned_le32(nonce + 8), + get_unaligned_le32(nonce + 12) + }; + hchacha20_arm(x, derived_key); + return true; + } return false; -#endif } diff --git a/src/crypto/zinc/chacha20/chacha20-mips-glue.h b/src/crypto/zinc/chacha20/chacha20-mips-glue.h index 6e70dd6..13e9e8d 100644 --- a/src/crypto/zinc/chacha20/chacha20-mips-glue.h +++ b/src/crypto/zinc/chacha20/chacha20-mips-glue.h @@ -5,6 +5,7 @@ asmlinkage void chacha20_mips(u32 state[16], u8 *out, const u8 *in, const size_t len); + static void __init chacha20_fpu_init(void) { } diff --git a/src/crypto/zinc/chacha20/chacha20-x86_64-glue.h b/src/crypto/zinc/chacha20/chacha20-x86_64-glue.h index 1b7fc05..03075c9 100644 --- a/src/crypto/zinc/chacha20/chacha20-x86_64-glue.h +++ b/src/crypto/zinc/chacha20/chacha20-x86_64-glue.h @@ -8,22 +8,16 @@ #include <asm/processor.h> #include <asm/intel-family.h> -#ifdef CONFIG_AS_SSSE3 asmlinkage void hchacha20_ssse3(u32 *derived_key, const u8 *nonce, const u8 *key); asmlinkage void chacha20_ssse3(u8 *out, const u8 *in, const size_t len, const u32 key[8], const u32 counter[4]); -#endif -#ifdef CONFIG_AS_AVX2 asmlinkage void chacha20_avx2(u8 *out, const u8 *in, const size_t len, const u32 key[8], const u32 counter[4]); -#endif -#ifdef CONFIG_AS_AVX512 asmlinkage void chacha20_avx512(u8 *out, const u8 *in, const size_t len, const u32 key[8], const u32 counter[4]); asmlinkage void chacha20_avx512vl(u8 *out, const u8 *in, const size_t len, const u32 key[8], const u32 counter[4]); -#endif static bool chacha20_use_ssse3 __ro_after_init; static bool chacha20_use_avx2 __ro_after_init; @@ -60,34 +54,22 @@ static inline bool chacha20_arch(struct chacha20_ctx *state, u8 *dst, const u8 *src, const size_t len, simd_context_t *simd_context) { - if (!chacha20_use_ssse3 || len <= CHACHA20_BLOCK_SIZE || - !simd_use(simd_context)) + if (!IS_ENABLED(CONFIG_AS_SSSE3) || !chacha20_use_ssse3 || + len <= CHACHA20_BLOCK_SIZE || !simd_use(simd_context)) return false; -#ifdef CONFIG_AS_AVX512 - if (chacha20_use_avx512 && len >= CHACHA20_BLOCK_SIZE * 8) { + if (IS_ENABLED(CONFIG_AS_AVX512) && chacha20_use_avx512 && + len >= CHACHA20_BLOCK_SIZE * 8) chacha20_avx512(dst, src, len, state->key, state->counter); - goto success; - } - if (chacha20_use_avx512vl && len >= CHACHA20_BLOCK_SIZE * 4) { + else if (IS_ENABLED(CONFIG_AS_AVX512) && chacha20_use_avx512vl && + len >= CHACHA20_BLOCK_SIZE * 4) chacha20_avx512vl(dst, src, len, state->key, state->counter); - goto success; - } -#endif -#ifdef CONFIG_AS_AVX2 - if (chacha20_use_avx2 && len >= CHACHA20_BLOCK_SIZE * 4) { + else if (IS_ENABLED(CONFIG_AS_AVX2) && chacha20_use_avx2 && + len >= CHACHA20_BLOCK_SIZE * 4) chacha20_avx2(dst, src, len, state->key, state->counter); - goto success; - } -#endif -#ifdef CONFIG_AS_SSSE3 - if (chacha20_use_ssse3) { + else chacha20_ssse3(dst, src, len, state->key, state->counter); - goto success; - } -#endif - return false; -success: + state->counter[0] += (len + 63) / 64; return true; } @@ -97,11 +79,10 @@ static inline bool hchacha20_arch(u32 derived_key[CHACHA20_KEY_WORDS], const u8 key[HCHACHA20_KEY_SIZE], simd_context_t *simd_context) { -#if defined(CONFIG_AS_SSSE3) - if (chacha20_use_ssse3 && simd_use(simd_context)) { + if (IS_ENABLED(CONFIG_AS_SSSE3) && chacha20_use_ssse3 && + simd_use(simd_context)) { hchacha20_ssse3(derived_key, nonce, key); return true; } -#endif return false; } |