commit 7527e30

hovercats  ·  2024-03-26 21:33:42 +0000 UTC
parent 36788d2
Revert "wpa_supplicant: drop, in favor of eiwd"

eiwd just segfaults for me. and im unwilling to figure it out

This reverts commit 1b7ddd470396e6672ee10d3d38bf77e08d452d14.
13 files changed,  +378, -1
+1, -0
1@@ -55,5 +55,6 @@ subgen 'tz'
2 subgen 'ubase'
3 subgen 'util-linux'
4 subgen 'vis'
5+subgen 'wpa_supplicant'
6 subgen 'xz'
7 subgen 'zlib'
+2, -0
1@@ -0,0 +1,2 @@
2+/src
3+/wpa_supplicant-2.9.tar.gz
+16, -0
 1@@ -0,0 +1,16 @@
 2+#define CONFIG_BACKEND_FILE
 3+#define CONFIG_CTRL_IFACE
 4+#define CONFIG_CTRL_IFACE_DIR "/run/wpa_supplicant"
 5+#define CONFIG_CTRL_IFACE_UNIX
 6+#define CONFIG_DRIVER_NL80211
 7+#define CONFIG_ELOOP_POLL
 8+#define CONFIG_GETRANDOM
 9+#define CONFIG_IBSS_RSN
10+#define CONFIG_LIBNL20
11+#define CONFIG_NO_CONFIG_BLOBS
12+#define CONFIG_NO_CONFIG_WRITE
13+#define CONFIG_NO_RADIUS
14+#define CONFIG_NO_VLAN
15+#define CONFIG_SHA256
16+#define CONFIG_SME
17+#define TLS_DEFAULT_CIPHERS "DEFAULT:!EXP:!LOW"
+100, -0
  1@@ -0,0 +1,100 @@
  2+cflags{
  3+	'-include $dir/config.h',
  4+	'-I $srcdir/src/utils',
  5+	'-I $srcdir/src',
  6+	'-isystem $builddir/pkg/bearssl/include',
  7+	'-isystem $builddir/pkg/libnl/include',
  8+	'-isystem $builddir/pkg/linux-headers/include',
  9+}
 10+
 11+pkg.deps = {
 12+	'pkg/bearssl/headers',
 13+	'pkg/libnl/headers',
 14+	'pkg/linux-headers/headers',
 15+}
 16+
 17+lib('libcommon.a', 'src/utils/(common.c eloop.c os_unix.c wpabuf.c wpa_debug.c)')
 18+
 19+exe('bin/wpa_supplicant', [[
 20+	src/ap/(
 21+		wpa_auth.c
 22+		wpa_auth_ie.c
 23+		pmksa_cache_auth.c
 24+	)
 25+	src/common/(
 26+		ctrl_iface_common.c
 27+		hw_features_common.c
 28+		ieee802_11_common.c
 29+		wpa_common.c
 30+	)
 31+	src/crypto/(
 32+		aes-internal-dec.c
 33+		aes-internal-enc.c
 34+		aes-internal.c
 35+		aes-unwrap.c
 36+		aes-wrap.c
 37+		crypto_bearssl.c
 38+		random.c
 39+		rc4.c
 40+		sha1-pbkdf2.c
 41+		sha1-prf.c
 42+		sha256-prf.c
 43+		tls_none.c
 44+	)
 45+	src/drivers/(
 46+		driver_common.c
 47+		driver_nl80211.c
 48+		driver_nl80211_capa.c
 49+		driver_nl80211_event.c
 50+		driver_nl80211_monitor.c
 51+		driver_nl80211_scan.c
 52+		drivers.c
 53+		linux_ioctl.c
 54+		netlink.c
 55+		rfkill.c
 56+	)
 57+	src/l2_packet/l2_packet_linux.c
 58+	src/rsn_supp/(
 59+		pmksa_cache.c
 60+		preauth.c
 61+		wpa.c
 62+		wpa_ie.c
 63+	)
 64+	src/utils/(bitfield.c radiotap.c)
 65+	wpa_supplicant/(
 66+		blacklist.c
 67+		bss.c
 68+		config.c
 69+		config_file.c
 70+		ctrl_iface.c
 71+		ctrl_iface_unix.c
 72+		eap_register.c
 73+		events.c
 74+		ibss_rsn.c
 75+		main.c
 76+		notify.c
 77+		op_classes.c
 78+		rrm.c
 79+		scan.c
 80+		sme.c
 81+		wmm_ac.c
 82+		wpa_supplicant.c
 83+		wpas_glue.c
 84+	)
 85+	libcommon.a
 86+	$builddir/pkg/bearssl/libbearssl.a
 87+	$builddir/pkg/libnl/(libnl-3.a libnl-genl-3.a)
 88+]])
 89+file('bin/wpa_supplicant', '755', '$outdir/bin/wpa_supplicant')
 90+
 91+exe('bin/wpa_cli', [[
 92+	src/common/(cli.c wpa_ctrl.c)
 93+	src/utils/edit_simple.c
 94+	wpa_supplicant/wpa_cli.c
 95+	libcommon.a
 96+]])
 97+file('bin/wpa_cli', '755', '$outdir/bin/wpa_cli')
 98+
 99+man(paths[[wpa_supplicant/doc/docbook/(wpa_cli.8 wpa_supplicant.8 wpa_supplicant.conf.5)]])
