From 2df0ea042d14dbfc2735b843eb82a0ae0d8bec19 Mon Sep 17 00:00:00 2001
From: Antonio Quartulli <a@unstable.cc>
Date: Tue, 28 Apr 2020 12:06:58 +0200
Subject: wpad-wolfssl: fix crypto_bignum_sub()

Backport patch from hostapd.git master that fixes copy/paste error in
crypto_bignum_sub() in crypto_wolfssl.c.

This missing fix was discovered while testing SAE over a mesh interface.

With this fix applied and wolfssl >3.14.4 mesh+SAE works fine with
wpad-mesh-wolfssl.

Cc: Sean Parkinson <sean@wolfssl.com>
Signed-off-by: Antonio Quartulli <a@unstable.cc>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 4b3b8ec81cd1965d0bd548fa31db491295b83354)
---
 .../090-wolfssl-fix-crypto_bignum_sum.patch        | 26 ++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 package/network/services/hostapd/patches/090-wolfssl-fix-crypto_bignum_sum.patch

(limited to 'package')

diff --git a/package/network/services/hostapd/patches/090-wolfssl-fix-crypto_bignum_sum.patch b/package/network/services/hostapd/patches/090-wolfssl-fix-crypto_bignum_sum.patch
new file mode 100644
index 0000000000..7cc0dec3fe
--- /dev/null
+++ b/package/network/services/hostapd/patches/090-wolfssl-fix-crypto_bignum_sum.patch
@@ -0,0 +1,26 @@
+From 1766e608ba1114220f3b3598e77aa53b50c38a6e Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <jouni@codeaurora.org>
+Date: Mon, 14 Oct 2019 19:27:47 +0300
+Subject: [PATCH] wolfSSL: Fix crypto_bignum_sub()
+
+The initial crypto wrapper implementation for wolfSSL seems to have
+included a copy-paste error in crypto_bignum_sub() implementation that
+was identical to crypto_bignum_add() while mp_sub() should have been
+used instead of mp_add().
+
+Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
+---
+ src/crypto/crypto_wolfssl.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/src/crypto/crypto_wolfssl.c
++++ b/src/crypto/crypto_wolfssl.c
+@@ -1151,7 +1151,7 @@ int crypto_bignum_sub(const struct crypt
+ 	if (TEST_FAIL())
+ 		return -1;
+ 
+-	return mp_add((mp_int *) a, (mp_int *) b,
++	return mp_sub((mp_int *) a, (mp_int *) b,
+ 		      (mp_int *) r) == MP_OKAY ? 0 : -1;
+ }
+ 
-- 
cgit v1.2.3