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
M
sets.lua
+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'
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+
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+
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+
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+
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
M
sets.lua
+1,
-1
1@@ -50,6 +50,6 @@ return {
2 'catgirl',
3 'sdhcp',
4 'transmission',
5- 'eiwd',
6+ 'wpa_supplicant',
7 },
8 }