100+
101+fetch 'curl'
+52, -0
 1@@ -0,0 +1,52 @@
 2+From f36da3297eeb6b2363bcede62a72f567cd971617 Mon Sep 17 00:00:00 2001
 3+From: Michael Forney <mforney@mforney.org>
 4+Date: Sun, 11 Aug 2019 03:18:22 +0000
 5+Subject: [PATCH] eloop: Prevent stray semicolons in struct specifier
 6+
 7+---
 8+ src/utils/eloop.c | 8 ++++----
 9+ src/utils/trace.h | 2 +-
10+ 2 files changed, 5 insertions(+), 5 deletions(-)
11+
12+diff --git a/src/utils/eloop.c b/src/utils/eloop.c
13+index bb375be10..b82853308 100644
14+--- a/src/utils/eloop.c
15++++ b/src/utils/eloop.c
16+@@ -44,8 +44,8 @@ struct eloop_sock {
17+ 	void *eloop_data;
18+ 	void *user_data;
19+ 	eloop_sock_handler handler;
20+-	WPA_TRACE_REF(eloop);
21+-	WPA_TRACE_REF(user);
22++	WPA_TRACE_REF(eloop)
23++	WPA_TRACE_REF(user)
24+ 	WPA_TRACE_INFO
25+ };
26+ 
27+@@ -55,8 +55,8 @@ struct eloop_timeout {
28+ 	void *eloop_data;
29+ 	void *user_data;
30+ 	eloop_timeout_handler handler;
31+-	WPA_TRACE_REF(eloop);
32+-	WPA_TRACE_REF(user);
33++	WPA_TRACE_REF(eloop)
34++	WPA_TRACE_REF(user)
35+ 	WPA_TRACE_INFO
36+ };
37+ 
38+diff --git a/src/utils/trace.h b/src/utils/trace.h
39+index d1636de07..43bc03f1e 100644
40+--- a/src/utils/trace.h
41++++ b/src/utils/trace.h
42+@@ -23,7 +23,7 @@ struct wpa_trace_ref {
43+ 	const void *addr;
44+ 	WPA_TRACE_INFO
45+ };
46+-#define WPA_TRACE_REF(name) struct wpa_trace_ref wpa_trace_ref_##name
47++#define WPA_TRACE_REF(name) struct wpa_trace_ref wpa_trace_ref_##name;
48+ 
49+ #define wpa_trace_dump(title, ptr) \
50+ 	wpa_trace_dump_func((title), (ptr)->btrace, (ptr)->btrace_num)
51+-- 
52+2.22.0
53+
+47, -0
 1@@ -0,0 +1,47 @@
 2+From 9698f90ccec779f7812a9aa550a6b77feefb52e3 Mon Sep 17 00:00:00 2001
 3+From: Michael Forney <mforney@mforney.org>
 4+Date: Sun, 11 Aug 2019 03:41:23 +0000
 5+Subject: [PATCH] Avoid statement expressions for get_aligned_le*
 6+
 7+---
 8+ src/utils/platform.h | 24 ++++++++++++------------
 9+ 1 file changed, 12 insertions(+), 12 deletions(-)
