aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/backport-5.4/080-wireguard-0126-crypto-poly1305-fix-poly1305_core_setkey-declaration.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/backport-5.4/080-wireguard-0126-crypto-poly1305-fix-poly1305_core_setkey-declaration.patch')
-rw-r--r--target/linux/generic/backport-5.4/080-wireguard-0126-crypto-poly1305-fix-poly1305_core_setkey-declaration.patch172
1 files changed, 0 insertions, 172 deletions
diff --git a/target/linux/generic/backport-5.4/080-wireguard-0126-crypto-poly1305-fix-poly1305_core_setkey-declaration.patch b/target/linux/generic/backport-5.4/080-wireguard-0126-crypto-poly1305-fix-poly1305_core_setkey-declaration.patch
deleted file mode 100644
index ded6625aeb..0000000000
--- a/target/linux/generic/backport-5.4/080-wireguard-0126-crypto-poly1305-fix-poly1305_core_setkey-declaration.patch
+++ /dev/null
@@ -1,172 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Arnd Bergmann <arnd@arndb.de>
-Date: Mon, 22 Mar 2021 18:05:15 +0100
-Subject: [PATCH] crypto: poly1305 - fix poly1305_core_setkey() declaration
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 8d195e7a8ada68928f2aedb2c18302a4518fe68e upstream.
-
-gcc-11 points out a mismatch between the declaration and the definition
-of poly1305_core_setkey():
-
-lib/crypto/poly1305-donna32.c:13:67: error: argument 2 of type ‘const u8[16]’ {aka ‘const unsigned char[16]’} with mismatched bound [-Werror=array-parameter=]
- 13 | void poly1305_core_setkey(struct poly1305_core_key *key, const u8 raw_key[16])
- | ~~~~~~~~~^~~~~~~~~~~
-In file included from lib/crypto/poly1305-donna32.c:11:
-include/crypto/internal/poly1305.h:21:68: note: previously declared as ‘const u8 *’ {aka ‘const unsigned char *’}
- 21 | void poly1305_core_setkey(struct poly1305_core_key *key, const u8 *raw_key);
-
-This is harmless in principle, as the calling conventions are the same,
-but the more specific prototype allows better type checking in the
-caller.
-
-Change the declaration to match the actual function definition.
-The poly1305_simd_init() is a bit suspicious here, as it previously
-had a 32-byte argument type, but looks like it needs to take the
-16-byte POLY1305_BLOCK_SIZE array instead.
-
-Fixes: 1c08a104360f ("crypto: poly1305 - add new 32 and 64-bit generic versions")
-Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
-Reviewed-by: Eric Biggers <ebiggers@google.com>
-Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
----
- arch/arm/crypto/poly1305-glue.c | 2 +-
- arch/arm64/crypto/poly1305-glue.c | 2 +-
- arch/mips/crypto/poly1305-glue.c | 2 +-
- arch/x86/crypto/poly1305_glue.c | 6 +++---
- include/crypto/internal/poly1305.h | 3 ++-
- include/crypto/poly1305.h | 6 ++++--
- lib/crypto/poly1305-donna32.c | 3 ++-
- lib/crypto/poly1305-donna64.c | 3 ++-
- lib/crypto/poly1305.c | 3 ++-
- 9 files changed, 18 insertions(+), 12 deletions(-)
-
---- a/arch/arm/crypto/poly1305-glue.c
-+++ b/arch/arm/crypto/poly1305-glue.c
-@@ -29,7 +29,7 @@ void __weak poly1305_blocks_neon(void *s
-
- static __ro_after_init DEFINE_STATIC_KEY_FALSE(have_neon);
-
--void poly1305_init_arch(struct poly1305_desc_ctx *dctx, const u8 *key)
-+void poly1305_init_arch(struct poly1305_desc_ctx *dctx, const u8 key[POLY1305_KEY_SIZE])
- {
- poly1305_init_arm(&dctx->h, key);
- dctx->s[0] = get_unaligned_le32(key + 16);
---- a/arch/arm64/crypto/poly1305-glue.c
-+++ b/arch/arm64/crypto/poly1305-glue.c
-@@ -25,7 +25,7 @@ asmlinkage void poly1305_emit(void *stat
-
- static __ro_after_init DEFINE_STATIC_KEY_FALSE(have_neon);
-
--void poly1305_init_arch(struct poly1305_desc_ctx *dctx, const u8 *key)
-+void poly1305_init_arch(struct poly1305_desc_ctx *dctx, const u8 key[POLY1305_KEY_SIZE])
- {
- poly1305_init_arm64(&dctx->h, key);
- dctx->s[0] = get_unaligned_le32(key + 16);
---- a/arch/mips/crypto/poly1305-glue.c
-+++ b/arch/mips/crypto/poly1305-glue.c
-@@ -17,7 +17,7 @@ asmlinkage void poly1305_init_mips(void
- asmlinkage void poly1305_blocks_mips(void *state, const u8 *src, u32 len, u32 hibit);
- asmlinkage void poly1305_emit_mips(void *state, u8 *digest, const u32 *nonce);
-
--void poly1305_init_arch(struct poly1305_desc_ctx *dctx, const u8 *key)
-+void poly1305_init_arch(struct poly1305_desc_ctx *dctx, const u8 key[POLY1305_KEY_SIZE])
- {
- poly1305_init_mips(&dctx->h, key);
- dctx->s[0] = get_unaligned_le32(key + 16);
---- a/arch/x86/crypto/poly1305_glue.c
-+++ b/arch/x86/crypto/poly1305_glue.c
-@@ -15,7 +15,7 @@
- #include <asm/simd.h>
-
- asmlinkage void poly1305_init_x86_64(void *ctx,
-- const u8 key[POLY1305_KEY_SIZE]);
-+ const u8 key[POLY1305_BLOCK_SIZE]);
- asmlinkage void poly1305_blocks_x86_64(void *ctx, const u8 *inp,
- const size_t len, const u32 padbit);
- asmlinkage void poly1305_emit_x86_64(void *ctx, u8 mac[POLY1305_DIGEST_SIZE],
-@@ -80,7 +80,7 @@ static void convert_to_base2_64(void *ct
- state->is_base2_26 = 0;
- }
-
--static void poly1305_simd_init(void *ctx, const u8 key[POLY1305_KEY_SIZE])
-+static void poly1305_simd_init(void *ctx, const u8 key[POLY1305_BLOCK_SIZE])
- {
- poly1305_init_x86_64(ctx, key);
- }
-@@ -128,7 +128,7 @@ static void poly1305_simd_emit(void *ctx
- poly1305_emit_avx(ctx, mac, nonce);
- }
-
--void poly1305_init_arch(struct poly1305_desc_ctx *dctx, const u8 *key)
-+void poly1305_init_arch(struct poly1305_desc_ctx *dctx, const u8 key[POLY1305_KEY_SIZE])
- {
- poly1305_simd_init(&dctx->h, key);
- dctx->s[0] = get_unaligned_le32(&key[16]);
---- a/include/crypto/internal/poly1305.h
-+++ b/include/crypto/internal/poly1305.h
-@@ -18,7 +18,8 @@
- * only the ε-almost-∆-universal hash function (not the full MAC) is computed.
- */
-
--void poly1305_core_setkey(struct poly1305_core_key *key, const u8 *raw_key);
-+void poly1305_core_setkey(struct poly1305_core_key *key,
-+ const u8 raw_key[POLY1305_BLOCK_SIZE]);
- static inline void poly1305_core_init(struct poly1305_state *state)
- {
- *state = (struct poly1305_state){};
---- a/include/crypto/poly1305.h
-+++ b/include/crypto/poly1305.h
-@@ -58,8 +58,10 @@ struct poly1305_desc_ctx {
- };
- };
-
--void poly1305_init_arch(struct poly1305_desc_ctx *desc, const u8 *key);
--void poly1305_init_generic(struct poly1305_desc_ctx *desc, const u8 *key);
-+void poly1305_init_arch(struct poly1305_desc_ctx *desc,
-+ const u8 key[POLY1305_KEY_SIZE]);
-+void poly1305_init_generic(struct poly1305_desc_ctx *desc,
-+ const u8 key[POLY1305_KEY_SIZE]);
-
- static inline void poly1305_init(struct poly1305_desc_ctx *desc, const u8 *key)
- {
---- a/lib/crypto/poly1305-donna32.c
-+++ b/lib/crypto/poly1305-donna32.c
-@@ -10,7 +10,8 @@
- #include <asm/unaligned.h>
- #include <crypto/internal/poly1305.h>
-
--void poly1305_core_setkey(struct poly1305_core_key *key, const u8 raw_key[16])
-+void poly1305_core_setkey(struct poly1305_core_key *key,
-+ const u8 raw_key[POLY1305_BLOCK_SIZE])
- {
- /* r &= 0xffffffc0ffffffc0ffffffc0fffffff */
- key->key.r[0] = (get_unaligned_le32(&raw_key[0])) & 0x3ffffff;
---- a/lib/crypto/poly1305-donna64.c
-+++ b/lib/crypto/poly1305-donna64.c
-@@ -12,7 +12,8 @@
-
- typedef __uint128_t u128;
-
--void poly1305_core_setkey(struct poly1305_core_key *key, const u8 raw_key[16])
-+void poly1305_core_setkey(struct poly1305_core_key *key,
-+ const u8 raw_key[POLY1305_BLOCK_SIZE])
- {
- u64 t0, t1;
-
---- a/lib/crypto/poly1305.c
-+++ b/lib/crypto/poly1305.c
-@@ -12,7 +12,8 @@
- #include <linux/module.h>
- #include <asm/unaligned.h>
-
--void poly1305_init_generic(struct poly1305_desc_ctx *desc, const u8 *key)
-+void poly1305_init_generic(struct poly1305_desc_ctx *desc,
-+ const u8 key[POLY1305_KEY_SIZE])
- {
- poly1305_core_setkey(&desc->core_r, key);
- desc->s[0] = get_unaligned_le32(key + 16);