Without this patch, the chacha block counter is not incremented on neon rounds, resulting in incorrect calculations and corrupt packets. This also switches to using `--no-numbered --zero-commit` so that future diffs are smaller. Reported-by: Hans Geiblinger <cybrnook2002@yahoo.com> Reviewed-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> Cc: David Bauer <mail@david-bauer.net> Cc: Petr Štetiar <ynezz@true.cz> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 | 
						|
From: Herbert Xu <herbert@gondor.apana.org.au>
 | 
						|
Date: Thu, 23 Jul 2020 17:50:48 +1000
 | 
						|
Subject: [PATCH] crypto: x86/curve25519 - Remove unused carry variables
 | 
						|
 | 
						|
commit 054a5540fb8f7268e2c79e9deab4242db15c8cba upstream.
 | 
						|
 | 
						|
The carry variables are assigned but never used, which upsets
 | 
						|
the compiler.  This patch removes them.
 | 
						|
 | 
						|
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 | 
						|
Reviewed-by: Karthikeyan Bhargavan <karthik.bhargavan@gmail.com>
 | 
						|
Acked-by: Jason A. Donenfeld <Jason@zx2c4.com>
 | 
						|
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 | 
						|
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
 | 
						|
---
 | 
						|
 arch/x86/crypto/curve25519-x86_64.c | 6 ++----
 | 
						|
 1 file changed, 2 insertions(+), 4 deletions(-)
 | 
						|
 | 
						|
--- a/arch/x86/crypto/curve25519-x86_64.c
 | 
						|
+++ b/arch/x86/crypto/curve25519-x86_64.c
 | 
						|
@@ -948,10 +948,8 @@ static void store_felem(u64 *b, u64 *f)
 | 
						|
 {
 | 
						|
 	u64 f30 = f[3U];
 | 
						|
 	u64 top_bit0 = f30 >> (u32)63U;
 | 
						|
-	u64 carry0;
 | 
						|
 	u64 f31;
 | 
						|
 	u64 top_bit;
 | 
						|
-	u64 carry;
 | 
						|
 	u64 f0;
 | 
						|
 	u64 f1;
 | 
						|
 	u64 f2;
 | 
						|
@@ -970,11 +968,11 @@ static void store_felem(u64 *b, u64 *f)
 | 
						|
 	u64 o2;
 | 
						|
 	u64 o3;
 | 
						|
 	f[3U] = f30 & (u64)0x7fffffffffffffffU;
 | 
						|
-	carry0 = add_scalar(f, f, (u64)19U * top_bit0);
 | 
						|
+	add_scalar(f, f, (u64)19U * top_bit0);
 | 
						|
 	f31 = f[3U];
 | 
						|
 	top_bit = f31 >> (u32)63U;
 | 
						|
 	f[3U] = f31 & (u64)0x7fffffffffffffffU;
 | 
						|
-	carry = add_scalar(f, f, (u64)19U * top_bit);
 | 
						|
+	add_scalar(f, f, (u64)19U * top_bit);
 | 
						|
 	f0 = f[0U];
 | 
						|
 	f1 = f[1U];
 | 
						|
 	f2 = f[2U];
 |