10+
11+diff --git a/src/utils/platform.h b/src/utils/platform.h
12+index 813987eb6..1aa9dc069 100644
13+--- a/src/utils/platform.h
14++++ b/src/utils/platform.h
15+@@ -4,18 +4,18 @@
16+ #include "includes.h"
17+ #include "common.h"
18+ 
19+-#define le16_to_cpu		le_to_host16
20+-#define le32_to_cpu		le_to_host32
21++static inline u16 get_unaligned_le16(void *p)
22++{
23++	u16 v;
24++	memcpy(&v, p, sizeof(v));
25++	return le_to_host16(v);
26++}
27+ 
28+-#define get_unaligned(p)					\
29+-({								\
30+-	struct packed_dummy_struct {				\
31+-		typeof(*(p)) __val;				\
32+-	} __attribute__((packed)) *__ptr = (void *) (p);	\
33+-								\
34+-	__ptr->__val;						\
35+-})
36+-#define get_unaligned_le16(p)	le16_to_cpu(get_unaligned((le16 *)(p)))
37+-#define get_unaligned_le32(p)	le32_to_cpu(get_unaligned((le32 *)(p)))
38++static inline u32 get_unaligned_le32(void *p)
39++{
40++	u32 v;
41++	memcpy(&v, p, sizeof(v));
42++	return le_to_host32(v);
43++}
44+ 
45+ #endif /* PLATFORM_H */
46+-- 
47+2.22.0
48+
+25, -0
 1@@ -0,0 +1,25 @@
 2+From 936dcefafa77e985a9e8dd2b6f5ef96df16d4c03 Mon Sep 17 00:00:00 2001
 3+From: Michael Forney <mforney@mforney.org>
 4+Date: Sun, 11 Aug 2019 03:44:24 +0000
 5+Subject: [PATCH] Avoid unnecessary VLA
 6+
 7+---
 8+ src/utils/os_unix.c | 2 +-
 9+ 1 file changed, 1 insertion(+), 1 deletion(-)
10+
11+diff --git a/src/utils/os_unix.c b/src/utils/os_unix.c
12+index 800c50772..447dae31b 100644
13+--- a/src/utils/os_unix.c
14++++ b/src/utils/os_unix.c
15+@@ -801,7 +801,7 @@ int os_exec(const char *program, const char *arg, int wait_completion)
16+ 
17+ 	if (pid == 0) {
18+ 		/* run the external command in the child process */
19+-		const int MAX_ARG = 30;
20++		enum { MAX_ARG = 30 };
21+ 		char *_program, *_arg, *pos;
22+ 		char *argv[MAX_ARG + 1];
23+ 		int i;
24+-- 
25+2.22.0
26+
+33, -0
 1@@ -0,0 +1,33 @@
 2+From 5fba603af060a3fd3f0436213527b4b2b74cbd0d Mon Sep 17 00:00:00 2001
 3+From: Michael Forney <mforney@mforney.org>
 4+Date: Sun, 11 Aug 2019 04:00:13 +0000
 5+Subject: [PATCH] Prevent reference to undefined symbol with CONFIG_NO_RADIUS
 6+
 7+---
 8+ src/radius/radius.h | 3 +++
 9+ 1 file changed, 3 insertions(+)
10+
11+diff --git a/src/radius/radius.h b/src/radius/radius.h
12+index 630c0f9d0..dd013c415 100644
13+--- a/src/radius/radius.h
14++++ b/src/radius/radius.h
15+@@ -296,6 +296,7 @@ char * radius_msg_get_tunnel_password(struct radius_msg *msg, int *keylen,
16+ 				      const u8 *secret, size_t secret_len,
17+ 				      struct radius_msg *sent_msg, size_t n);
18+ 
19++#ifndef CONFIG_NO_RADIUS
20+ static inline int radius_msg_add_attr_int32(struct radius_msg *msg, u8 type,
21+ 					    u32 value)
22+ {
23+@@ -315,6 +316,8 @@ static inline int radius_msg_get_attr_int32(struct radius_msg *msg, u8 type,
24+ 	*value = ntohl(val);
25+ 	return 0;
26+ }
27++#endif /* CONFIG_NO_RADIUS */
28++
29+ int radius_msg_get_attr_ptr(struct radius_msg *msg, u8 type, u8 **buf,
30+ 			    size_t *len, const u8 *start);
31+ int radius_msg_count_attr(struct radius_msg *msg, u8 type, int min_len);
32+-- 
33+2.22.0
34+
+98, -0
 1@@ -0,0 +1,98 @@
 2+From f7dc64ef991c146a491d0ed0a92d2a5890383143 Mon Sep 17 00:00:00 2001
 3+From: Michael Forney <mforney@mforney.org>
 4+Date: Fri, 15 Nov 2019 20:19:37 -0800
 5+Subject: [PATCH] Add support for some BearSSL crypo primitives
 6+
 7+---
 8+ src/crypto/crypto_bearssl.c | 79 +++++++++++++++++++++++++++++++++++++
 9+ 1 file changed, 79 insertions(+)
10+ create mode 100644 src/crypto/crypto_bearssl.c
11+
12+diff --git a/src/crypto/crypto_bearssl.c b/src/crypto/crypto_bearssl.c
13+new file mode 100644
14+index 000000000..bc29f9693
15+--- /dev/null
16++++ b/src/crypto/crypto_bearssl.c
17+@@ -0,0 +1,79 @@
18++/*
19++ * Wrapper functions for BearSSL crypto
20++ * Copyright (c) 2019, Michael Forney <mforney@mforney.org>
21++ *
22++ * This software may be distributed under the terms of the BSD license.
23++ * See README for more details.
24++ */
25++
26++#include "includes.h"
27++#include <bearssl.h>
28++
29++#include "common.h"
30++#include "md5.h"
31++#include "crypto.h"
32++
33++int digest_vector(size_t num_elem, const u8 *addr[], const size_t *len, u8 *out,
34++                  const br_hash_class *hash)
35++{
36++	br_hash_compat_context ctx;
37++	size_t i;
38++
39++	hash->init(&ctx.vtable);
40++	for (i = 0; i < num_elem; ++i)
41++		hash->update(&ctx.vtable, addr[i], len[i]);
42++	hash->out(&ctx.vtable, out);
43++
44++	return 0;
45++}
46++
47++int sha1_vector(size_t num_elem, const u8 *addr[], const size_t *len, u8 *out)
48++{
49++	return digest_vector(num_elem, addr, len, out, &br_sha1_vtable);
50++}
51++
52++int sha256_vector(size_t num_elem, const u8 *addr[], const size_t *len, u8 *out)
53++{
54++	return digest_vector(num_elem, addr, len, out, &br_sha256_vtable);
55++}
56++
57++static int hmac_vector(const u8 *key, size_t key_len, size_t num_elem,
58++                       const u8 *addr[], const size_t *len, u8 *mac,
59++                       const br_hash_class *type)
60++{
61++	br_hmac_key_context kc;
62++	br_hmac_context ctx;
63++	size_t i;
64++
65++	br_hmac_key_init(&kc, type, key, key_len);
66++	br_hmac_init(&ctx, &kc, 0);
67++	for (i = 0; i < num_elem; ++i)
68++		br_hmac_update(&ctx, addr[i], len[i]);
69++	br_hmac_out(&ctx, mac);
70++
71++	return 0;
72++}
73++
74++int hmac_sha256_vector(const u8 *key, size_t key_len, size_t num_elem,
75++                       const u8 *addr[], const size_t *len, u8 *mac)
76++{
77++	return hmac_vector(key, key_len, num_elem, addr, len, mac, &br_sha256_vtable);
78++}
79++
80++int hmac_sha1_vector(const u8 *key, size_t key_len, size_t num_elem,
81++                     const u8 *addr[], const size_t *len, u8 *mac)
82++{
83++	return hmac_vector(key, key_len, num_elem, addr, len, mac, &br_sha1_vtable);
84++}
85++
86++int hmac_sha1(const u8 *key, size_t key_len, const u8 *data, size_t data_len,
87++	       u8 *mac)
88++{
89++	return hmac_sha1_vector(key, key_len, 1, &data, &data_len, mac);
90++}
91++
92++int hmac_md5(const u8 *key, size_t key_len, const u8 *data, size_t data_len,
93++             u8 *mac)
94++{
95++	return hmac_vector(key, key_len, 1, &data, &data_len, mac, &br_md5_vtable);
96++}
97+-- 
98+2.24.0
99+
+1, -0
1@@ -0,0 +1 @@
2+fcbdee7b4a64bea8177973299c8c824419c413ec2e3a95db63dd6a5dc3541f17  wpa_supplicant-2.9.tar.gz
+1, -0
1@@ -0,0 +1 @@
2+url = "http://w1.fi/releases/wpa_supplicant-2.9.tar.gz"
+1, -0
1@@ -0,0 +1 @@
2+2.9 r0
+1, -1
1@@ -50,6 +50,6 @@ return {
2 		'catgirl',
3 		'sdhcp',
4 		'transmission',
5-		'eiwd',
6+		'wpa_supplicant',
7 	},
8 }