4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef PKCS5_H
10 | #define PKCS5_H
11 |
12 | u8 * pkcs5_decrypt(const u8 *enc_alg, size_t enc_alg_len,
13 | const u8 *enc_data, size_t enc_data_len,
14 | const char *passwd, size_t *data_len);
15 |
16 | #endif /* PKCS5_H */
17 |
--------------------------------------------------------------------------------
/src/lib.rules:
--------------------------------------------------------------------------------
1 | ifndef CC
2 | CC=gcc
3 | endif
4 |
5 | ifndef CFLAGS
6 | CFLAGS = -MMD -O2 -Wall -g
7 | endif
8 |
9 | ifdef TEST_FUZZ
10 | CFLAGS += -DCONFIG_NO_RANDOM_POOL
11 | CFLAGS += -DTEST_FUZZ
12 | endif
13 |
14 | CFLAGS += $(FUZZ_CFLAGS)
15 | CFLAGS += -I.. -I../utils
16 |
17 |
18 | Q=@
19 | E=echo
20 | ifeq ($(V), 1)
21 | Q=
22 | E=true
23 | endif
24 | ifeq ($(QUIET), 1)
25 | Q=@
26 | E=true
27 | endif
28 |
29 | %.o: %.c
30 | $(Q)$(CC) -c -o $@ $(CFLAGS) $<
31 | @$(E) " CC " $<
32 |
--------------------------------------------------------------------------------
/debian/hostapd.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=Access point and authentication server for Wi-Fi and Ethernet
3 | Documentation=man:hostapd(8)
4 | After=network.target
5 |
6 | [Service]
7 | Type=forking
8 | PIDFile=/run/hostapd.pid
9 | Restart=on-failure
10 | RestartSec=2
11 | Environment=DAEMON_CONF=/etc/hostapd/hostapd.conf
12 | EnvironmentFile=-/etc/default/hostapd
13 | ExecStart=/usr/sbin/hostapd -B -P /run/hostapd.pid $DAEMON_OPTS ${DAEMON_CONF}
14 |
15 | [Install]
16 | WantedBy=multi-user.target
17 |
--------------------------------------------------------------------------------
/hs20/server/www/free-remediation.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | Hotspot 2.0 - public and free hotspot - remediation
4 |
5 |
6 |
7 | Hotspot 2.0 - public and free hotspot
8 |
9 | Terms and conditions have changed. You need to accept the new terms
10 | to continue using this network.
11 |
12 | Terms and conditions..
13 |
14 | Accept
\n";
16 | ?>
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/debian/wpasupplicant.links:
--------------------------------------------------------------------------------
1 | etc/wpa_supplicant/ifupdown.sh etc/network/if-pre-up.d/wpasupplicant
2 | etc/wpa_supplicant/ifupdown.sh etc/network/if-up.d/wpasupplicant
3 | etc/wpa_supplicant/ifupdown.sh etc/network/if-down.d/wpasupplicant
4 | etc/wpa_supplicant/ifupdown.sh etc/network/if-post-down.d/wpasupplicant
5 | etc/wpa_supplicant/action_wpa.sh etc/ifplugd/action.d/action_wpa
6 | usr/share/doc/wpasupplicant usr/share/doc/wpa_supplicant
7 | usr/share/doc/wpasupplicant/README.Debian usr/share/doc/wpasupplicant/README.modes
8 |
--------------------------------------------------------------------------------
/hs20/server/www/free.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | Hotspot 2.0 - public and free hotspot
4 |
5 |
6 |
7 | Hotspot 2.0 - public and free hotspot\n";
12 |
13 | echo "
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/eap_peer/Makefile:
--------------------------------------------------------------------------------
1 | all: libeap_peer.a
2 |
3 | clean:
4 | rm -f *~ *.o *.so *.d *.gcno *.gcda *.gcov libeap_peer.a
5 |
6 | install:
7 | if ls *.so >/dev/null 2>&1; then \
8 | install -d $(DESTDIR)$(LIBDIR)/wpa_supplicant && \
9 | cp *.so $(DESTDIR)$(LIBDIR)/wpa_supplicant \
10 | ; fi
11 |
12 | include ../lib.rules
13 |
14 | CFLAGS += -DIEEE8021X_EAPOL
15 |
16 | LIB_OBJS= \
17 | eap.o \
18 | eap_methods.o
19 |
20 | libeap_peer.a: $(LIB_OBJS)
21 | $(AR) crT $@ $?
22 |
23 | -include $(OBJS:%.o=%.d)
24 |
--------------------------------------------------------------------------------
/src/tls/pkcs8.h:
--------------------------------------------------------------------------------
1 | /*
2 | * PKCS #8 (Private-key information syntax)
3 | * Copyright (c) 2006-2009, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef PKCS8_H
10 | #define PKCS8_H
11 |
12 | struct crypto_private_key * pkcs8_key_import(const u8 *buf, size_t len);
13 | struct crypto_private_key *
14 | pkcs8_enc_key_import(const u8 *buf, size_t len, const char *passwd);
15 |
16 | #endif /* PKCS8_H */
17 |
--------------------------------------------------------------------------------
/src/eap_common/eap_peap_common.h:
--------------------------------------------------------------------------------
1 | /*
2 | * EAP-PEAP common routines
3 | * Copyright (c) 2008-2011, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef EAP_PEAP_COMMON_H
10 | #define EAP_PEAP_COMMON_H
11 |
12 | int peap_prfplus(int version, const u8 *key, size_t key_len,
13 | const char *label, const u8 *seed, size_t seed_len,
14 | u8 *buf, size_t buf_len);
15 |
16 | #endif /* EAP_PEAP_COMMON_H */
17 |
--------------------------------------------------------------------------------
/debian/hostapd.lintian-overrides:
--------------------------------------------------------------------------------
1 | # We distribute the package under the terms of the BSD license due to the
2 | # openssl issue, tell lintian to not complain:
3 | hostapd binary: possible-gpl-code-linked-with-openssl
4 |
5 | # no need for per-interface init scripts since hostapd has ifupdown integration
6 | hostapd: package-supports-alternative-init-but-no-init.d-script lib/systemd/system/hostapd@.service
7 |
8 | # we want to call systemctl and not anything else to mask a unit
9 | hostapd: maintainer-script-calls-systemctl
10 |
--------------------------------------------------------------------------------
/wpa_supplicant/binder/iface.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * binder interface for wpa_supplicant daemon
3 | * Copyright (c) 2004-2016, Jouni Malinen
4 | * Copyright (c) 2004-2016, Roshan Pius
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #include "iface.h"
11 |
12 | namespace wpa_supplicant_binder {
13 |
14 | Iface::Iface(struct wpa_supplicant *wpa_s) : wpa_s_(wpa_s) {}
15 |
16 | } /* namespace wpa_supplicant_binder */
17 |
--------------------------------------------------------------------------------
/src/ap/wpa_auth_glue.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / WPA authenticator glue code
3 | * Copyright (c) 2002-2009, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef WPA_AUTH_GLUE_H
10 | #define WPA_AUTH_GLUE_H
11 |
12 | int hostapd_setup_wpa(struct hostapd_data *hapd);
13 | void hostapd_reconfig_wpa(struct hostapd_data *hapd);
14 | void hostapd_deinit_wpa(struct hostapd_data *hapd);
15 |
16 | #endif /* WPA_AUTH_GLUE_H */
17 |
--------------------------------------------------------------------------------
/wpa_supplicant/binder/fi/w1/wpa_supplicant/IIface.aidl:
--------------------------------------------------------------------------------
1 | /*
2 | * binder interface for wpa_supplicant daemon
3 | * Copyright (c) 2004-2016, Jouni Malinen
4 | * Copyright (c) 2004-2016, Roshan Pius
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | package fi.w1.wpa_supplicant;
11 |
12 | /**
13 | * Interface exposed by wpa_supplicant for each network interface it controls.
14 | */
15 | interface IIface {
16 | }
17 |
--------------------------------------------------------------------------------
/src/utils/uuid.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Universally Unique IDentifier (UUID)
3 | * Copyright (c) 2008, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef UUID_H
10 | #define UUID_H
11 |
12 | #define UUID_LEN 16
13 |
14 | int uuid_str2bin(const char *str, u8 *bin);
15 | int uuid_bin2str(const u8 *bin, char *str, size_t max_len);
16 | int is_nil_uuid(const u8 *uuid);
17 | int uuid_random(u8 *uuid);
18 |
19 | #endif /* UUID_H */
20 |
--------------------------------------------------------------------------------
/src/ap/tkip_countermeasures.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / TKIP countermeasures
3 | * Copyright (c) 2002-2012, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef TKIP_COUNTERMEASURES_H
10 | #define TKIP_COUNTERMEASURES_H
11 |
12 | int michael_mic_failure(struct hostapd_data *hapd, const u8 *addr, int local);
13 | void ieee80211_tkip_countermeasures_deinit(struct hostapd_data *hapd);
14 |
15 | #endif /* TKIP_COUNTERMEASURES_H */
16 |
--------------------------------------------------------------------------------
/src/utils/module_tests.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Module tests
3 | * Copyright (c) 2014-2015, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef MODULE_TESTS_H
10 | #define MODULE_TESTS_H
11 |
12 | int wpas_module_tests(void);
13 | int hapd_module_tests(void);
14 |
15 | int utils_module_tests(void);
16 | int wps_module_tests(void);
17 | int common_module_tests(void);
18 | int crypto_module_tests(void);
19 |
20 | #endif /* MODULE_TESTS_H */
21 |
--------------------------------------------------------------------------------
/debian/hostapd@.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=Access point and authentication server for Wi-Fi and Ethernet (%I)
3 | Documentation=man:hostapd(8)
4 | After=network.target
5 | BindsTo=sys-subsystem-net-devices-%i.device
6 |
7 | [Service]
8 | Type=forking
9 | PIDFile=/run/hostapd.%i.pid
10 | Restart=on-failure
11 | RestartSec=2
12 | EnvironmentFile=-/etc/default/hostapd
13 | ExecStart=/usr/sbin/hostapd -B -P /run/hostapd.%i.pid $DAEMON_OPTS /etc/hostapd/%i.conf
14 |
15 | [Install]
16 | WantedBy=multi-user.target sys-subsystem-net-devices-%i.device
17 |
--------------------------------------------------------------------------------
/wpa_supplicant/systemd/wpa_supplicant.service.arg.in:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=WPA supplicant daemon (interface-specific version)
3 | Requires=sys-subsystem-net-devices-%i.device
4 | After=sys-subsystem-net-devices-%i.device
5 | Before=network.target
6 | Wants=network.target
7 |
8 | # NetworkManager users will probably want the dbus version instead.
9 |
10 | [Service]
11 | Type=simple
12 | ExecStart=@BINDIR@/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -i%I
13 |
14 | [Install]
15 | Alias=multi-user.target.wants/wpa_supplicant@%i.service
16 |
--------------------------------------------------------------------------------
/hostapd/hostapd.android.rc:
--------------------------------------------------------------------------------
1 | #
2 | # init.rc fragment for hostapd on Android
3 | # Copyright (c) 2002-2016, Jouni Malinen
4 | #
5 | # This software may be distributed under the terms of the BSD license.
6 | # See README for more details.
7 | #
8 |
9 | on post-fs-data
10 | mkdir /data/misc/wifi/hostapd 0770 wifi wifi
11 |
12 | service hostapd /vendor/bin/hostapd \
13 | /data/misc/wifi/hostapd.conf
14 | class main
15 | user wifi
16 | writepid /data/misc/wifi/hostapd.pid
17 | group wifi
18 | disabled
19 | oneshot
20 |
--------------------------------------------------------------------------------
/src/p2p/Makefile:
--------------------------------------------------------------------------------
1 | all: libp2p.a
2 |
3 | clean:
4 | rm -f *~ *.o *.d *.gcno *.gcda *.gcov libp2p.a
5 |
6 | install:
7 | @echo Nothing to be made.
8 |
9 | include ../lib.rules
10 |
11 | CFLAGS += -DCONFIG_WIFI_DISPLAY
12 | CFLAGS += -DCONFIG_WPS_NFC
13 |
14 | LIB_OBJS= \
15 | p2p_build.o \
16 | p2p.o \
17 | p2p_dev_disc.o \
18 | p2p_go_neg.o \
19 | p2p_group.o \
20 | p2p_invitation.o \
21 | p2p_parse.o \
22 | p2p_pd.o \
23 | p2p_sd.o \
24 | p2p_utils.o
25 |
26 | libp2p.a: $(LIB_OBJS)
27 | $(AR) crT $@ $?
28 |
29 | -include $(OBJS:%.o=%.d)
30 |
--------------------------------------------------------------------------------
/src/utils/browser.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Hotspot 2.0 client - Web browser
3 | * Copyright (c) 2013, Qualcomm Atheros, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef BROWSER_H
10 | #define BROWSER_H
11 |
12 | #ifdef CONFIG_NO_BROWSER
13 | static inline int hs20_web_browser(const char *url)
14 | {
15 | return -1;
16 | }
17 | #else /* CONFIG_NO_BROWSER */
18 | int hs20_web_browser(const char *url);
19 | #endif /* CONFIG_NO_BROWSER */
20 |
21 | #endif /* BROWSER_H */
22 |
--------------------------------------------------------------------------------
/wpa_supplicant/wpa_supplicant_conf.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # Copyright (C) 2010 The Android Open Source Project
4 | #
5 | # This software may be distributed under the terms of the BSD license.
6 | # See README for more details.
7 | #
8 |
9 | # Generate a wpa_supplicant.conf from the template.
10 | # $1: the template file name
11 | if [ -n "$WIFI_DRIVER_SOCKET_IFACE" ]
12 | then
13 | sed -e 's/#.*$//' -e 's/[ \t]*$//' -e '/^$/d' < $1 | sed -e "s/wlan0/$WIFI_DRIVER_SOCKET_IFACE/"
14 | else
15 | sed -e 's/#.*$//' -e 's/[ \t]*$//' -e '/^$/d' < $1
16 | fi
17 |
--------------------------------------------------------------------------------
/debian/watch:
--------------------------------------------------------------------------------
1 | # Find hostapd tarball in http://w1.fi/releases/.
2 | # We need to generate a merged wpa tarball from wpa_supplicant and hostapd,
3 | # so use our own script instead of uupdate.
4 | version=4
5 | #opts=pgpmode=auto http://w1.fi/releases/hostapd-([\.0-9]+)\.tar\.gz debian debian/uscan-hook
6 |
7 | opts="mode=git, pgpmode=none, repack, compression=xz" \
8 | git://w1.fi/hostap.git \
9 | refs/tags/hostap_([\d]+)_([\d]+)
10 |
11 | opts="mode=git, pgpmode=none, pretty=2.9+git%cd+%h, repack, compression=xz" \
12 | git://w1.fi/hostap.git \
13 | HEAD
14 |
--------------------------------------------------------------------------------
/src/rsn_supp/Makefile:
--------------------------------------------------------------------------------
1 | all: librsn_supp.a
2 |
3 | clean:
4 | rm -f *~ *.o *.d *.gcno *.gcda *.gcov librsn_supp.a
5 |
6 | install:
7 | @echo Nothing to be made.
8 |
9 | include ../lib.rules
10 |
11 | CFLAGS += -DCONFIG_IEEE80211W
12 | CFLAGS += -DCONFIG_IEEE80211R
13 | CFLAGS += -DCONFIG_TDLS
14 | CFLAGS += -DCONFIG_WNM
15 | CFLAGS += -DIEEE8021X_EAPOL
16 |
17 | LIB_OBJS= \
18 | pmksa_cache.o \
19 | wpa_ft.o \
20 | tdls.o \
21 | preauth.o \
22 | wpa.o \
23 | wpa_ie.o
24 |
25 | librsn_supp.a: $(LIB_OBJS)
26 | $(AR) crT $@ $?
27 |
28 | -include $(OBJS:%.o=%.d)
29 |
--------------------------------------------------------------------------------
/src/crypto/tls_openssl.h:
--------------------------------------------------------------------------------
1 | /*
2 | * SSL/TLS interface functions for OpenSSL
3 | * Copyright (c) 2004-2015, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef TLS_OPENSSL_H
10 | #define TLS_OPENSSL_H
11 |
12 | enum ocsp_result {
13 | OCSP_GOOD, OCSP_REVOKED, OCSP_NO_RESPONSE, OCSP_INVALID
14 | };
15 |
16 | enum ocsp_result check_ocsp_resp(SSL_CTX *ssl_ctx, SSL *ssl, X509 *cert,
17 | X509 *issuer, X509 *issuer_issuer);
18 |
19 | #endif /* TLS_OPENSSL_H */
20 |
--------------------------------------------------------------------------------
/src/crypto/crypto_none.c:
--------------------------------------------------------------------------------
1 | /*
2 | * WPA Supplicant / Empty template functions for crypto wrapper
3 | * Copyright (c) 2005, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #include "includes.h"
10 |
11 | #include "common.h"
12 | #include "crypto.h"
13 |
14 |
15 | int md4_vector(size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac)
16 | {
17 | return 0;
18 | }
19 |
20 |
21 | int des_encrypt(const u8 *clear, const u8 *key, u8 *cypher)
22 | {
23 | return 0;
24 | }
25 |
--------------------------------------------------------------------------------
/src/common/Makefile:
--------------------------------------------------------------------------------
1 | all: libcommon.a
2 |
3 | clean:
4 | rm -f *~ *.o *.d *.gcno *.gcda *.gcov libcommon.a
5 |
6 | install:
7 | @echo Nothing to be made.
8 |
9 | include ../lib.rules
10 |
11 | CFLAGS += -DCONFIG_IEEE80211R
12 | CFLAGS += -DCONFIG_IEEE80211W
13 | CFLAGS += -DCONFIG_HS20
14 | CFLAGS += -DCONFIG_SAE
15 | CFLAGS += -DCONFIG_SUITE
16 | CFLAGS += -DCONFIG_SUITEB
17 |
18 | LIB_OBJS= \
19 | gas.o \
20 | hw_features_common.o \
21 | ieee802_11_common.o \
22 | sae.o \
23 | wpa_common.o
24 |
25 | libcommon.a: $(LIB_OBJS)
26 | $(AR) crT $@ $?
27 |
28 | -include $(OBJS:%.o=%.d)
29 |
--------------------------------------------------------------------------------
/src/crypto/md5.h:
--------------------------------------------------------------------------------
1 | /*
2 | * MD5 hash implementation and interface functions
3 | * Copyright (c) 2003-2009, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef MD5_H
10 | #define MD5_H
11 |
12 | #define MD5_MAC_LEN 16
13 |
14 | int hmac_md5_vector(const u8 *key, size_t key_len, size_t num_elem,
15 | const u8 *addr[], const size_t *len, u8 *mac);
16 | int hmac_md5(const u8 *key, size_t key_len, const u8 *data, size_t data_len,
17 | u8 *mac);
18 |
19 | #endif /* MD5_H */
20 |
--------------------------------------------------------------------------------
/wpa_supplicant/systemd/wpa_supplicant-wired.service.arg.in:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=WPA supplicant daemon (interface- and wired driver-specific version)
3 | Requires=sys-subsystem-net-devices-%i.device
4 | After=sys-subsystem-net-devices-%i.device
5 | Before=network.target
6 | Wants=network.target
7 |
8 | # NetworkManager users will probably want the dbus version instead.
9 |
10 | [Service]
11 | Type=simple
12 | ExecStart=@BINDIR@/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-wired-%I.conf -Dwired -i%I
13 |
14 | [Install]
15 | Alias=multi-user.target.wants/wpa_supplicant-wired@%i.service
16 |
--------------------------------------------------------------------------------
/wpa_supplicant/binder/binder_constants.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * binder interface for wpa_supplicant daemon
3 | * Copyright (c) 2004-2016, Jouni Malinen
4 | * Copyright (c) 2004-2016, Roshan Pius
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #include "binder_constants.h"
11 |
12 | namespace wpa_supplicant_binder {
13 | namespace binder_constants {
14 |
15 | const char kServiceName[] = "wpa_supplicant";
16 |
17 | } /* namespace binder_constants */
18 | } /* namespace wpa_supplicant_binder */
19 |
--------------------------------------------------------------------------------
/wpa_supplicant/systemd/wpa_supplicant-nl80211.service.arg.in:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=WPA supplicant daemon (interface- and nl80211 driver-specific version)
3 | Requires=sys-subsystem-net-devices-%i.device
4 | After=sys-subsystem-net-devices-%i.device
5 | Before=network.target
6 | Wants=network.target
7 |
8 | # NetworkManager users will probably want the dbus version instead.
9 |
10 | [Service]
11 | Type=simple
12 | ExecStart=@BINDIR@/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-nl80211-%I.conf -Dnl80211 -i%I
13 |
14 | [Install]
15 | Alias=multi-user.target.wants/wpa_supplicant-nl80211@%i.service
16 |
--------------------------------------------------------------------------------
/debian/wpasupplicant.lintian-overrides:
--------------------------------------------------------------------------------
1 | # We distribute the package under the terms of the BSD license due to the
2 | # openssl issue, tell lintian to not complain:
3 | wpasupplicant binary: possible-gpl-code-linked-with-openssl
4 |
5 | # false positive spelling complaints
6 | wpasupplicant binary: spelling-error-in-binary sbin/wpa_supplicant ment meant
7 |
8 | # no need for init scripts since wpa-supplicant has NM and ifupdown integration
9 | wpasupplicant: package-supports-alternative-init-but-no-init.d-script
10 |
11 | # this is a library
12 | wpasupplicant: script-not-executable etc/wpa_supplicant/functions.sh
13 |
--------------------------------------------------------------------------------
/src/utils/platform.h:
--------------------------------------------------------------------------------
1 | #ifndef PLATFORM_H
2 | #define PLATFORM_H
3 |
4 | #include "includes.h"
5 | #include "common.h"
6 |
7 | #define le16_to_cpu le_to_host16
8 | #define le32_to_cpu le_to_host32
9 |
10 | #define get_unaligned(p) \
11 | ({ \
12 | struct packed_dummy_struct { \
13 | typeof(*(p)) __val; \
14 | } __attribute__((packed)) *__ptr = (void *) (p); \
15 | \
16 | __ptr->__val; \
17 | })
18 | #define get_unaligned_le16(p) le16_to_cpu(get_unaligned((le16 *)(p)))
19 | #define get_unaligned_le32(p) le32_to_cpu(get_unaligned((le32 *)(p)))
20 |
21 | #endif /* PLATFORM_H */
22 |
--------------------------------------------------------------------------------
/wpa_supplicant/wpa_gui-qt4/scanresultsitem.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_gui - ScanResultsItem class
3 | * Copyright (c) 2015, Adrian Nowicki
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #include "scanresultsitem.h"
10 |
11 | bool ScanResultsItem::operator< (const QTreeWidgetItem &other) const
12 | {
13 | int sortCol = treeWidget()->sortColumn();
14 | if (sortCol == 2 || sortCol == 3) {
15 | return text(sortCol).toInt() < other.text(sortCol).toInt();
16 | }
17 | return text(sortCol) < other.text(sortCol);
18 | }
19 |
--------------------------------------------------------------------------------
/debian/config/wpasupplicant/linux-udeb:
--------------------------------------------------------------------------------
1 | # Debian's wpa_supplicant build time configuration
2 | CONFIG_DRIVER_WEXT=y
3 | CONFIG_DRIVER_NL80211=y
4 | CONFIG_LIBNL32=y
5 | CONFIG_CTRL_IFACE=y
6 | CONFIG_BACKEND=file
7 | CONFIG_MAIN=main
8 | CONFIG_OS=unix
9 | CONFIG_ELOOP=eloop
10 | CONFIG_L2_PACKET=linux
11 |
12 | # At least one of these two is needed to get
13 | # the netlink driver working, why this is the case
14 | # is currently mysterious
15 | #CONFIG_IEEE8021X_EAPOL=y
16 | CONFIG_WPS=y
17 |
18 | # enable syslog support, as requested by d-i/ netcfg
19 | CONFIG_DEBUG_SYSLOG=y
20 | CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
21 |
--------------------------------------------------------------------------------
/debian/wpasupplicant.install:
--------------------------------------------------------------------------------
1 | debian/ifupdown/wpa_action sbin/
2 | debian/ifupdown/action_wpa.sh etc/wpa_supplicant/
3 | debian/ifupdown/functions.sh etc/wpa_supplicant/
4 | debian/ifupdown/wpasupplicant/ifupdown.sh etc/wpa_supplicant/
5 | wpa_supplicant/dbus/fi.*.service usr/share/dbus-1/system-services/
6 | wpa_supplicant/examples/60_wpa_supplicant usr/lib/pm-utils/sleep.d/
7 | wpa_supplicant/systemd/*.service lib/systemd/system/
8 | wpa_supplicant/wpa_cli sbin/
9 | wpa_supplicant/wpa_passphrase usr/bin/
10 | wpa_supplicant/wpa_supplicant sbin/
11 | debian/NetworkManager/no-mac-addr-change.conf usr/lib/NetworkManager/conf.d/
12 |
--------------------------------------------------------------------------------
/src/crypto/md5_i.h:
--------------------------------------------------------------------------------
1 | /*
2 | * MD5 internal definitions
3 | * Copyright (c) 2003-2005, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef MD5_I_H
10 | #define MD5_I_H
11 |
12 | struct MD5Context {
13 | u32 buf[4];
14 | u32 bits[2];
15 | u8 in[64];
16 | };
17 |
18 | void MD5Init(struct MD5Context *context);
19 | void MD5Update(struct MD5Context *context, unsigned char const *buf,
20 | unsigned len);
21 | void MD5Final(unsigned char digest[16], struct MD5Context *context);
22 |
23 | #endif /* MD5_I_H */
24 |
--------------------------------------------------------------------------------
/wpa_supplicant/wpa_gui-qt4/scanresultsitem.h:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_gui - ScanResultsItem class
3 | * Copyright (c) 2015, Adrian Nowicki
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef SCANRESULTSITEM_H
10 | #define SCANRESULTSITEM_H
11 |
12 | #include
13 |
14 | class ScanResultsItem : public QTreeWidgetItem
15 | {
16 | public:
17 | ScanResultsItem(QTreeWidget *tree) : QTreeWidgetItem(tree) {}
18 | bool operator< (const QTreeWidgetItem &other) const;
19 | };
20 |
21 | #endif /* SCANRESULTSITEM_H */
22 |
--------------------------------------------------------------------------------
/wpa_supplicant/wpa_gui-qt4/stringquery.h:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_gui - StringQuery class
3 | * Copyright (c) 2009, Atheros Communications
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef STRINGQUERY_H
10 | #define STRINGQUERY_H
11 |
12 | #include
13 | #include
14 | #include
15 |
16 | class StringQuery : public QDialog
17 | {
18 | Q_OBJECT
19 |
20 | public:
21 | StringQuery(QString label);
22 | QString get_string();
23 |
24 | private:
25 | QLineEdit *edit;
26 | };
27 |
28 | #endif /* STRINGQUERY_H */
29 |
--------------------------------------------------------------------------------
/src/crypto/aes.h:
--------------------------------------------------------------------------------
1 | /*
2 | * AES functions
3 | * Copyright (c) 2003-2006, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef AES_H
10 | #define AES_H
11 |
12 | #define AES_BLOCK_SIZE 16
13 |
14 | void * aes_encrypt_init(const u8 *key, size_t len);
15 | int aes_encrypt(void *ctx, const u8 *plain, u8 *crypt);
16 | void aes_encrypt_deinit(void *ctx);
17 | void * aes_decrypt_init(const u8 *key, size_t len);
18 | int aes_decrypt(void *ctx, const u8 *crypt, u8 *plain);
19 | void aes_decrypt_deinit(void *ctx);
20 |
21 | #endif /* AES_H */
22 |
--------------------------------------------------------------------------------
/src/crypto/dh_group5.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Diffie-Hellman group 5 operations
3 | * Copyright (c) 2009, 2012, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef DH_GROUP5_H
10 | #define DH_GROUP5_H
11 |
12 | void * dh5_init(struct wpabuf **priv, struct wpabuf **publ);
13 | void * dh5_init_fixed(const struct wpabuf *priv, const struct wpabuf *publ);
14 | struct wpabuf * dh5_derive_shared(void *ctx, const struct wpabuf *peer_public,
15 | const struct wpabuf *own_private);
16 | void dh5_free(void *ctx);
17 |
18 | #endif /* DH_GROUP5_H */
19 |
--------------------------------------------------------------------------------
/src/utils/bitfield.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Bitfield
3 | * Copyright (c) 2013, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef BITFIELD_H
10 | #define BITFIELD_H
11 |
12 | struct bitfield;
13 |
14 | struct bitfield * bitfield_alloc(size_t max_bits);
15 | void bitfield_free(struct bitfield *bf);
16 | void bitfield_set(struct bitfield *bf, size_t bit);
17 | void bitfield_clear(struct bitfield *bf, size_t bit);
18 | int bitfield_is_set(struct bitfield *bf, size_t bit);
19 | int bitfield_get_first_zero(struct bitfield *bf);
20 |
21 | #endif /* BITFIELD_H */
22 |
--------------------------------------------------------------------------------
/src/crypto/aes_siv.h:
--------------------------------------------------------------------------------
1 | /*
2 | * AES SIV (RFC 5297)
3 | * Copyright (c) 2013 Cozybit, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef AES_SIV_H
10 | #define AES_SIV_H
11 |
12 | int aes_siv_encrypt(const u8 *key, size_t key_len,
13 | const u8 *pw, size_t pwlen,
14 | size_t num_elem, const u8 *addr[], const size_t *len,
15 | u8 *out);
16 | int aes_siv_decrypt(const u8 *key, size_t key_len,
17 | const u8 *iv_crypt, size_t iv_c_len,
18 | size_t num_elem, const u8 *addr[], const size_t *len,
19 | u8 *out);
20 |
21 | #endif /* AES_SIV_H */
22 |
--------------------------------------------------------------------------------
/src/eap_common/Makefile:
--------------------------------------------------------------------------------
1 | all: libeap_common.a
2 |
3 | clean:
4 | rm -f *~ *.o *.d *.gcno *.gcda *.gcov libeap_common.a
5 |
6 | install:
7 | @echo Nothing to be made.
8 |
9 | include ../lib.rules
10 |
11 | LIB_OBJS= \
12 | chap.o \
13 | eap_common.o \
14 | eap_eke_common.o \
15 | eap_eke_common.o \
16 | eap_fast_common.o \
17 | eap_gpsk_common.o \
18 | eap_ikev2_common.o \
19 | eap_pax_common.o \
20 | eap_peap_common.o \
21 | eap_psk_common.o \
22 | eap_pwd_common.o \
23 | eap_sake_common.o \
24 | eap_sim_common.o \
25 | eap_wsc_common.o \
26 | ikev2_common.o
27 |
28 | libeap_common.a: $(LIB_OBJS)
29 | $(AR) crT $@ $?
30 |
31 | -include $(OBJS:%.o=%.d)
32 |
--------------------------------------------------------------------------------
/src/ap/fils_hlp.h:
--------------------------------------------------------------------------------
1 | /*
2 | * FILS HLP request processing
3 | * Copyright (c) 2017, Qualcomm Atheros, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef FILS_HLP_H
10 | #define FILS_HLP_H
11 |
12 | int fils_process_hlp(struct hostapd_data *hapd, struct sta_info *sta,
13 | const u8 *pos, int left);
14 |
15 | #ifdef CONFIG_FILS
16 |
17 | void fils_hlp_deinit(struct hostapd_data *hapd);
18 |
19 | #else /* CONFIG_FILS */
20 |
21 | static inline void fils_hlp_deinit(struct hostapd_data *hapd)
22 | {
23 | }
24 |
25 | #endif /* CONFIG_FILS */
26 |
27 | #endif /* FILS_HLP_H */
28 |
--------------------------------------------------------------------------------
/wpa_supplicant/binder/binder_i.h:
--------------------------------------------------------------------------------
1 | /*
2 | * binder interface for wpa_supplicant daemon
3 | * Copyright (c) 2004-2016, Jouni Malinen
4 | * Copyright (c) 2004-2016, Roshan Pius
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #ifndef BINDER_I_H
11 | #define BINDER_I_H
12 |
13 | #ifdef _cplusplus
14 | extern "C" {
15 | #endif // _cplusplus
16 |
17 | struct wpas_binder_priv
18 | {
19 | int binder_fd;
20 | struct wpa_global *global;
21 | void *binder_manager;
22 | };
23 |
24 | #ifdef _cplusplus
25 | }
26 | #endif /* _cplusplus */
27 |
28 | #endif /* BINDER_I_H */
29 |
--------------------------------------------------------------------------------
/src/crypto/sha384_i.h:
--------------------------------------------------------------------------------
1 | /*
2 | * SHA-384 internal definitions
3 | * Copyright (c) 2015, Pali Rohár
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef SHA384_I_H
10 | #define SHA384_I_H
11 |
12 | #include "sha512_i.h"
13 |
14 | #define SHA384_BLOCK_SIZE SHA512_BLOCK_SIZE
15 |
16 | #define sha384_state sha512_state
17 |
18 | void sha384_init(struct sha384_state *md);
19 | int sha384_process(struct sha384_state *md, const unsigned char *in,
20 | unsigned long inlen);
21 | int sha384_done(struct sha384_state *md, unsigned char *out);
22 |
23 | #endif /* SHA384_I_H */
24 |
--------------------------------------------------------------------------------
/hs20/server/ca/ocsp-req.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | for i in *.pem; do
4 | echo "===[ $i ]==================="
5 | openssl ocsp -text -CAfile ca.pem -verify_other demoCA/cacert.pem -trust_other -issuer demoCA/cacert.pem -cert $i -url http://localhost:8888/
6 |
7 | # openssl ocsp -text -CAfile rootCA/cacert.pem -issuer demoCA/cacert.pem -cert $i -url http://localhost:8888/
8 |
9 | # openssl ocsp -text -CAfile rootCA/cacert.pem -verify_other demoCA/cacert.pem -trust_other -issuer demoCA/cacert.pem -cert $i -url http://localhost:8888/
10 | # openssl ocsp -text -CAfile rootCA/cacert.pem -VAfile ca.pem -trust_other -issuer demoCA/cacert.pem -cert $i -url http://localhost:8888/
11 | done
12 |
--------------------------------------------------------------------------------
/src/crypto/sha1_i.h:
--------------------------------------------------------------------------------
1 | /*
2 | * SHA1 internal definitions
3 | * Copyright (c) 2003-2005, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef SHA1_I_H
10 | #define SHA1_I_H
11 |
12 | struct SHA1Context {
13 | u32 state[5];
14 | u32 count[2];
15 | unsigned char buffer[64];
16 | };
17 |
18 | void SHA1Init(struct SHA1Context *context);
19 | void SHA1Update(struct SHA1Context *context, const void *data, u32 len);
20 | void SHA1Final(unsigned char digest[20], struct SHA1Context *context);
21 | void SHA1Transform(u32 state[5], const unsigned char buffer[64]);
22 |
23 | #endif /* SHA1_I_H */
24 |
--------------------------------------------------------------------------------
/wpa_supplicant/dbus/dbus_common.h:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_supplicant D-Bus control interface - common definitions
3 | * Copyright (c) 2006, Dan Williams and Red Hat, Inc.
4 | * Copyright (c) 2009, Witold Sowa
5 | * Copyright (c) 2009, Jouni Malinen
6 | *
7 | * This software may be distributed under the terms of the BSD license.
8 | * See README for more details.
9 | */
10 |
11 | #ifndef DBUS_COMMON_H
12 | #define DBUS_COMMON_H
13 |
14 | struct wpas_dbus_priv;
15 | struct wpa_global;
16 |
17 | struct wpas_dbus_priv * wpas_dbus_init(struct wpa_global *global);
18 | void wpas_dbus_deinit(struct wpas_dbus_priv *priv);
19 |
20 | #endif /* DBUS_COMMON_H */
21 |
--------------------------------------------------------------------------------
/src/crypto/sha256_i.h:
--------------------------------------------------------------------------------
1 | /*
2 | * SHA-256 internal definitions
3 | * Copyright (c) 2003-2011, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef SHA256_I_H
10 | #define SHA256_I_H
11 |
12 | #define SHA256_BLOCK_SIZE 64
13 |
14 | struct sha256_state {
15 | u64 length;
16 | u32 state[8], curlen;
17 | u8 buf[SHA256_BLOCK_SIZE];
18 | };
19 |
20 | void sha256_init(struct sha256_state *md);
21 | int sha256_process(struct sha256_state *md, const unsigned char *in,
22 | unsigned long inlen);
23 | int sha256_done(struct sha256_state *md, unsigned char *out);
24 |
25 | #endif /* SHA256_I_H */
26 |
--------------------------------------------------------------------------------
/src/drivers/rfkill.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Linux rfkill helper functions for driver wrappers
3 | * Copyright (c) 2010, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef RFKILL_H
10 | #define RFKILL_H
11 |
12 | struct rfkill_data;
13 |
14 | struct rfkill_config {
15 | void *ctx;
16 | char ifname[IFNAMSIZ];
17 | void (*blocked_cb)(void *ctx);
18 | void (*unblocked_cb)(void *ctx);
19 | };
20 |
21 | struct rfkill_data * rfkill_init(struct rfkill_config *cfg);
22 | void rfkill_deinit(struct rfkill_data *rfkill);
23 | int rfkill_is_blocked(struct rfkill_data *rfkill);
24 |
25 | #endif /* RFKILL_H */
26 |
--------------------------------------------------------------------------------
/src/crypto/sha512_i.h:
--------------------------------------------------------------------------------
1 | /*
2 | * SHA-512 internal definitions
3 | * Copyright (c) 2015, Pali Rohár
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef SHA512_I_H
10 | #define SHA512_I_H
11 |
12 | #define SHA512_BLOCK_SIZE 128
13 |
14 | struct sha512_state {
15 | u64 length, state[8];
16 | u32 curlen;
17 | u8 buf[SHA512_BLOCK_SIZE];
18 | };
19 |
20 | void sha512_init(struct sha512_state *md);
21 | int sha512_process(struct sha512_state *md, const unsigned char *in,
22 | unsigned long inlen);
23 | int sha512_done(struct sha512_state *md, unsigned char *out);
24 |
25 | #endif /* SHA512_I_H */
26 |
--------------------------------------------------------------------------------
/src/utils/edit.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Command line editing and history
3 | * Copyright (c) 2010, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef EDIT_H
10 | #define EDIT_H
11 |
12 | int edit_init(void (*cmd_cb)(void *ctx, char *cmd),
13 | void (*eof_cb)(void *ctx),
14 | char ** (*completion_cb)(void *ctx, const char *cmd, int pos),
15 | void *ctx, const char *history_file, const char *ps);
16 | void edit_deinit(const char *history_file,
17 | int (*filter_cb)(void *ctx, const char *cmd));
18 | void edit_clear_line(void);
19 | void edit_redraw(void);
20 |
21 | #endif /* EDIT_H */
22 |
--------------------------------------------------------------------------------
/wpa_supplicant/wpa_gui-qt4/signalbar.h:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_gui - SignalBar class
3 | * Copyright (c) 2011, Kel Modderman
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef SIGNALBAR_H
10 | #define SIGNALBAR_H
11 |
12 | #include
13 | #include
14 |
15 | class SignalBar : public QStyledItemDelegate
16 | {
17 | Q_OBJECT
18 |
19 | public:
20 | SignalBar(QObject *parent = 0);
21 | ~SignalBar();
22 |
23 | virtual void paint(QPainter *painter,
24 | const QStyleOptionViewItem &option,
25 | const QModelIndex &index) const ;
26 | };
27 |
28 | #endif /* SIGNALBAR_H */
29 |
--------------------------------------------------------------------------------
/wpa_supplicant/binder/binder_constants.h:
--------------------------------------------------------------------------------
1 | /*
2 | * binder interface for wpa_supplicant daemon
3 | * Copyright (c) 2004-2016, Jouni Malinen
4 | * Copyright (c) 2004-2016, Roshan Pius
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #ifndef WPA_SUPPLICANT_BINDER_BINDER_CONSTANTS_H
11 | #define WPA_SUPPLICANT_BINDER_BINDER_CONSTANTS_H
12 |
13 | namespace wpa_supplicant_binder {
14 | namespace binder_constants {
15 |
16 | extern const char kServiceName[];
17 |
18 | } /* namespace binder_constants */
19 | } /* namespace wpa_supplicant_binder */
20 |
21 | #endif /* WPA_SUPPLICANT_BINDER_BINDER_CONSTANTS_H */
22 |
--------------------------------------------------------------------------------
/src/ap/dhcp_snoop.h:
--------------------------------------------------------------------------------
1 | /*
2 | * DHCP snooping for Proxy ARP
3 | * Copyright (c) 2014, Qualcomm Atheros, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef DHCP_SNOOP_H
10 | #define DHCP_SNOOP_H
11 |
12 | #ifdef CONFIG_PROXYARP
13 |
14 | int dhcp_snoop_init(struct hostapd_data *hapd);
15 | void dhcp_snoop_deinit(struct hostapd_data *hapd);
16 |
17 | #else /* CONFIG_PROXYARP */
18 |
19 | static inline int dhcp_snoop_init(struct hostapd_data *hapd)
20 | {
21 | return 0;
22 | }
23 |
24 | static inline void dhcp_snoop_deinit(struct hostapd_data *hapd)
25 | {
26 | }
27 |
28 | #endif /* CONFIG_PROXYARP */
29 |
30 | #endif /* DHCP_SNOOP_H */
31 |
--------------------------------------------------------------------------------
/src/utils/ip_addr.h:
--------------------------------------------------------------------------------
1 | /*
2 | * IP address processing
3 | * Copyright (c) 2003-2006, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef IP_ADDR_H
10 | #define IP_ADDR_H
11 |
12 | struct hostapd_ip_addr {
13 | int af; /* AF_INET / AF_INET6 */
14 | union {
15 | struct in_addr v4;
16 | #ifdef CONFIG_IPV6
17 | struct in6_addr v6;
18 | #endif /* CONFIG_IPV6 */
19 | u8 max_len[16];
20 | } u;
21 | };
22 |
23 | const char * hostapd_ip_txt(const struct hostapd_ip_addr *addr, char *buf,
24 | size_t buflen);
25 | int hostapd_parse_ip_addr(const char *txt, struct hostapd_ip_addr *addr);
26 |
27 | #endif /* IP_ADDR_H */
28 |
--------------------------------------------------------------------------------
/src/eap_common/chap.c:
--------------------------------------------------------------------------------
1 | /*
2 | * CHAP-MD5 (RFC 1994)
3 | * Copyright (c) 2007-2009, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #include "includes.h"
10 |
11 | #include "common.h"
12 | #include "crypto/crypto.h"
13 | #include "chap.h"
14 |
15 | int chap_md5(u8 id, const u8 *secret, size_t secret_len, const u8 *challenge,
16 | size_t challenge_len, u8 *response)
17 | {
18 | const u8 *addr[3];
19 | size_t len[3];
20 |
21 | addr[0] = &id;
22 | len[0] = 1;
23 | addr[1] = secret;
24 | len[1] = secret_len;
25 | addr[2] = challenge;
26 | len[2] = challenge_len;
27 | return md5_vector(3, addr, len, response);
28 | }
29 |
--------------------------------------------------------------------------------
/wpa_supplicant/binder/fi/w1/wpa_supplicant/ISupplicantCallbacks.aidl:
--------------------------------------------------------------------------------
1 | /*
2 | * binder interface for wpa_supplicant daemon
3 | * Copyright (c) 2004-2016, Jouni Malinen
4 | * Copyright (c) 2004-2016, Roshan Pius
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | package fi.w1.wpa_supplicant;
11 |
12 | import android.os.PersistableBundle;
13 |
14 | /**
15 | * Callback Interface exposed by the wpa_supplicant service. Clients need
16 | * to host an instance of this binder object and pass a reference of the object
17 | * to wpa_supplicant via the registerCallbacksObject method.
18 | */
19 | interface ISupplicantCallbacks {
20 | }
21 |
--------------------------------------------------------------------------------
/src/utils/base64.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Base64 encoding/decoding (RFC1341)
3 | * Copyright (c) 2005, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef BASE64_H
10 | #define BASE64_H
11 |
12 | unsigned char * base64_encode(const unsigned char *src, size_t len,
13 | size_t *out_len);
14 | unsigned char * base64_decode(const unsigned char *src, size_t len,
15 | size_t *out_len);
16 | unsigned char * base64_url_encode(const unsigned char *src, size_t len,
17 | size_t *out_len, int add_pad);
18 | unsigned char * base64_url_decode(const unsigned char *src, size_t len,
19 | size_t *out_len);
20 |
21 | #endif /* BASE64_H */
22 |
--------------------------------------------------------------------------------
/src/ap/wmm.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / WMM (Wi-Fi Multimedia)
3 | * Copyright 2002-2003, Instant802 Networks, Inc.
4 | * Copyright 2005-2006, Devicescape Software, Inc.
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #ifndef WME_H
11 | #define WME_H
12 |
13 | struct ieee80211_mgmt;
14 | struct wmm_tspec_element;
15 |
16 | u8 * hostapd_eid_wmm(struct hostapd_data *hapd, u8 *eid);
17 | int hostapd_eid_wmm_valid(struct hostapd_data *hapd, const u8 *eid,
18 | size_t len);
19 | void hostapd_wmm_action(struct hostapd_data *hapd,
20 | const struct ieee80211_mgmt *mgmt, size_t len);
21 | int wmm_process_tspec(struct wmm_tspec_element *tspec);
22 |
23 | #endif /* WME_H */
24 |
--------------------------------------------------------------------------------
/wpa_supplicant/doc/docbook/Makefile:
--------------------------------------------------------------------------------
1 | all: man html pdf
2 |
3 | FILES += wpa_background
4 | FILES += wpa_cli
5 | FILES += wpa_gui
6 | FILES += wpa_passphrase
7 | FILES += wpa_priv
8 | FILES += wpa_supplicant.conf
9 | FILES += wpa_supplicant
10 | FILES += eapol_test
11 |
12 | man:
13 | for i in $(FILES); do docbook2man $$i.sgml; done
14 |
15 | html:
16 | for i in $(FILES); do docbook2html $$i.sgml && \
17 | mv index.html $$i.html; done
18 |
19 | pdf:
20 | for i in $(FILES); do docbook2pdf $$i.sgml; done
21 |
22 |
23 | clean:
24 | rm -f wpa_background.8 wpa_cli.8 wpa_gui.8 wpa_passphrase.8 wpa_priv.8 wpa_supplicant.8 eapol_test.8
25 | rm -f wpa_supplicant.conf.5
26 | rm -f manpage.links manpage.refs
27 | rm -f $(FILES:%=%.pdf)
28 | rm -f $(FILES:%=%.html)
29 |
--------------------------------------------------------------------------------
/wpa_supplicant/libwpa_test.c:
--------------------------------------------------------------------------------
1 | /*
2 | * libwpa_test - Test program for libwpa_client.* library linking
3 | * Copyright (c) 2015, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #include "includes.h"
10 |
11 | #include "common/wpa_ctrl.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | struct wpa_ctrl *ctrl;
16 |
17 | ctrl = wpa_ctrl_open("foo");
18 | if (!ctrl)
19 | return -1;
20 | if (wpa_ctrl_attach(ctrl) == 0)
21 | wpa_ctrl_detach(ctrl);
22 | if (wpa_ctrl_pending(ctrl)) {
23 | char buf[10];
24 | size_t len;
25 |
26 | len = sizeof(buf);
27 | wpa_ctrl_recv(ctrl, buf, &len);
28 | }
29 | wpa_ctrl_close(ctrl);
30 |
31 | return 0;
32 | }
33 |
--------------------------------------------------------------------------------
/wpa_supplicant/wpa_gui-qt4/stringquery.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_gui - StringQuery class
3 | * Copyright (c) 2009, Atheros Communications
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #include
10 | #include
11 |
12 | #include "stringquery.h"
13 |
14 |
15 | StringQuery::StringQuery(QString label)
16 | {
17 | edit = new QLineEdit;
18 | edit->setFocus();
19 | QGridLayout *layout = new QGridLayout;
20 | layout->addWidget(new QLabel(label), 0, 0);
21 | layout->addWidget(edit, 0, 1);
22 | setLayout(layout);
23 |
24 | connect(edit, SIGNAL(returnPressed()), this, SLOT(accept()));
25 | }
26 |
27 |
28 | QString StringQuery::get_string()
29 | {
30 | return edit->text();
31 | }
32 |
--------------------------------------------------------------------------------
/wpa_supplicant/blacklist.h:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_supplicant - Temporary BSSID blacklist
3 | * Copyright (c) 2003-2007, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef BLACKLIST_H
10 | #define BLACKLIST_H
11 |
12 | struct wpa_blacklist {
13 | struct wpa_blacklist *next;
14 | u8 bssid[ETH_ALEN];
15 | int count;
16 | };
17 |
18 | struct wpa_blacklist * wpa_blacklist_get(struct wpa_supplicant *wpa_s,
19 | const u8 *bssid);
20 | int wpa_blacklist_add(struct wpa_supplicant *wpa_s, const u8 *bssid);
21 | int wpa_blacklist_del(struct wpa_supplicant *wpa_s, const u8 *bssid);
22 | void wpa_blacklist_clear(struct wpa_supplicant *wpa_s);
23 |
24 | #endif /* BLACKLIST_H */
25 |
--------------------------------------------------------------------------------
/src/eap_common/eap_wsc_common.h:
--------------------------------------------------------------------------------
1 | /*
2 | * EAP-WSC definitions for Wi-Fi Protected Setup
3 | * Copyright (c) 2007, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef EAP_WSC_COMMON_H
10 | #define EAP_WSC_COMMON_H
11 |
12 | #define EAP_VENDOR_TYPE_WSC 1
13 |
14 | #define WSC_FLAGS_MF 0x01
15 | #define WSC_FLAGS_LF 0x02
16 |
17 | #define WSC_ID_REGISTRAR "WFA-SimpleConfig-Registrar-1-0"
18 | #define WSC_ID_REGISTRAR_LEN 30
19 | #define WSC_ID_ENROLLEE "WFA-SimpleConfig-Enrollee-1-0"
20 | #define WSC_ID_ENROLLEE_LEN 29
21 |
22 | #define WSC_FRAGMENT_SIZE 1400
23 |
24 |
25 | struct wpabuf * eap_wsc_build_frag_ack(u8 id, u8 code);
26 |
27 | #endif /* EAP_WSC_COMMON_H */
28 |
--------------------------------------------------------------------------------
/src/tls/Makefile:
--------------------------------------------------------------------------------
1 | all: libtls.a
2 |
3 | clean:
4 | rm -f *~ *.o *.d libtls.a
5 |
6 | install:
7 | @echo Nothing to be made.
8 |
9 |
10 | include ../lib.rules
11 |
12 | CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
13 | CFLAGS += -DCONFIG_CRYPTO_INTERNAL
14 | CFLAGS += -DCONFIG_TLSV11
15 | CFLAGS += -DCONFIG_TLSV12
16 |
17 | LIB_OBJS= \
18 | asn1.o \
19 | bignum.o \
20 | pkcs1.o \
21 | pkcs5.o \
22 | pkcs8.o \
23 | rsa.o \
24 | tlsv1_client.o \
25 | tlsv1_client_read.o \
26 | tlsv1_client_write.o \
27 | tlsv1_client_ocsp.o \
28 | tlsv1_common.o \
29 | tlsv1_cred.o \
30 | tlsv1_record.o \
31 | tlsv1_server.o \
32 | tlsv1_server_read.o \
33 | tlsv1_server_write.o \
34 | x509v3.o
35 |
36 |
37 | libtls.a: $(LIB_OBJS)
38 | $(AR) crT $@ $?
39 |
40 | -include $(OBJS:%.o=%.d)
41 |
--------------------------------------------------------------------------------
/hs20/server/www/redirect.php:
--------------------------------------------------------------------------------
1 | query("SELECT rowid,* FROM sessions WHERE id='$id'")->fetch();
16 | if ($row == false) {
17 | die("Session not found");
18 | }
19 |
20 | $uri = $row['redirect_uri'];
21 |
22 | header("Location: $uri", true, 302);
23 |
24 | $user = $row['user'];
25 | $realm = $row['realm'];
26 |
27 | $db->exec("INSERT INTO eventlog(user,realm,sessionid,timestamp,notes) " .
28 | "VALUES ('$user', '$realm', '$id', " .
29 | "strftime('%Y-%m-%d %H:%M:%f','now'), " .
30 | "'redirected after user input')");
31 |
32 | ?>
33 |
--------------------------------------------------------------------------------
/hostapd/config_file.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / Configuration file parser
3 | * Copyright (c) 2003-2009, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef CONFIG_FILE_H
10 | #define CONFIG_FILE_H
11 |
12 | struct hostapd_config * hostapd_config_read(const char *fname);
13 | int hostapd_set_iface(struct hostapd_config *conf,
14 | struct hostapd_bss_config *bss, const char *field,
15 | char *value);
16 | int hostapd_acl_comp(const void *a, const void *b);
17 | int hostapd_add_acl_maclist(struct mac_acl_entry **acl, int *num,
18 | int vlan_id, const u8 *addr);
19 | void hostapd_remove_acl_mac(struct mac_acl_entry **acl, int *num,
20 | const u8 *addr);
21 |
22 | #endif /* CONFIG_FILE_H */
23 |
--------------------------------------------------------------------------------
/src/crypto/des_i.h:
--------------------------------------------------------------------------------
1 | /*
2 | * DES and 3DES-EDE ciphers
3 | * Copyright (c) 2006-2009, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef DES_I_H
10 | #define DES_I_H
11 |
12 | struct des3_key_s {
13 | u32 ek[3][32];
14 | u32 dk[3][32];
15 | };
16 |
17 | void des_key_setup(const u8 *key, u32 *ek, u32 *dk);
18 | void des_block_encrypt(const u8 *plain, const u32 *ek, u8 *crypt);
19 | void des_block_decrypt(const u8 *crypt, const u32 *dk, u8 *plain);
20 |
21 | void des3_key_setup(const u8 *key, struct des3_key_s *dkey);
22 | void des3_encrypt(const u8 *plain, const struct des3_key_s *key, u8 *crypt);
23 | void des3_decrypt(const u8 *crypt, const struct des3_key_s *key, u8 *plain);
24 |
25 | #endif /* DES_I_H */
26 |
--------------------------------------------------------------------------------
/src/wps/http.h:
--------------------------------------------------------------------------------
1 | /*
2 | * HTTP for WPS
3 | * Copyright (c) 2000-2003 Intel Corporation
4 | * Copyright (c) 2006-2007 Sony Corporation
5 | * Copyright (c) 2008-2009 Atheros Communications
6 | * Copyright (c) 2009, Jouni Malinen
7 | *
8 | * See wps_upnp.c for more details on licensing and code history.
9 | */
10 |
11 | #ifndef HTTP_H
12 | #define HTTP_H
13 |
14 | enum http_reply_code {
15 | HTTP_OK = 200,
16 | HTTP_BAD_REQUEST = 400,
17 | UPNP_INVALID_ACTION = 401,
18 | UPNP_INVALID_ARGS = 402,
19 | HTTP_NOT_FOUND = 404,
20 | HTTP_PRECONDITION_FAILED = 412,
21 | HTTP_INTERNAL_SERVER_ERROR = 500,
22 | HTTP_UNIMPLEMENTED = 501,
23 | UPNP_ACTION_FAILED = 501,
24 | UPNP_ARG_VALUE_INVALID = 600,
25 | UPNP_ARG_VALUE_OUT_OF_RANGE = 601,
26 | UPNP_OUT_OF_MEMORY = 603
27 | };
28 |
29 | #endif /* HTTP_H */
30 |
--------------------------------------------------------------------------------
/src/common/qca-vendor-attr.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Qualcomm Atheros vendor specific attribute definitions
3 | * Copyright (c) 2014, Qualcomm Atheros, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef QCA_VENDOR_ATTR_H
10 | #define QCA_VENDOR_ATTR_H
11 |
12 | /*
13 | * This file defines some of the attributes used with Qualcomm Atheros OUI
14 | * 00:13:74 in a way that is not suitable for qca-vendor.h, e.g., due to
15 | * compiler dependencies.
16 | */
17 |
18 | struct qca_avoid_freq_range {
19 | u32 start_freq;
20 | u32 end_freq;
21 | } __attribute__ ((packed));
22 |
23 | struct qca_avoid_freq_list {
24 | u32 count;
25 | struct qca_avoid_freq_range range[0];
26 | } __attribute__ ((packed));
27 |
28 | #endif /* QCA_VENDOR_ATTR_H */
29 |
--------------------------------------------------------------------------------
/src/crypto/dh_groups.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Diffie-Hellman groups
3 | * Copyright (c) 2007, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef DH_GROUPS_H
10 | #define DH_GROUPS_H
11 |
12 | struct dh_group {
13 | int id;
14 | const u8 *generator;
15 | size_t generator_len;
16 | const u8 *prime;
17 | size_t prime_len;
18 | const u8 *order;
19 | size_t order_len;
20 | unsigned int safe_prime:1;
21 | };
22 |
23 | const struct dh_group * dh_groups_get(int id);
24 | struct wpabuf * dh_init(const struct dh_group *dh, struct wpabuf **priv);
25 | struct wpabuf * dh_derive_shared(const struct wpabuf *peer_public,
26 | const struct wpabuf *own_private,
27 | const struct dh_group *dh);
28 |
29 | #endif /* DH_GROUPS_H */
30 |
--------------------------------------------------------------------------------
/src/wps/Makefile:
--------------------------------------------------------------------------------
1 | all: libwps.a
2 |
3 | clean:
4 | rm -f *~ *.o *.d *.gcno *.gcda *.gcov libwps.a
5 |
6 | install:
7 | @echo Nothing to be made.
8 |
9 | include ../lib.rules
10 |
11 | CFLAGS += -DCONFIG_P2P
12 | CFLAGS += -DCONFIG_WPS_OOB
13 | CFLAGS += -DCONFIG_WPS_NFC
14 |
15 | LIB_OBJS= \
16 | http_client.o \
17 | httpread.o \
18 | http_server.o \
19 | ndef.o \
20 | upnp_xml.o \
21 | wps_attr_build.o \
22 | wps_attr_parse.o \
23 | wps_attr_process.o \
24 | wps.o \
25 | wps_common.o \
26 | wps_dev_attr.o \
27 | wps_enrollee.o \
28 | wps_er.o \
29 | wps_er_ssdp.o \
30 | wps_module_tests.o \
31 | wps_registrar.o \
32 | wps_upnp_ap.o \
33 | wps_upnp.o \
34 | wps_upnp_event.o \
35 | wps_upnp_ssdp.o \
36 | wps_upnp_web.o
37 |
38 | libwps.a: $(LIB_OBJS)
39 | $(AR) crT $@ $?
40 |
41 | -include $(OBJS:%.o=%.d)
42 |
--------------------------------------------------------------------------------
/src/utils/Makefile:
--------------------------------------------------------------------------------
1 | all: libutils.a
2 |
3 | clean:
4 | rm -f *~ *.o *.d *.gcno *.gcda *.gcov libutils.a
5 |
6 | install:
7 | @echo Nothing to be made.
8 |
9 |
10 | include ../lib.rules
11 |
12 | #CFLAGS += -DWPA_TRACE
13 | CFLAGS += -DCONFIG_IPV6
14 | CFLAGS += -DCONFIG_DEBUG_FILE
15 |
16 | LIB_OBJS= \
17 | base64.o \
18 | bitfield.o \
19 | common.o \
20 | crc32.o \
21 | ip_addr.o \
22 | json.o \
23 | radiotap.o \
24 | trace.o \
25 | uuid.o \
26 | wpa_debug.o \
27 | wpabuf.o
28 |
29 | # Pick correct OS wrapper implementation
30 | LIB_OBJS += os_unix.o
31 |
32 | # Pick correct event loop implementation
33 | LIB_OBJS += eloop.o
34 |
35 | # Pick correct edit implementation
36 | LIB_OBJS += edit.o
37 |
38 | #LIB_OBJS += pcsc_funcs.o
39 |
40 | libutils.a: $(LIB_OBJS)
41 | $(AR) crT $@ $?
42 |
43 | -include $(OBJS:%.o=%.d)
44 |
--------------------------------------------------------------------------------
/src/utils/ext_password_i.h:
--------------------------------------------------------------------------------
1 | /*
2 | * External password backend - internal definitions
3 | * Copyright (c) 2012, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef EXT_PASSWORD_I_H
10 | #define EXT_PASSWORD_I_H
11 |
12 | #include "ext_password.h"
13 |
14 | struct ext_password_backend {
15 | const char *name;
16 | void * (*init)(const char *params);
17 | void (*deinit)(void *ctx);
18 | struct wpabuf * (*get)(void *ctx, const char *name);
19 | };
20 |
21 | struct wpabuf * ext_password_alloc(size_t len);
22 |
23 | /* Available ext_password backends */
24 |
25 | #ifdef CONFIG_EXT_PASSWORD_TEST
26 | extern const struct ext_password_backend ext_password_test;
27 | #endif /* CONFIG_EXT_PASSWORD_TEST */
28 |
29 | #endif /* EXT_PASSWORD_I_H */
30 |
--------------------------------------------------------------------------------
/src/ap/vlan.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / VLAN definition
3 | * Copyright (c) 2015, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef VLAN_H
10 | #define VLAN_H
11 |
12 | #define MAX_NUM_TAGGED_VLAN 32
13 |
14 | struct vlan_description {
15 | int notempty; /* 0 : no vlan information present, 1: else */
16 | int untagged; /* >0 802.1q vid */
17 | int tagged[MAX_NUM_TAGGED_VLAN]; /* first k items, ascending order */
18 | };
19 |
20 | #ifndef CONFIG_NO_VLAN
21 | int vlan_compare(struct vlan_description *a, struct vlan_description *b);
22 | #else /* CONFIG_NO_VLAN */
23 | static inline int
24 | vlan_compare(struct vlan_description *a, struct vlan_description *b)
25 | {
26 | return 0;
27 | }
28 | #endif /* CONFIG_NO_VLAN */
29 |
30 | #endif /* VLAN_H */
31 |
--------------------------------------------------------------------------------
/src/crypto/aes-encblock.c:
--------------------------------------------------------------------------------
1 | /*
2 | * AES encrypt_block
3 | *
4 | * Copyright (c) 2003-2007, Jouni Malinen
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #include "includes.h"
11 |
12 | #include "common.h"
13 | #include "aes.h"
14 | #include "aes_wrap.h"
15 |
16 | /**
17 | * aes_128_encrypt_block - Perform one AES 128-bit block operation
18 | * @key: Key for AES
19 | * @in: Input data (16 bytes)
20 | * @out: Output of the AES block operation (16 bytes)
21 | * Returns: 0 on success, -1 on failure
22 | */
23 | int aes_128_encrypt_block(const u8 *key, const u8 *in, u8 *out)
24 | {
25 | void *ctx;
26 | ctx = aes_encrypt_init(key, 16);
27 | if (ctx == NULL)
28 | return -1;
29 | aes_encrypt(ctx, in, out);
30 | aes_encrypt_deinit(ctx);
31 | return 0;
32 | }
33 |
--------------------------------------------------------------------------------
/src/drivers/netlink.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Netlink helper functions for driver wrappers
3 | * Copyright (c) 2002-2009, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef NETLINK_H
10 | #define NETLINK_H
11 |
12 | struct netlink_data;
13 | struct ifinfomsg;
14 |
15 | struct netlink_config {
16 | void *ctx;
17 | void (*newlink_cb)(void *ctx, struct ifinfomsg *ifi, u8 *buf,
18 | size_t len);
19 | void (*dellink_cb)(void *ctx, struct ifinfomsg *ifi, u8 *buf,
20 | size_t len);
21 | };
22 |
23 | struct netlink_data * netlink_init(struct netlink_config *cfg);
24 | void netlink_deinit(struct netlink_data *netlink);
25 | int netlink_send_oper_ifla(struct netlink_data *netlink, int ifindex,
26 | int linkmode, int operstate);
27 |
28 | #endif /* NETLINK_H */
29 |
--------------------------------------------------------------------------------
/src/ap/taxonomy.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / Station client taxonomy
3 | * Copyright (c) 2015 Google, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef TAXONOMY_H
10 | #define TAXONOMY_H
11 |
12 | void taxonomy_sta_info_probe_req(const struct hostapd_data *hapd,
13 | struct sta_info *sta,
14 | const u8 *ie, size_t ie_len);
15 | void taxonomy_hostapd_sta_info_probe_req(const struct hostapd_data *hapd,
16 | struct hostapd_sta_info *sta,
17 | const u8 *ie, size_t ie_len);
18 | void taxonomy_sta_info_assoc_req(const struct hostapd_data *hapd,
19 | struct sta_info *sta,
20 | const u8 *ie, size_t ie_len);
21 | int retrieve_sta_taxonomy(const struct hostapd_data *hapd,
22 | struct sta_info *sta, char *buf, size_t buflen);
23 |
24 | #endif /* TAXONOMY_H */
25 |
--------------------------------------------------------------------------------
/src/tls/rsa.h:
--------------------------------------------------------------------------------
1 | /*
2 | * RSA
3 | * Copyright (c) 2006, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef RSA_H
10 | #define RSA_H
11 |
12 | struct crypto_rsa_key;
13 |
14 | struct crypto_rsa_key *
15 | crypto_rsa_import_public_key(const u8 *buf, size_t len);
16 | struct crypto_rsa_key *
17 | crypto_rsa_import_public_key_parts(const u8 *n, size_t n_len,
18 | const u8 *e, size_t e_len);
19 | struct crypto_rsa_key *
20 | crypto_rsa_import_private_key(const u8 *buf, size_t len);
21 | size_t crypto_rsa_get_modulus_len(struct crypto_rsa_key *key);
22 | int crypto_rsa_exptmod(const u8 *in, size_t inlen, u8 *out, size_t *outlen,
23 | struct crypto_rsa_key *key, int use_private);
24 | void crypto_rsa_free(struct crypto_rsa_key *key);
25 |
26 | #endif /* RSA_H */
27 |
--------------------------------------------------------------------------------
/hostapd/hostapd.wpa_psk:
--------------------------------------------------------------------------------
1 | # List of WPA PSKs. Each line, except for empty lines and lines starting
2 | # with #, must contain a MAC address and PSK separated with a space.
3 | # Special MAC address 00:00:00:00:00:00 can be used to configure PSKs that
4 | # anyone can use. PSK can be configured as an ASCII passphrase of 8..63
5 | # characters or as a 256-bit hex PSK (64 hex digits).
6 | # An optional key identifier can be added by prefixing the line with
7 | # keyid=
8 | # An optional VLAN ID can be specified by prefixing the line with
9 | # vlanid=.
10 | 00:00:00:00:00:00 secret passphrase
11 | 00:11:22:33:44:55 another passphrase
12 | 00:22:33:44:55:66 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
13 | keyid=example_id 00:11:22:33:44:77 passphrase with keyid
14 | vlanid=3 00:00:00:00:00:00 passphrase with vlanid
15 | 00:00:00:00:00:00 another passphrase for all STAs
16 |
--------------------------------------------------------------------------------
/src/ap/acs.h:
--------------------------------------------------------------------------------
1 | /*
2 | * ACS - Automatic Channel Selection module
3 | * Copyright (c) 2011, Atheros Communications
4 | * Copyright (c) 2013, Qualcomm Atheros, Inc.
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #ifndef ACS_H
11 | #define ACS_H
12 |
13 | #ifdef CONFIG_ACS
14 |
15 | enum hostapd_chan_status acs_init(struct hostapd_iface *iface);
16 | void acs_cleanup(struct hostapd_iface *iface);
17 |
18 | #else /* CONFIG_ACS */
19 |
20 | static inline enum hostapd_chan_status acs_init(struct hostapd_iface *iface)
21 | {
22 | wpa_printf(MSG_ERROR, "ACS was disabled on your build, rebuild hostapd with CONFIG_ACS=y or set channel");
23 | return HOSTAPD_CHAN_INVALID;
24 | }
25 |
26 | static inline void acs_cleanup(struct hostapd_iface *iface)
27 | {
28 | }
29 |
30 | #endif /* CONFIG_ACS */
31 |
32 | #endif /* ACS_H */
33 |
--------------------------------------------------------------------------------
/wpa_supplicant/wpa_gui-qt4/wpamsg.h:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_gui - WpaMsg class for storing event messages
3 | * Copyright (c) 2005-2006, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef WPAMSG_H
10 | #define WPAMSG_H
11 |
12 | #include
13 | #include
14 |
15 | class WpaMsg {
16 | public:
17 | WpaMsg(const QString &_msg, int _priority = 2)
18 | : msg(_msg), priority(_priority)
19 | {
20 | timestamp = QDateTime::currentDateTime();
21 | }
22 |
23 | QString getMsg() const { return msg; }
24 | int getPriority() const { return priority; }
25 | QDateTime getTimestamp() const { return timestamp; }
26 |
27 | private:
28 | QString msg;
29 | int priority;
30 | QDateTime timestamp;
31 | };
32 |
33 | typedef QLinkedList WpaMsgList;
34 |
35 | #endif /* WPAMSG_H */
36 |
--------------------------------------------------------------------------------
/src/ap/vlan.c:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / VLAN definition
3 | * Copyright (c) 2016, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #include "utils/includes.h"
10 |
11 | #include "utils/common.h"
12 | #include "ap/vlan.h"
13 |
14 | /* compare the two arguments, NULL is treated as empty
15 | * return zero iff they are equal
16 | */
17 | int vlan_compare(struct vlan_description *a, struct vlan_description *b)
18 | {
19 | int i;
20 | const int a_empty = !a || !a->notempty;
21 | const int b_empty = !b || !b->notempty;
22 |
23 | if (a_empty && b_empty)
24 | return 0;
25 | if (a_empty || b_empty)
26 | return 1;
27 | if (a->untagged != b->untagged)
28 | return 1;
29 | for (i = 0; i < MAX_NUM_TAGGED_VLAN; i++) {
30 | if (a->tagged[i] != b->tagged[i])
31 | return 1;
32 | }
33 | return 0;
34 | }
35 |
--------------------------------------------------------------------------------
/src/wps/upnp_xml.h:
--------------------------------------------------------------------------------
1 | /*
2 | * UPnP XML helper routines
3 | * Copyright (c) 2000-2003 Intel Corporation
4 | * Copyright (c) 2006-2007 Sony Corporation
5 | * Copyright (c) 2008-2009 Atheros Communications
6 | * Copyright (c) 2009, Jouni Malinen
7 | *
8 | * See wps_upnp.c for more details on licensing and code history.
9 | */
10 |
11 | #ifndef UPNP_XML_H
12 | #define UPNP_XML_H
13 |
14 | #include "http.h"
15 |
16 | void xml_data_encode(struct wpabuf *buf, const char *data, int len);
17 | void xml_add_tagged_data(struct wpabuf *buf, const char *tag,
18 | const char *data);
19 | int xml_next_tag(const char *in, const char **out,
20 | const char **out_tagname, const char **end);
21 | char * xml_get_first_item(const char *doc, const char *item);
22 | struct wpabuf * xml_get_base64_item(const char *data, const char *name,
23 | enum http_reply_code *ret);
24 |
25 | #endif /* UPNP_XML_H */
26 |
--------------------------------------------------------------------------------
/wpa_supplicant/wpa_gui-qt4/icons/Makefile:
--------------------------------------------------------------------------------
1 | #!/usr/bin/make -f
2 |
3 | NAMES := wpa_gui ap laptop group invitation
4 | SIZES := 16x16 22x22 32x32 48x48 64x64 128x128
5 | ICONS := $(addsuffix .png, $(foreach name, $(NAMES), $(foreach size, $(SIZES), $(size)/$(name))))
6 | ICONS += $(addsuffix .xpm, $(NAMES))
7 |
8 | all: $(ICONS)
9 |
10 | %.png:
11 | mkdir -p hicolor/$(word 1, $(subst /, ,$(@)))/apps/
12 | inkscape $(subst .png,.svg, $(word 2, $(subst /, , $(@)))) --without-gui \
13 | --export-width=$(word 1, $(subst x, , $(@))) \
14 | --export-height=$(word 2, $(subst x, , $(subst /, , $(@)))) \
15 | --export-png=hicolor/$(word 1, $(subst /, ,$(@)))/apps/$(word 2, $(subst /, , $@))
16 |
17 | %.xpm:
18 | mkdir -p pixmaps/
19 | convert hicolor/16x16/apps/$(@:.xpm=.png) pixmaps/$(@:.xpm=-16.xpm)
20 | convert hicolor/32x32/apps/$(@:.xpm=.png) pixmaps/$@
21 |
22 | clean:
23 | $(RM) -r pixmaps hicolor
24 |
--------------------------------------------------------------------------------
/wpa_supplicant/wpa_gui-qt4/addinterface.h:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_gui - AddInterface class
3 | * Copyright (c) 2008, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef ADDINTERFACE_H
10 | #define ADDINTERFACE_H
11 |
12 | #include
13 |
14 | #include
15 | #include
16 | #include
17 |
18 | class WpaGui;
19 |
20 | class AddInterface : public QDialog
21 | {
22 | Q_OBJECT
23 |
24 | public:
25 | AddInterface(WpaGui *_wpagui, QWidget *parent = 0);
26 |
27 | public slots:
28 | virtual void interfaceSelected(QTreeWidgetItem *sel);
29 |
30 | private:
31 | void addInterfaces();
32 | bool addRegistryInterface(const QString &ifname);
33 |
34 | QVBoxLayout *vboxLayout;
35 | QTreeWidget *interfaceWidget;
36 | WpaGui *wpagui;
37 | };
38 |
39 | #endif /* ADDINTERFACE_H */
40 |
--------------------------------------------------------------------------------
/src/eap_common/eap_wsc_common.c:
--------------------------------------------------------------------------------
1 | /*
2 | * EAP-WSC common routines for Wi-Fi Protected Setup
3 | * Copyright (c) 2007, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #include "includes.h"
10 |
11 | #include "common.h"
12 | #include "eap_defs.h"
13 | #include "eap_common.h"
14 | #include "wps/wps.h"
15 | #include "eap_wsc_common.h"
16 |
17 | struct wpabuf * eap_wsc_build_frag_ack(u8 id, u8 code)
18 | {
19 | struct wpabuf *msg;
20 |
21 | msg = eap_msg_alloc(EAP_VENDOR_WFA, EAP_VENDOR_TYPE_WSC, 2, code, id);
22 | if (msg == NULL) {
23 | wpa_printf(MSG_ERROR, "EAP-WSC: Failed to allocate memory for "
24 | "FRAG_ACK");
25 | return NULL;
26 | }
27 |
28 | wpa_printf(MSG_DEBUG, "EAP-WSC: Send WSC/FRAG_ACK");
29 | wpabuf_put_u8(msg, WSC_FRAG_ACK); /* Op-Code */
30 | wpabuf_put_u8(msg, 0); /* Flags */
31 |
32 | return msg;
33 | }
34 |
--------------------------------------------------------------------------------
/src/ap/hs20.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Hotspot 2.0 AP ANQP processing
3 | * Copyright (c) 2011-2013, Qualcomm Atheros, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef HS20_H
10 | #define HS20_H
11 |
12 | struct hostapd_data;
13 |
14 | u8 * hostapd_eid_hs20_indication(struct hostapd_data *hapd, u8 *eid);
15 | u8 * hostapd_eid_osen(struct hostapd_data *hapd, u8 *eid);
16 | int hs20_send_wnm_notification(struct hostapd_data *hapd, const u8 *addr,
17 | u8 osu_method, const char *url);
18 | int hs20_send_wnm_notification_deauth_req(struct hostapd_data *hapd,
19 | const u8 *addr,
20 | const struct wpabuf *payload);
21 | int hs20_send_wnm_notification_t_c(struct hostapd_data *hapd,
22 | const u8 *addr, const char *url);
23 | void hs20_t_c_filtering(struct hostapd_data *hapd, struct sta_info *sta,
24 | int enabled);
25 |
26 | #endif /* HS20_H */
27 |
--------------------------------------------------------------------------------
/src/eap_peer/mschapv2.h:
--------------------------------------------------------------------------------
1 | /*
2 | * MSCHAPV2 (RFC 2759)
3 | * Copyright (c) 2004-2008, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef MSCHAPV2_H
10 | #define MSCHAPV2_H
11 |
12 | #define MSCHAPV2_CHAL_LEN 16
13 | #define MSCHAPV2_NT_RESPONSE_LEN 24
14 | #define MSCHAPV2_AUTH_RESPONSE_LEN 20
15 | #define MSCHAPV2_MASTER_KEY_LEN 16
16 |
17 | const u8 * mschapv2_remove_domain(const u8 *username, size_t *len);
18 | int mschapv2_derive_response(const u8 *username, size_t username_len,
19 | const u8 *password, size_t password_len,
20 | int pwhash,
21 | const u8 *auth_challenge,
22 | const u8 *peer_challenge,
23 | u8 *nt_response, u8 *auth_response,
24 | u8 *master_key);
25 | int mschapv2_verify_auth_response(const u8 *auth_response,
26 | const u8 *buf, size_t buf_len);
27 |
28 | #endif /* MSCHAPV2_H */
29 |
--------------------------------------------------------------------------------
/src/eap_common/eap_ikev2_common.h:
--------------------------------------------------------------------------------
1 | /*
2 | * EAP-IKEv2 definitions
3 | * Copyright (c) 2007, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef EAP_IKEV2_COMMON_H
10 | #define EAP_IKEV2_COMMON_H
11 |
12 | #define IKEV2_FLAGS_LENGTH_INCLUDED 0x80
13 | #define IKEV2_FLAGS_MORE_FRAGMENTS 0x40
14 | #define IKEV2_FLAGS_ICV_INCLUDED 0x20
15 |
16 | #define IKEV2_FRAGMENT_SIZE 1400
17 |
18 | struct ikev2_keys;
19 |
20 | int eap_ikev2_derive_keymat(int prf, struct ikev2_keys *keys,
21 | const u8 *i_nonce, size_t i_nonce_len,
22 | const u8 *r_nonce, size_t r_nonce_len,
23 | u8 *keymat);
24 | struct wpabuf * eap_ikev2_build_frag_ack(u8 id, u8 code);
25 | int eap_ikev2_validate_icv(int integ_alg, struct ikev2_keys *keys,
26 | int initiator, const struct wpabuf *msg,
27 | const u8 *pos, const u8 *end);
28 |
29 | #endif /* EAP_IKEV2_COMMON_H */
30 |
--------------------------------------------------------------------------------
/hostapd/hlr_auc_gw.milenage_db:
--------------------------------------------------------------------------------
1 | # Parameters for Milenage (Example algorithms for AKA).
2 | # The example Ki, OPc, and AMF values here are from 3GPP TS 35.208 v6.0.0
3 | # 4.3.20 Test Set 20. SQN is the last used SQN value.
4 | # These values can be used for both UMTS (EAP-AKA) and GSM (EAP-SIM)
5 | # authentication. In case of GSM/EAP-SIM, AMF and SQN values are not used, but
6 | # dummy values will need to be included in this file.
7 |
8 | # IMSI Ki OPc AMF SQN [RES_len]
9 | 232010000000000 90dca4eda45b53cf0f12d7c9c3bc6a89 cb9cccc4b9258e6dca4760379fb82581 61df 000000000000
10 | # Example using truncated 32-bit RES instead of 64-bit default
11 | 232010000000001 90dca4eda45b53cf0f12d7c9c3bc6a89 cb9cccc4b9258e6dca4760379fb82581 61df 000000000000 4
12 |
13 | # These values are from Test Set 19 which has the AMF separation bit set to 1
14 | # and as such, is suitable for EAP-AKA' test.
15 | 555444333222111 5122250214c33e723a5dd523fc145fc0 981d464c7c52eb6e5036234984ad0bcf c3ab 16f3b3f70fc1
16 |
--------------------------------------------------------------------------------
/src/crypto/random.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Random number generator
3 | * Copyright (c) 2010-2011, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef RANDOM_H
10 | #define RANDOM_H
11 |
12 | #ifdef CONFIG_NO_RANDOM_POOL
13 | #define random_init(e) do { } while (0)
14 | #define random_deinit() do { } while (0)
15 | #define random_add_randomness(b, l) do { } while (0)
16 | #define random_get_bytes(b, l) os_get_random((b), (l))
17 | #define random_pool_ready() 1
18 | #define random_mark_pool_ready() do { } while (0)
19 | #else /* CONFIG_NO_RANDOM_POOL */
20 | void random_init(const char *entropy_file);
21 | void random_deinit(void);
22 | void random_add_randomness(const void *buf, size_t len);
23 | int random_get_bytes(void *buf, size_t len);
24 | int random_pool_ready(void);
25 | void random_mark_pool_ready(void);
26 | #endif /* CONFIG_NO_RANDOM_POOL */
27 |
28 | #endif /* RANDOM_H */
29 |
--------------------------------------------------------------------------------
/debian/hostapd.default:
--------------------------------------------------------------------------------
1 | # Defaults for hostapd initscript
2 | #
3 | # WARNING: The DAEMON_CONF setting has been deprecated and will be removed
4 | # in future package releases.
5 | #
6 | # See /usr/share/doc/hostapd/README.Debian for information about alternative
7 | # methods of managing hostapd.
8 | #
9 | # Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration
10 | # file and hostapd will be started during system boot. An example configuration
11 | # file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz
12 | #
13 | #DAEMON_CONF=""
14 |
15 | # Additional daemon options to be appended to hostapd command:-
16 | # -d show more debug messages (-dd for even more)
17 | # -K include key data in debug messages
18 | # -t include timestamps in some debug messages
19 | #
20 | # Note that -B (daemon mode) and -P (pidfile) options are automatically
21 | # configured by the init.d script and must not be added to DAEMON_OPTS.
22 | #
23 | #DAEMON_OPTS=""
24 |
--------------------------------------------------------------------------------
/wpa_supplicant/wpa_gui-qt4/userdatarequest.h:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_gui - UserDataRequest class
3 | * Copyright (c) 2005-2006, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef USERDATAREQUEST_H
10 | #define USERDATAREQUEST_H
11 |
12 | #include
13 | #include "ui_userdatarequest.h"
14 |
15 | class WpaGui;
16 |
17 | class UserDataRequest : public QDialog, public Ui::UserDataRequest
18 | {
19 | Q_OBJECT
20 |
21 | public:
22 | UserDataRequest(QWidget *parent = 0, const char *name = 0,
23 | bool modal = false, Qt::WindowFlags fl = 0);
24 | ~UserDataRequest();
25 |
26 | int setParams(WpaGui *_wpagui, const char *reqMsg);
27 |
28 | public slots:
29 | virtual void sendReply();
30 |
31 | protected slots:
32 | virtual void languageChange();
33 |
34 | private:
35 | WpaGui *wpagui;
36 | int networkid;
37 | QString field;
38 | };
39 |
40 | #endif /* USERDATAREQUEST_H */
41 |
--------------------------------------------------------------------------------
/src/tls/pkcs1.h:
--------------------------------------------------------------------------------
1 | /*
2 | * PKCS #1 (RSA Encryption)
3 | * Copyright (c) 2006-2009, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef PKCS1_H
10 | #define PKCS1_H
11 |
12 | struct crypto_public_key;
13 | struct asn1_oid;
14 |
15 | int pkcs1_encrypt(int block_type, struct crypto_rsa_key *key,
16 | int use_private, const u8 *in, size_t inlen,
17 | u8 *out, size_t *outlen);
18 | int pkcs1_v15_private_key_decrypt(struct crypto_rsa_key *key,
19 | const u8 *in, size_t inlen,
20 | u8 *out, size_t *outlen);
21 | int pkcs1_decrypt_public_key(struct crypto_rsa_key *key,
22 | const u8 *crypt, size_t crypt_len,
23 | u8 *plain, size_t *plain_len);
24 | int pkcs1_v15_sig_ver(struct crypto_public_key *pk,
25 | const u8 *s, size_t s_len,
26 | const struct asn1_oid *hash_alg,
27 | const u8 *hash, size_t hash_len);
28 |
29 | #endif /* PKCS1_H */
30 |
--------------------------------------------------------------------------------
/src/crypto/dh_group5.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Diffie-Hellman group 5 operations
3 | * Copyright (c) 2009, 2012, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #include "includes.h"
10 |
11 | #include "common.h"
12 | #include "dh_groups.h"
13 | #include "dh_group5.h"
14 |
15 |
16 | void * dh5_init(struct wpabuf **priv, struct wpabuf **publ)
17 | {
18 | wpabuf_free(*publ);
19 | *publ = dh_init(dh_groups_get(5), priv);
20 | if (*publ == NULL)
21 | return NULL;
22 | return (void *) 1;
23 | }
24 |
25 |
26 | void * dh5_init_fixed(const struct wpabuf *priv, const struct wpabuf *publ)
27 | {
28 | return (void *) 1;
29 | }
30 |
31 |
32 | struct wpabuf * dh5_derive_shared(void *ctx, const struct wpabuf *peer_public,
33 | const struct wpabuf *own_private)
34 | {
35 | return dh_derive_shared(peer_public, own_private, dh_groups_get(5));
36 | }
37 |
38 |
39 | void dh5_free(void *ctx)
40 | {
41 | }
42 |
--------------------------------------------------------------------------------
/src/ap/iapp.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / IEEE 802.11F-2003 Inter-Access Point Protocol (IAPP)
3 | * Copyright (c) 2002-2005, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef IAPP_H
10 | #define IAPP_H
11 |
12 | struct iapp_data;
13 |
14 | #ifdef CONFIG_IAPP
15 |
16 | void iapp_new_station(struct iapp_data *iapp, struct sta_info *sta);
17 | struct iapp_data * iapp_init(struct hostapd_data *hapd, const char *iface);
18 | void iapp_deinit(struct iapp_data *iapp);
19 |
20 | #else /* CONFIG_IAPP */
21 |
22 | static inline void iapp_new_station(struct iapp_data *iapp,
23 | struct sta_info *sta)
24 | {
25 | }
26 |
27 | static inline struct iapp_data * iapp_init(struct hostapd_data *hapd,
28 | const char *iface)
29 | {
30 | return NULL;
31 | }
32 |
33 | static inline void iapp_deinit(struct iapp_data *iapp)
34 | {
35 | }
36 |
37 | #endif /* CONFIG_IAPP */
38 |
39 | #endif /* IAPP_H */
40 |
--------------------------------------------------------------------------------
/src/ap/ndisc_snoop.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Neighbor Discovery snooping for Proxy ARP
3 | * Copyright (c) 2014, Qualcomm Atheros, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef NDISC_SNOOP_H
10 | #define NDISC_SNOOP_H
11 |
12 | #if defined(CONFIG_PROXYARP) && defined(CONFIG_IPV6)
13 |
14 | int ndisc_snoop_init(struct hostapd_data *hapd);
15 | void ndisc_snoop_deinit(struct hostapd_data *hapd);
16 | void sta_ip6addr_del(struct hostapd_data *hapd, struct sta_info *sta);
17 |
18 | #else /* CONFIG_PROXYARP && CONFIG_IPV6 */
19 |
20 | static inline int ndisc_snoop_init(struct hostapd_data *hapd)
21 | {
22 | return 0;
23 | }
24 |
25 | static inline void ndisc_snoop_deinit(struct hostapd_data *hapd)
26 | {
27 | }
28 |
29 | static inline void sta_ip6addr_del(struct hostapd_data *hapd,
30 | struct sta_info *sta)
31 | {
32 | }
33 |
34 | #endif /* CONFIG_PROXYARP && CONFIG_IPV6 */
35 |
36 | #endif /* NDISC_SNOOP_H */
37 |
--------------------------------------------------------------------------------
/src/drivers/linux_ioctl.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Linux ioctl helper functions for driver wrappers
3 | * Copyright (c) 2002-2010, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef LINUX_IOCTL_H
10 | #define LINUX_IOCTL_H
11 |
12 | int linux_set_iface_flags(int sock, const char *ifname, int dev_up);
13 | int linux_iface_up(int sock, const char *ifname);
14 | int linux_get_ifhwaddr(int sock, const char *ifname, u8 *addr);
15 | int linux_set_ifhwaddr(int sock, const char *ifname, const u8 *addr);
16 | int linux_br_add(int sock, const char *brname);
17 | int linux_br_del(int sock, const char *brname);
18 | int linux_br_add_if(int sock, const char *brname, const char *ifname);
19 | int linux_br_del_if(int sock, const char *brname, const char *ifname);
20 | int linux_br_get(char *brname, const char *ifname);
21 | int linux_master_get(char *master_ifname, const char *ifname);
22 |
23 | #endif /* LINUX_IOCTL_H */
24 |
--------------------------------------------------------------------------------
/src/utils/ext_password.h:
--------------------------------------------------------------------------------
1 | /*
2 | * External password backend
3 | * Copyright (c) 2012, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef EXT_PASSWORD_H
10 | #define EXT_PASSWORD_H
11 |
12 | struct ext_password_data;
13 |
14 | #ifdef CONFIG_EXT_PASSWORD
15 |
16 | struct ext_password_data * ext_password_init(const char *backend,
17 | const char *params);
18 | void ext_password_deinit(struct ext_password_data *data);
19 |
20 | struct wpabuf * ext_password_get(struct ext_password_data *data,
21 | const char *name);
22 | void ext_password_free(struct wpabuf *pw);
23 |
24 | #else /* CONFIG_EXT_PASSWORD */
25 |
26 | #define ext_password_init(b, p) ((void *) 1)
27 | #define ext_password_deinit(d) do { } while (0)
28 | #define ext_password_get(d, n) (NULL)
29 | #define ext_password_free(p) do { } while (0)
30 |
31 | #endif /* CONFIG_EXT_PASSWORD */
32 |
33 | #endif /* EXT_PASSWORD_H */
34 |
--------------------------------------------------------------------------------
/wpa_supplicant/wpa_gui-qt4/scanresults.h:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_gui - ScanResults class
3 | * Copyright (c) 2005-2006, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef SCANRESULTS_H
10 | #define SCANRESULTS_H
11 |
12 | #include
13 | #include "ui_scanresults.h"
14 |
15 | class WpaGui;
16 |
17 | class ScanResults : public QDialog, public Ui::ScanResults
18 | {
19 | Q_OBJECT
20 |
21 | public:
22 | ScanResults(QWidget *parent = 0, const char *name = 0,
23 | bool modal = false, Qt::WindowFlags fl = 0);
24 | ~ScanResults();
25 |
26 | public slots:
27 | virtual void setWpaGui(WpaGui *_wpagui);
28 | virtual void updateResults();
29 | virtual void scanRequest();
30 | virtual void getResults();
31 | virtual void bssSelected(QTreeWidgetItem *sel);
32 |
33 | protected slots:
34 | virtual void languageChange();
35 |
36 | private:
37 | WpaGui *wpagui;
38 | };
39 |
40 | #endif /* SCANRESULTS_H */
41 |
--------------------------------------------------------------------------------
/wpa_supplicant/wifi_display.h:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_supplicant - Wi-Fi Display
3 | * Copyright (c) 2011, Atheros Communications, Inc.
4 | * Copyright (c) 2011-2012, Qualcomm Atheros, Inc.
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #ifndef WIFI_DISPLAY_H
11 | #define WIFI_DISPLAY_H
12 |
13 | int wifi_display_init(struct wpa_global *global);
14 | void wifi_display_deinit(struct wpa_global *global);
15 | void wifi_display_enable(struct wpa_global *global, int enabled);
16 | struct wpabuf *wifi_display_get_wfd_ie(struct wpa_global *global);
17 | int wifi_display_subelem_set(struct wpa_global *global, char *cmd);
18 | int wifi_display_subelem_set_from_ies(struct wpa_global *global,
19 | struct wpabuf *ie);
20 | int wifi_display_subelem_get(struct wpa_global *global, char *cmd,
21 | char *buf, size_t buflen);
22 | char * wifi_display_subelem_hex(const struct wpabuf *wfd_subelems, u8 id);
23 |
24 | #endif /* WIFI_DISPLAY_H */
25 |
--------------------------------------------------------------------------------
/wpa_supplicant/wpas_glue.h:
--------------------------------------------------------------------------------
1 | /*
2 | * WPA Supplicant - Glue code to setup EAPOL and RSN modules
3 | * Copyright (c) 2003-2008, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef WPAS_GLUE_H
10 | #define WPAS_GLUE_H
11 |
12 | enum wpa_ctrl_req_type;
13 |
14 | int wpa_supplicant_init_eapol(struct wpa_supplicant *wpa_s);
15 | int wpa_supplicant_init_wpa(struct wpa_supplicant *wpa_s);
16 | void wpa_supplicant_rsn_supp_set_config(struct wpa_supplicant *wpa_s,
17 | struct wpa_ssid *ssid);
18 |
19 | const char * wpa_supplicant_ctrl_req_to_string(enum wpa_ctrl_req_type field,
20 | const char *default_txt,
21 | const char **txt);
22 |
23 | enum wpa_ctrl_req_type wpa_supplicant_ctrl_req_from_string(const char *field);
24 |
25 | void wpas_send_ctrl_req(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
26 | const char *field_name, const char *txt);
27 |
28 | #endif /* WPAS_GLUE_H */
29 |
--------------------------------------------------------------------------------
/wpa_supplicant/dbus/dbus_common_i.h:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_supplicant D-Bus control interface - internal definitions
3 | * Copyright (c) 2006, Dan Williams and Red Hat, Inc.
4 | * Copyright (c) 2009, Witold Sowa
5 | * Copyright (c) 2009, Jouni Malinen
6 | *
7 | * This software may be distributed under the terms of the BSD license.
8 | * See README for more details.
9 | */
10 |
11 | #ifndef DBUS_COMMON_I_H
12 | #define DBUS_COMMON_I_H
13 |
14 | #include
15 |
16 | struct wpa_dbus_property_desc;
17 |
18 | struct wpas_dbus_priv {
19 | DBusConnection *con;
20 | int should_dispatch;
21 | struct wpa_global *global;
22 | u32 next_objid;
23 | int dbus_new_initialized;
24 |
25 | #if defined(CONFIG_CTRL_IFACE_DBUS_NEW)
26 | struct wpa_dbus_property_desc *all_interface_properties;
27 | int globals_start;
28 | #if defined(CONFIG_AP)
29 | int dbus_noc_refcnt;
30 | #endif /* CONFIG_AP */
31 | #endif /* CONFIG_CTRL_IFACE_DBUS_NEW */
32 | };
33 |
34 | #endif /* DBUS_COMMON_I_H */
35 |
--------------------------------------------------------------------------------
/wpa_supplicant/main_none.c:
--------------------------------------------------------------------------------
1 | /*
2 | * WPA Supplicant / Example program entrypoint
3 | * Copyright (c) 2003-2005, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #include "includes.h"
10 |
11 | #include "common.h"
12 | #include "wpa_supplicant_i.h"
13 |
14 | int main(int argc, char *argv[])
15 | {
16 | struct wpa_interface iface;
17 | int exitcode = 0;
18 | struct wpa_params params;
19 | struct wpa_global *global;
20 |
21 | memset(¶ms, 0, sizeof(params));
22 | params.wpa_debug_level = MSG_INFO;
23 |
24 | global = wpa_supplicant_init(¶ms);
25 | if (global == NULL)
26 | return -1;
27 |
28 | memset(&iface, 0, sizeof(iface));
29 | /* TODO: set interface parameters */
30 |
31 | if (wpa_supplicant_add_iface(global, &iface, NULL) == NULL)
32 | exitcode = -1;
33 |
34 | if (exitcode == 0)
35 | exitcode = wpa_supplicant_run(global);
36 |
37 | wpa_supplicant_deinit(global);
38 |
39 | return exitcode;
40 | }
41 |
--------------------------------------------------------------------------------
/COPYING:
--------------------------------------------------------------------------------
1 | wpa_supplicant and hostapd
2 | --------------------------
3 |
4 | Copyright (c) 2002-2019, Jouni Malinen and contributors
5 | All Rights Reserved.
6 |
7 |
8 | See the README file for the current license terms.
9 |
10 | This software was previously distributed under BSD/GPL v2 dual license
11 | terms that allowed either of those license alternatives to be
12 | selected. As of February 11, 2012, the project has chosen to use only
13 | the BSD license option for future distribution. As such, the GPL v2
14 | license option is no longer used. It should be noted that the BSD
15 | license option (the one with advertisement clause removed) is compatible
16 | with GPL and as such, does not prevent use of this software in projects
17 | that use GPL.
18 |
19 | Some of the files may still include pointers to GPL version 2 license
20 | terms. However, such copyright and license notifications are maintained
21 | only for attribution purposes and any distribution of this software
22 | after February 11, 2012 is no longer under the GPL v2 option.
23 |
--------------------------------------------------------------------------------
/src/ap/neighbor_db.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / Neighboring APs DB
3 | * Copyright(c) 2013 - 2016 Intel Mobile Communications GmbH.
4 | * Copyright(c) 2011 - 2016 Intel Corporation. All rights reserved.
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #ifndef NEIGHBOR_DB_H
11 | #define NEIGHBOR_DB_H
12 |
13 | struct hostapd_neighbor_entry *
14 | hostapd_neighbor_get(struct hostapd_data *hapd, const u8 *bssid,
15 | const struct wpa_ssid_value *ssid);
16 | int hostapd_neighbor_set(struct hostapd_data *hapd, const u8 *bssid,
17 | const struct wpa_ssid_value *ssid,
18 | const struct wpabuf *nr, const struct wpabuf *lci,
19 | const struct wpabuf *civic, int stationary);
20 | void hostapd_neighbor_set_own_report(struct hostapd_data *hapd);
21 | int hostapd_neighbor_remove(struct hostapd_data *hapd, const u8 *bssid,
22 | const struct wpa_ssid_value *ssid);
23 | void hostapd_free_neighbor_db(struct hostapd_data *hapd);
24 |
25 | #endif /* NEIGHBOR_DB_H */
26 |
--------------------------------------------------------------------------------
/src/ap/p2p_hostapd.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / P2P integration
3 | * Copyright (c) 2009-2010, Atheros Communications
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef P2P_HOSTAPD_H
10 | #define P2P_HOSTAPD_H
11 |
12 | #ifdef CONFIG_P2P
13 |
14 | int hostapd_p2p_get_mib_sta(struct hostapd_data *hapd, struct sta_info *sta,
15 | char *buf, size_t buflen);
16 | int hostapd_p2p_set_noa(struct hostapd_data *hapd, u8 count, int start,
17 | int duration);
18 | void hostapd_p2p_non_p2p_sta_connected(struct hostapd_data *hapd);
19 | void hostapd_p2p_non_p2p_sta_disconnected(struct hostapd_data *hapd);
20 |
21 |
22 | #else /* CONFIG_P2P */
23 |
24 | static inline int hostapd_p2p_get_mib_sta(struct hostapd_data *hapd,
25 | struct sta_info *sta,
26 | char *buf, size_t buflen)
27 | {
28 | return 0;
29 | }
30 |
31 | #endif /* CONFIG_P2P */
32 |
33 | u8 * hostapd_eid_p2p_manage(struct hostapd_data *hapd, u8 *eid);
34 |
35 | #endif /* P2P_HOSTAPD_H */
36 |
--------------------------------------------------------------------------------
/src/common/linux_bridge.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Linux bridge configuration kernel interface
3 | * Copyright (c) 2016, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef LINUX_BRIDGE_H
10 | #define LINUX_BRIDGE_H
11 |
12 | /* This ioctl is defined in linux/sockios.h */
13 |
14 | #ifndef SIOCBRADDBR
15 | #define SIOCBRADDBR 0x89a0
16 | #endif
17 | #ifndef SIOCBRDELBR
18 | #define SIOCBRDELBR 0x89a1
19 | #endif
20 | #ifndef SIOCBRADDIF
21 | #define SIOCBRADDIF 0x89a2
22 | #endif
23 | #ifndef SIOCBRDELIF
24 | #define SIOCBRDELIF 0x89a3
25 | #endif
26 |
27 | /* This interface is defined in linux/if_bridge.h */
28 |
29 | #define BRCTL_GET_VERSION 0
30 | #define BRCTL_GET_BRIDGES 1
31 | #define BRCTL_ADD_BRIDGE 2
32 | #define BRCTL_DEL_BRIDGE 3
33 | #define BRCTL_ADD_IF 4
34 | #define BRCTL_DEL_IF 5
35 | #define BRCTL_GET_BRIDGE_INFO 6
36 | #define BRCTL_GET_PORT_LIST 7
37 | #define BRCTL_SET_BRIDGE_FORWARD_DELAY 8
38 |
39 | #endif /* LINUX_BRIDGE_H */
40 |
--------------------------------------------------------------------------------
/debian/wpasupplicant.postinst:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # This script can be called in the following ways:
3 | #
4 | # After the package was installed:
5 | # configure
6 | #
7 | #
8 | # If prerm fails during upgrade or fails on failed upgrade:
9 | # abort-upgrade
10 | #
11 | # If prerm fails during deconfiguration of a package:
12 | # abort-deconfigure in-favour
13 | # removing
14 | #
15 | # If prerm fails during replacement due to conflict:
16 | # abort-remove in-favour
17 |
18 | set -e
19 |
20 | case "$1" in
21 | configure)
22 | # Add the netdev group unless it's already there
23 | if ! getent group netdev >/dev/null; then
24 | addgroup --quiet --system netdev || true
25 | fi
26 | ;;
27 | abort-upgrade|abort-deconfigure|abort-remove)
28 | ;;
29 | *)
30 | echo "$0 called with unknown argument \`$1'" 1>&2
31 | exit 1
32 | ;;
33 | esac
34 |
35 | #DEBHELPER#
36 | exit 0
37 |
--------------------------------------------------------------------------------
/src/eap_common/eap_common.h:
--------------------------------------------------------------------------------
1 | /*
2 | * EAP common peer/server definitions
3 | * Copyright (c) 2004-2014, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef EAP_COMMON_H
10 | #define EAP_COMMON_H
11 |
12 | #include "wpabuf.h"
13 |
14 | struct erp_tlvs {
15 | const u8 *keyname;
16 | const u8 *domain;
17 |
18 | u8 keyname_len;
19 | u8 domain_len;
20 | };
21 |
22 | int eap_hdr_len_valid(const struct wpabuf *msg, size_t min_payload);
23 | const u8 * eap_hdr_validate(int vendor, EapType eap_type,
24 | const struct wpabuf *msg, size_t *plen);
25 | struct wpabuf * eap_msg_alloc(int vendor, EapType type, size_t payload_len,
26 | u8 code, u8 identifier);
27 | void eap_update_len(struct wpabuf *msg);
28 | u8 eap_get_id(const struct wpabuf *msg);
29 | EapType eap_get_type(const struct wpabuf *msg);
30 | int erp_parse_tlvs(const u8 *pos, const u8 *end, struct erp_tlvs *tlvs,
31 | int stop_at_keyname);
32 |
33 | #endif /* EAP_COMMON_H */
34 |
--------------------------------------------------------------------------------
/src/crypto/sha384.h:
--------------------------------------------------------------------------------
1 | /*
2 | * SHA384 hash implementation and interface functions
3 | * Copyright (c) 2015-2017, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef SHA384_H
10 | #define SHA384_H
11 |
12 | #define SHA384_MAC_LEN 48
13 |
14 | int hmac_sha384_vector(const u8 *key, size_t key_len, size_t num_elem,
15 | const u8 *addr[], const size_t *len, u8 *mac);
16 | int hmac_sha384(const u8 *key, size_t key_len, const u8 *data,
17 | size_t data_len, u8 *mac);
18 | int sha384_prf(const u8 *key, size_t key_len, const char *label,
19 | const u8 *data, size_t data_len, u8 *buf, size_t buf_len);
20 | int sha384_prf_bits(const u8 *key, size_t key_len, const char *label,
21 | const u8 *data, size_t data_len, u8 *buf,
22 | size_t buf_len_bits);
23 | int hmac_sha384_kdf(const u8 *secret, size_t secret_len,
24 | const char *label, const u8 *seed, size_t seed_len,
25 | u8 *out, size_t outlen);
26 |
27 | #endif /* SHA384_H */
28 |
--------------------------------------------------------------------------------
/src/crypto/sha512.h:
--------------------------------------------------------------------------------
1 | /*
2 | * SHA512 hash implementation and interface functions
3 | * Copyright (c) 2015-2017, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef SHA512_H
10 | #define SHA512_H
11 |
12 | #define SHA512_MAC_LEN 64
13 |
14 | int hmac_sha512_vector(const u8 *key, size_t key_len, size_t num_elem,
15 | const u8 *addr[], const size_t *len, u8 *mac);
16 | int hmac_sha512(const u8 *key, size_t key_len, const u8 *data,
17 | size_t data_len, u8 *mac);
18 | int sha512_prf(const u8 *key, size_t key_len, const char *label,
19 | const u8 *data, size_t data_len, u8 *buf, size_t buf_len);
20 | int sha512_prf_bits(const u8 *key, size_t key_len, const char *label,
21 | const u8 *data, size_t data_len, u8 *buf,
22 | size_t buf_len_bits);
23 | int hmac_sha512_kdf(const u8 *secret, size_t secret_len,
24 | const char *label, const u8 *seed, size_t seed_len,
25 | u8 *out, size_t outlen);
26 |
27 | #endif /* SHA512_H */
28 |
--------------------------------------------------------------------------------
/hs20/server/www/cert-enroll.php:
--------------------------------------------------------------------------------
1 | query("SELECT rowid,* FROM sessions WHERE id='$id'")->fetch();
18 | if ($row == false) {
19 | die("Session not found");
20 | }
21 |
22 | $uri = $row['redirect_uri'];
23 | $rowid = $row['rowid'];
24 | $realm = $row['realm'];
25 |
26 | $user = sha1(mt_rand());
27 |
28 | if (!$db->exec("UPDATE sessions SET user='$user', type='cert' WHERE rowid=$rowid")) {
29 | die("Failed to update session database");
30 | }
31 |
32 | $db->exec("INSERT INTO eventlog(user,realm,sessionid,timestamp,notes) " .
33 | "VALUES ('', '$realm', '$id', " .
34 | "strftime('%Y-%m-%d %H:%M:%f','now'), " .
35 | "'completed user input response for client certificate enrollment')");
36 |
37 | header("Location: $uri", true, 302);
38 |
39 | ?>
40 |
--------------------------------------------------------------------------------
/src/ap/eth_p_oui.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / IEEE 802 OUI Extended Ethertype
3 | * Copyright (c) 2016, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef ETH_P_OUI_H
10 | #define ETH_P_OUI_H
11 |
12 | struct eth_p_oui_ctx;
13 | struct hostapd_data;
14 |
15 | /* rx_callback only gets payload after OUI passed as buf */
16 | struct eth_p_oui_ctx *
17 | eth_p_oui_register(struct hostapd_data *hapd, const char *ifname, u8 oui_suffix,
18 | void (*rx_callback)(void *ctx, const u8 *src_addr,
19 | const u8 *dst_addr, u8 oui_suffix,
20 | const u8 *buf, size_t len),
21 | void *rx_callback_ctx);
22 | void eth_p_oui_unregister(struct eth_p_oui_ctx *eth_p_oui);
23 | int eth_p_oui_send(struct eth_p_oui_ctx *ctx, const u8 *src_addr,
24 | const u8 *dst_addr, const u8 *buf, size_t len);
25 | void eth_p_oui_deliver(struct eth_p_oui_ctx *ctx, const u8 *src_addr,
26 | const u8 *dst_addr, const u8 *buf, size_t len);
27 |
28 | #endif /* ETH_P_OUI_H */
29 |
--------------------------------------------------------------------------------
/src/common/dragonfly.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Shared Dragonfly functionality
3 | * Copyright (c) 2012-2016, Jouni Malinen
4 | * Copyright (c) 2019, The Linux Foundation
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #ifndef DRAGONFLY_H
11 | #define DRAGONFLY_H
12 |
13 | #define DRAGONFLY_MAX_ECC_PRIME_LEN 66
14 |
15 | struct crypto_bignum;
16 | struct crypto_ec;
17 |
18 | int dragonfly_suitable_group(int group, int ecc_only);
19 | unsigned int dragonfly_min_pwe_loop_iter(int group);
20 | int dragonfly_get_random_qr_qnr(const struct crypto_bignum *prime,
21 | struct crypto_bignum **qr,
22 | struct crypto_bignum **qnr);
23 | int dragonfly_is_quadratic_residue_blind(struct crypto_ec *ec,
24 | const u8 *qr, const u8 *qnr,
25 | const struct crypto_bignum *val);
26 | int dragonfly_generate_scalar(const struct crypto_bignum *order,
27 | struct crypto_bignum *_rand,
28 | struct crypto_bignum *_mask,
29 | struct crypto_bignum *scalar);
30 |
31 | #endif /* DRAGONFLY_H */
32 |
--------------------------------------------------------------------------------
/src/drivers/linux_wext.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Driver interaction with generic Linux Wireless Extensions
3 | * Copyright (c) 2003-2011, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef LINUX_WEXT_H
10 | #define LINUX_WEXT_H
11 |
12 | #ifndef ANDROID
13 |
14 | /*
15 | * Avoid including other kernel header to avoid conflicts with C library
16 | * headers.
17 | */
18 | #define _LINUX_TYPES_H
19 | #define _LINUX_SOCKET_H
20 | #define _LINUX_IF_H
21 |
22 | #include
23 | #include
24 | typedef uint32_t __u32;
25 | typedef int32_t __s32;
26 | typedef uint16_t __u16;
27 | typedef int16_t __s16;
28 | typedef uint8_t __u8;
29 | #ifndef __user
30 | #define __user
31 | #endif /* __user */
32 |
33 | #endif /* ANDROID */
34 |
35 | #include
36 |
37 | #ifndef IW_ENCODE_ALG_PMK
38 | #define IW_ENCODE_ALG_PMK 4
39 | #endif
40 |
41 | #ifndef IW_ENC_CAPA_4WAY_HANDSHAKE
42 | #define IW_ENC_CAPA_4WAY_HANDSHAKE 0x00000010
43 | #endif
44 |
45 | #endif /* LINUX_WEXT_H */
46 |
--------------------------------------------------------------------------------
/hs20/server/spp_server.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Hotspot 2.0 SPP server
3 | * Copyright (c) 2012-2013, Qualcomm Atheros, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef SPP_SERVER_H
10 | #define SPP_SERVER_H
11 |
12 | struct hs20_svc {
13 | const void *ctx;
14 | struct xml_node_ctx *xml;
15 | char *root_dir;
16 | FILE *debug_log;
17 | sqlite3 *db;
18 | const char *addr;
19 | const char *test;
20 | const char *imsi;
21 | const char *eap_method;
22 | const char *id_hash;
23 | };
24 |
25 |
26 | void debug_print(struct hs20_svc *ctx, int print, const char *fmt, ...)
27 | __attribute__ ((format (printf, 3, 4)));
28 | void debug_dump_node(struct hs20_svc *ctx, const char *title, xml_node_t *node);
29 |
30 | xml_node_t * hs20_spp_server_process(struct hs20_svc *ctx, xml_node_t *node,
31 | const char *auth_user,
32 | const char *auth_realm, int dmacc);
33 | int hs20_spp_server_init(struct hs20_svc *ctx);
34 | void hs20_spp_server_deinit(struct hs20_svc *ctx);
35 |
36 | #endif /* SPP_SERVER_H */
37 |
--------------------------------------------------------------------------------
/hostapd/hostapd.eap_user_sqlite:
--------------------------------------------------------------------------------
1 | CREATE TABLE users(
2 | identity TEXT PRIMARY KEY,
3 | methods TEXT,
4 | password TEXT,
5 | remediation TEXT,
6 | phase2 INTEGER,
7 | t_c_timestamp INTEGER
8 | );
9 |
10 | CREATE TABLE wildcards(
11 | identity TEXT PRIMARY KEY,
12 | methods TEXT
13 | );
14 |
15 | INSERT INTO users(identity,methods,password,phase2) VALUES ('user','TTLS-MSCHAPV2','password',1);
16 | INSERT INTO users(identity,methods,password,phase2) VALUES ('DOMAIN\mschapv2 user','TTLS-MSCHAPV2','password',1);
17 |
18 | INSERT INTO wildcards(identity,methods) VALUES ('','TTLS,TLS');
19 | INSERT INTO wildcards(identity,methods) VALUES ('0','AKA');
20 |
21 | CREATE TABLE authlog(
22 | timestamp TEXT,
23 | session TEXT,
24 | nas_ip TEXT,
25 | username TEXT,
26 | note TEXT
27 | );
28 |
29 | CREATE TABLE pending_tc(
30 | mac_addr TEXT PRIMARY KEY,
31 | identity TEXT
32 | );
33 |
34 | CREATE TABLE current_sessions(
35 | mac_addr TEXT PRIMARY KEY,
36 | identity TEXT,
37 | start_time TEXT,
38 | nas TEXT,
39 | hs20_t_c_filtering BOOLEAN,
40 | waiting_coa_ack BOOLEAN,
41 | coa_ack_received BOOLEAN
42 | );
43 |
--------------------------------------------------------------------------------
/src/ap/vlan_util.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / VLAN netlink/ioctl api
3 | * Copyright (c) 2012, Michael Braun
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef VLAN_UTIL_H
10 | #define VLAN_UTIL_H
11 |
12 | struct hostapd_data;
13 | struct hostapd_vlan;
14 | struct full_dynamic_vlan;
15 |
16 | int vlan_add(const char *if_name, int vid, const char *vlan_if_name);
17 | int vlan_rem(const char *if_name);
18 | int vlan_set_name_type(unsigned int name_type);
19 |
20 | int ifconfig_helper(const char *if_name, int up);
21 | int ifconfig_up(const char *if_name);
22 | int iface_exists(const char *ifname);
23 | int vlan_if_remove(struct hostapd_data *hapd, struct hostapd_vlan *vlan);
24 |
25 | struct full_dynamic_vlan *
26 | full_dynamic_vlan_init(struct hostapd_data *hapd);
27 | void full_dynamic_vlan_deinit(struct full_dynamic_vlan *priv);
28 | void vlan_newlink(const char *ifname, struct hostapd_data *hapd);
29 | void vlan_dellink(const char *ifname, struct hostapd_data *hapd);
30 |
31 | #endif /* VLAN_UTIL_H */
32 |
--------------------------------------------------------------------------------
/hs20/server/www/remediation-pw.php:
--------------------------------------------------------------------------------
1 | query("SELECT rowid,* FROM sessions WHERE id='$id'")->fetch();
21 | if ($row == false) {
22 | die("Session not found");
23 | }
24 | $user = $row['user'];
25 | $realm = $row['realm'];
26 |
27 | $uri = $row['redirect_uri'];
28 | $rowid = $row['rowid'];
29 |
30 | if (!$db->exec("UPDATE sessions SET password='$pw' WHERE rowid=$rowid")) {
31 | die("Failed to update session database");
32 | }
33 |
34 | $db->exec("INSERT INTO eventlog(user,realm,sessionid,timestamp,notes) " .
35 | "VALUES ('$user', '$realm', '$id', " .
36 | "strftime('%Y-%m-%d %H:%M:%f','now'), " .
37 | "'completed user input response for subscription remediation')");
38 |
39 | header("Location: $uri", true, 302);
40 |
41 | ?>
42 |
--------------------------------------------------------------------------------
/src/crypto/milenage.h:
--------------------------------------------------------------------------------
1 | /*
2 | * UMTS AKA - Milenage algorithm (3GPP TS 35.205, .206, .207, .208)
3 | * Copyright (c) 2006-2007
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef MILENAGE_H
10 | #define MILENAGE_H
11 |
12 | void milenage_generate(const u8 *opc, const u8 *amf, const u8 *k,
13 | const u8 *sqn, const u8 *_rand, u8 *autn, u8 *ik,
14 | u8 *ck, u8 *res, size_t *res_len);
15 | int milenage_auts(const u8 *opc, const u8 *k, const u8 *_rand, const u8 *auts,
16 | u8 *sqn);
17 | int gsm_milenage(const u8 *opc, const u8 *k, const u8 *_rand, u8 *sres,
18 | u8 *kc);
19 | int milenage_check(const u8 *opc, const u8 *k, const u8 *sqn, const u8 *_rand,
20 | const u8 *autn, u8 *ik, u8 *ck, u8 *res, size_t *res_len,
21 | u8 *auts);
22 | int milenage_f1(const u8 *opc, const u8 *k, const u8 *_rand,
23 | const u8 *sqn, const u8 *amf, u8 *mac_a, u8 *mac_s);
24 | int milenage_f2345(const u8 *opc, const u8 *k, const u8 *_rand,
25 | u8 *res, u8 *ck, u8 *ik, u8 *ak, u8 *akstar);
26 |
27 | #endif /* MILENAGE_H */
28 |
--------------------------------------------------------------------------------
/hostapd/nt_password_hash.c:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd - Plaintext password to NtPasswordHash
3 | * Copyright (c) 2005, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #include "includes.h"
10 |
11 | #include "common.h"
12 | #include "crypto/ms_funcs.h"
13 |
14 |
15 | int main(int argc, char *argv[])
16 | {
17 | unsigned char password_hash[16];
18 | size_t i;
19 | char *password, buf[64], *pos;
20 |
21 | if (argc > 1)
22 | password = argv[1];
23 | else {
24 | if (fgets(buf, sizeof(buf), stdin) == NULL) {
25 | printf("Failed to read password\n");
26 | return 1;
27 | }
28 | buf[sizeof(buf) - 1] = '\0';
29 | pos = buf;
30 | while (*pos != '\0') {
31 | if (*pos == '\r' || *pos == '\n') {
32 | *pos = '\0';
33 | break;
34 | }
35 | pos++;
36 | }
37 | password = buf;
38 | }
39 |
40 | if (nt_password_hash((u8 *) password, strlen(password), password_hash))
41 | return -1;
42 | for (i = 0; i < sizeof(password_hash); i++)
43 | printf("%02x", password_hash[i]);
44 | printf("\n");
45 |
46 | return 0;
47 | }
48 |
--------------------------------------------------------------------------------
/src/ap/ap_mlme.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / IEEE 802.11 MLME
3 | * Copyright 2003, Jouni Malinen
4 | * Copyright 2003-2004, Instant802 Networks, Inc.
5 | * Copyright 2005-2006, Devicescape Software, Inc.
6 | *
7 | * This software may be distributed under the terms of the BSD license.
8 | * See README for more details.
9 | */
10 |
11 | #ifndef MLME_H
12 | #define MLME_H
13 |
14 | void mlme_authenticate_indication(struct hostapd_data *hapd,
15 | struct sta_info *sta);
16 |
17 | void mlme_deauthenticate_indication(struct hostapd_data *hapd,
18 | struct sta_info *sta, u16 reason_code);
19 |
20 | void mlme_associate_indication(struct hostapd_data *hapd,
21 | struct sta_info *sta);
22 |
23 | void mlme_reassociate_indication(struct hostapd_data *hapd,
24 | struct sta_info *sta);
25 |
26 | void mlme_disassociate_indication(struct hostapd_data *hapd,
27 | struct sta_info *sta, u16 reason_code);
28 |
29 | void mlme_michaelmicfailure_indication(struct hostapd_data *hapd,
30 | const u8 *addr);
31 |
32 | void mlme_deletekeys_request(struct hostapd_data *hapd, struct sta_info *sta);
33 |
34 | #endif /* MLME_H */
35 |
--------------------------------------------------------------------------------
/src/eap_peer/tncc.h:
--------------------------------------------------------------------------------
1 | /*
2 | * EAP-TNC - TNCC (IF-IMC and IF-TNCCS)
3 | * Copyright (c) 2007, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef TNCC_H
10 | #define TNCC_H
11 |
12 | struct tncc_data;
13 |
14 | struct tncc_data * tncc_init(void);
15 | void tncc_deinit(struct tncc_data *tncc);
16 | void tncc_init_connection(struct tncc_data *tncc);
17 | size_t tncc_total_send_len(struct tncc_data *tncc);
18 | u8 * tncc_copy_send_buf(struct tncc_data *tncc, u8 *pos);
19 | char * tncc_if_tnccs_start(struct tncc_data *tncc);
20 | char * tncc_if_tnccs_end(void);
21 |
22 | enum tncc_process_res {
23 | TNCCS_PROCESS_ERROR = -1,
24 | TNCCS_PROCESS_OK_NO_RECOMMENDATION = 0,
25 | TNCCS_RECOMMENDATION_ERROR,
26 | TNCCS_RECOMMENDATION_ALLOW,
27 | TNCCS_RECOMMENDATION_NONE,
28 | TNCCS_RECOMMENDATION_ISOLATE
29 | };
30 |
31 | enum tncc_process_res tncc_process_if_tnccs(struct tncc_data *tncc,
32 | const u8 *msg, size_t len);
33 |
34 | struct wpabuf * tncc_process_soh_request(int ver, const u8 *data, size_t len);
35 |
36 | #endif /* TNCC_H */
37 |
--------------------------------------------------------------------------------
/src/crypto/sha1.h:
--------------------------------------------------------------------------------
1 | /*
2 | * SHA1 hash implementation and interface functions
3 | * Copyright (c) 2003-2009, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef SHA1_H
10 | #define SHA1_H
11 |
12 | #define SHA1_MAC_LEN 20
13 |
14 | int hmac_sha1_vector(const u8 *key, size_t key_len, size_t num_elem,
15 | const u8 *addr[], const size_t *len, u8 *mac);
16 | int hmac_sha1(const u8 *key, size_t key_len, const u8 *data, size_t data_len,
17 | u8 *mac);
18 | int sha1_prf(const u8 *key, size_t key_len, const char *label,
19 | const u8 *data, size_t data_len, u8 *buf, size_t buf_len);
20 | int sha1_t_prf(const u8 *key, size_t key_len, const char *label,
21 | const u8 *seed, size_t seed_len, u8 *buf, size_t buf_len);
22 | int __must_check tls_prf_sha1_md5(const u8 *secret, size_t secret_len,
23 | const char *label, const u8 *seed,
24 | size_t seed_len, u8 *out, size_t outlen);
25 | int pbkdf2_sha1(const char *passphrase, const u8 *ssid, size_t ssid_len,
26 | int iterations, u8 *buf, size_t buflen);
27 | #endif /* SHA1_H */
28 |
--------------------------------------------------------------------------------
/src/pae/ieee802_1x_key.h:
--------------------------------------------------------------------------------
1 | /*
2 | * IEEE 802.1X-2010 Key Hierarchy
3 | * Copyright (c) 2013, Qualcomm Atheros, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef IEEE802_1X_KEY_H
10 | #define IEEE802_1X_KEY_H
11 |
12 | int ieee802_1x_cak_aes_cmac(const u8 *msk, size_t msk_bytes, const u8 *mac1,
13 | const u8 *mac2, u8 *cak, size_t cak_bytes);
14 | int ieee802_1x_ckn_aes_cmac(const u8 *msk, size_t msk_bytes, const u8 *mac1,
15 | const u8 *mac2, const u8 *sid,
16 | size_t sid_bytes, u8 *ckn);
17 | int ieee802_1x_kek_aes_cmac(const u8 *cak, size_t cak_bytes, const u8 *ckn,
18 | size_t ckn_bytes, u8 *kek, size_t kek_bytes);
19 | int ieee802_1x_ick_aes_cmac(const u8 *cak, size_t cak_bytes, const u8 *ckn,
20 | size_t ckn_bytes, u8 *ick, size_t ick_bytes);
21 | int ieee802_1x_icv_aes_cmac(const u8 *ick, size_t ick_bytes, const u8 *msg,
22 | size_t msg_bytes, u8 *icv);
23 | int ieee802_1x_sak_aes_cmac(const u8 *cak, size_t cak_bytes, const u8 *ctx,
24 | size_t ctx_bytes, u8 *sak, size_t sak_bytes);
25 |
26 | #endif /* IEEE802_1X_KEY_H */
27 |
--------------------------------------------------------------------------------
/debian/ifupdown/action_wpa.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Action script to enable/disable wpa-roam interfaces in reaction to
4 | # ifplugd events.
5 | #
6 | # Copyright: Copyright (c) 2008-2010, Kel Modderman
7 | # License: GPL-2
8 | #
9 |
10 | PATH=/sbin:/usr/sbin:/bin:/usr/bin
11 |
12 | if [ ! -x /sbin/wpa_action ]; then
13 | exit 0
14 | fi
15 |
16 | # ifplugd(8) -
17 | #
18 | # If an ifplugd managed interface is brought up, disconnect any
19 | # wpa-roam managed interfaces so that only one "roaming" interface
20 | # remains active on the system.
21 |
22 | IFPLUGD_IFACE="${1}"
23 |
24 | case "${2}" in
25 | up)
26 | COMMAND=disconnect
27 | ;;
28 | down)
29 | COMMAND=reconnect
30 | ;;
31 | *)
32 | echo "$0: unknown arguments: ${@}" >&2
33 | exit 1
34 | ;;
35 | esac
36 |
37 | for CTRL in /run/wpa_supplicant/*; do
38 | [ -S "${CTRL}" ] || continue
39 |
40 | IFACE="${CTRL#/run/wpa_supplicant/}"
41 |
42 | # skip if ifplugd is managing this interface
43 | if [ "${IFPLUGD_IFACE}" = "${IFACE}" ]; then
44 | continue
45 | fi
46 |
47 | if wpa_action "${IFACE}" check; then
48 | wpa_cli -i "${IFACE}" "${COMMAND}"
49 | fi
50 | done
51 |
--------------------------------------------------------------------------------
/hostapd/ctrl_iface.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / UNIX domain socket -based control interface
3 | * Copyright (c) 2004, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef CTRL_IFACE_H
10 | #define CTRL_IFACE_H
11 |
12 | #ifndef CONFIG_NO_CTRL_IFACE
13 | int hostapd_ctrl_iface_init(struct hostapd_data *hapd);
14 | void hostapd_ctrl_iface_deinit(struct hostapd_data *hapd);
15 | int hostapd_global_ctrl_iface_init(struct hapd_interfaces *interface);
16 | void hostapd_global_ctrl_iface_deinit(struct hapd_interfaces *interface);
17 | #else /* CONFIG_NO_CTRL_IFACE */
18 | static inline int hostapd_ctrl_iface_init(struct hostapd_data *hapd)
19 | {
20 | return 0;
21 | }
22 |
23 | static inline void hostapd_ctrl_iface_deinit(struct hostapd_data *hapd)
24 | {
25 | }
26 |
27 | static inline int
28 | hostapd_global_ctrl_iface_init(struct hapd_interfaces *interface)
29 | {
30 | return 0;
31 | }
32 |
33 | static inline void
34 | hostapd_global_ctrl_iface_deinit(struct hapd_interfaces *interface)
35 | {
36 | }
37 | #endif /* CONFIG_NO_CTRL_IFACE */
38 |
39 | #endif /* CTRL_IFACE_H */
40 |
--------------------------------------------------------------------------------
/src/common/ocv.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Operating Channel Validation (OCV)
3 | * Copyright (c) 2018, Mathy Vanhoef
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef OCV_H
10 | #define OCV_H
11 |
12 | struct wpa_channel_info;
13 |
14 | struct oci_info {
15 | /* Values in the OCI element */
16 | u8 op_class;
17 | u8 channel;
18 | u8 seg1_idx;
19 |
20 | /* Derived values for easier verification */
21 | int freq;
22 | int sec_channel;
23 | int chanwidth;
24 | };
25 |
26 | #define OCV_OCI_LEN 3
27 | #define OCV_OCI_EXTENDED_LEN (3 + OCV_OCI_LEN)
28 | #define OCV_OCI_KDE_LEN (2 + RSN_SELECTOR_LEN + OCV_OCI_LEN)
29 |
30 | extern char ocv_errorstr[256];
31 |
32 | int ocv_derive_all_parameters(struct oci_info *oci);
33 | int ocv_insert_oci(struct wpa_channel_info *ci, u8 **argpos);
34 | int ocv_insert_oci_kde(struct wpa_channel_info *ci, u8 **argpos);
35 | int ocv_insert_extended_oci(struct wpa_channel_info *ci, u8 *pos);
36 | int ocv_verify_tx_params(const u8 *oci_ie, size_t oci_ie_len,
37 | struct wpa_channel_info *ci, int tx_chanwidth,
38 | int tx_seg1_idx);
39 |
40 | #endif /* OCV_H */
41 |
--------------------------------------------------------------------------------
/wpa_supplicant/wpa_gui-qt4/peers.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | Peers
4 |
5 |
6 |
7 | 0
8 | 0
9 | 400
10 | 300
11 |
12 |
13 |
14 | Peers
15 |
16 |
17 | -
18 |
19 |
20 |
21 | 0
22 | 0
23 |
24 |
25 |
26 | true
27 |
28 |
29 | QAbstractItemView::NoEditTriggers
30 |
31 |
32 | QListView::IconMode
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/src/drivers/linux_defines.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Linux defines for values that are not yet included in common C libraries
3 | * Copyright (c) 2014, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef LINUX_DEFINES_H
10 | #define LINUX_DEFINES_H
11 |
12 | #ifndef SO_WIFI_STATUS
13 | # if defined(__sparc__)
14 | # define SO_WIFI_STATUS 0x0025
15 | # elif defined(__parisc__)
16 | # define SO_WIFI_STATUS 0x4022
17 | # else
18 | # define SO_WIFI_STATUS 41
19 | # endif
20 |
21 | # define SCM_WIFI_STATUS SO_WIFI_STATUS
22 | #endif
23 |
24 | #ifndef SO_EE_ORIGIN_TXSTATUS
25 | #define SO_EE_ORIGIN_TXSTATUS 4
26 | #endif
27 |
28 | #ifndef PACKET_TX_TIMESTAMP
29 | #define PACKET_TX_TIMESTAMP 16
30 | #endif
31 |
32 | #ifndef IFF_LOWER_UP
33 | #define IFF_LOWER_UP 0x10000 /* driver signals L1 up */
34 | #endif
35 | #ifndef IFF_DORMANT
36 | #define IFF_DORMANT 0x20000 /* driver signals dormant */
37 | #endif
38 |
39 | #ifndef IF_OPER_DORMANT
40 | #define IF_OPER_DORMANT 5
41 | #endif
42 | #ifndef IF_OPER_UP
43 | #define IF_OPER_UP 6
44 | #endif
45 |
46 | #endif /* LINUX_DEFINES_H */
47 |
--------------------------------------------------------------------------------
/src/ap/ieee802_11_auth.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / IEEE 802.11 authentication (ACL)
3 | * Copyright (c) 2003-2005, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef IEEE802_11_AUTH_H
10 | #define IEEE802_11_AUTH_H
11 |
12 | enum {
13 | HOSTAPD_ACL_REJECT = 0,
14 | HOSTAPD_ACL_ACCEPT = 1,
15 | HOSTAPD_ACL_PENDING = 2,
16 | HOSTAPD_ACL_ACCEPT_TIMEOUT = 3
17 | };
18 |
19 | int hostapd_check_acl(struct hostapd_data *hapd, const u8 *addr,
20 | struct vlan_description *vlan_id);
21 | int hostapd_allowed_address(struct hostapd_data *hapd, const u8 *addr,
22 | const u8 *msg, size_t len, u32 *session_timeout,
23 | u32 *acct_interim_interval,
24 | struct vlan_description *vlan_id,
25 | struct hostapd_sta_wpa_psk_short **psk,
26 | char **identity, char **radius_cui,
27 | int is_probe_req);
28 | int hostapd_acl_init(struct hostapd_data *hapd);
29 | void hostapd_acl_deinit(struct hostapd_data *hapd);
30 | void hostapd_free_psk_list(struct hostapd_sta_wpa_psk_short *psk);
31 | void hostapd_acl_expire(struct hostapd_data *hapd);
32 |
33 | #endif /* IEEE802_11_AUTH_H */
34 |
--------------------------------------------------------------------------------
/src/crypto/sha256.h:
--------------------------------------------------------------------------------
1 | /*
2 | * SHA256 hash implementation and interface functions
3 | * Copyright (c) 2003-2016, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef SHA256_H
10 | #define SHA256_H
11 |
12 | #define SHA256_MAC_LEN 32
13 |
14 | int hmac_sha256_vector(const u8 *key, size_t key_len, size_t num_elem,
15 | const u8 *addr[], const size_t *len, u8 *mac);
16 | int hmac_sha256(const u8 *key, size_t key_len, const u8 *data,
17 | size_t data_len, u8 *mac);
18 | int sha256_prf(const u8 *key, size_t key_len, const char *label,
19 | const u8 *data, size_t data_len, u8 *buf, size_t buf_len);
20 | int sha256_prf_bits(const u8 *key, size_t key_len, const char *label,
21 | const u8 *data, size_t data_len, u8 *buf,
22 | size_t buf_len_bits);
23 | int tls_prf_sha256(const u8 *secret, size_t secret_len,
24 | const char *label, const u8 *seed, size_t seed_len,
25 | u8 *out, size_t outlen);
26 | int hmac_sha256_kdf(const u8 *secret, size_t secret_len,
27 | const char *label, const u8 *seed, size_t seed_len,
28 | u8 *out, size_t outlen);
29 |
30 | #endif /* SHA256_H */
31 |
--------------------------------------------------------------------------------
/src/ap/wnm_ap.h:
--------------------------------------------------------------------------------
1 | /*
2 | * IEEE 802.11v WNM related functions and structures
3 | * Copyright (c) 2011-2014, Qualcomm Atheros, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef WNM_AP_H
10 | #define WNM_AP_H
11 |
12 | struct sta_info;
13 |
14 | int ieee802_11_rx_wnm_action_ap(struct hostapd_data *hapd,
15 | const struct ieee80211_mgmt *mgmt, size_t len);
16 | int wnm_send_disassoc_imminent(struct hostapd_data *hapd,
17 | struct sta_info *sta, int disassoc_timer);
18 | int wnm_send_ess_disassoc_imminent(struct hostapd_data *hapd,
19 | struct sta_info *sta, const char *url,
20 | int disassoc_timer);
21 | int wnm_send_bss_tm_req(struct hostapd_data *hapd, struct sta_info *sta,
22 | u8 req_mode, int disassoc_timer, u8 valid_int,
23 | const u8 *bss_term_dur, const char *url,
24 | const u8 *nei_rep, size_t nei_rep_len,
25 | const u8 *mbo_attrs, size_t mbo_len);
26 | void ap_sta_reset_steer_flag_timer(void *eloop_ctx, void *timeout_ctx);
27 | int wnm_send_coloc_intf_req(struct hostapd_data *hapd, struct sta_info *sta,
28 | unsigned int auto_report, unsigned int timeout);
29 |
30 | #endif /* WNM_AP_H */
31 |
--------------------------------------------------------------------------------
/src/utils/json.h:
--------------------------------------------------------------------------------
1 | /*
2 | * JavaScript Object Notation (JSON) parser (RFC7159)
3 | * Copyright (c) 2017, Qualcomm Atheros, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef JSON_H
10 | #define JSON_H
11 |
12 | struct json_token {
13 | enum json_type {
14 | JSON_VALUE,
15 | JSON_OBJECT,
16 | JSON_ARRAY,
17 | JSON_STRING,
18 | JSON_NUMBER,
19 | JSON_BOOLEAN,
20 | JSON_NULL,
21 | } type;
22 | enum json_parsing_state {
23 | JSON_EMPTY,
24 | JSON_STARTED,
25 | JSON_WAITING_VALUE,
26 | JSON_COMPLETED,
27 | } state;
28 | char *name;
29 | char *string;
30 | int number;
31 | struct json_token *parent, *child, *sibling;
32 | };
33 |
34 | void json_escape_string(char *txt, size_t maxlen, const char *data, size_t len);
35 | struct json_token * json_parse(const char *data, size_t data_len);
36 | void json_free(struct json_token *json);
37 | struct json_token * json_get_member(struct json_token *json, const char *name);
38 | struct wpabuf * json_get_member_base64url(struct json_token *json,
39 | const char *name);
40 | void json_print_tree(struct json_token *root, char *buf, size_t buflen);
41 |
42 | #endif /* JSON_H */
43 |
--------------------------------------------------------------------------------
/wpa_supplicant/binder/iface.h:
--------------------------------------------------------------------------------
1 | /*
2 | * binder interface for wpa_supplicant daemon
3 | * Copyright (c) 2004-2016, Jouni Malinen
4 | * Copyright (c) 2004-2016, Roshan Pius
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #ifndef WPA_SUPPLICANT_BINDER_IFACE_H
11 | #define WPA_SUPPLICANT_BINDER_IFACE_H
12 |
13 | #include "fi/w1/wpa_supplicant/BnIface.h"
14 |
15 | extern "C" {
16 | #include "utils/common.h"
17 | #include "utils/includes.h"
18 | #include "../wpa_supplicant_i.h"
19 | }
20 |
21 | namespace wpa_supplicant_binder {
22 |
23 | /**
24 | * Implementation of Iface binder object. Each unique binder
25 | * object is used for control operations on a specific interface
26 | * controlled by wpa_supplicant.
27 | */
28 | class Iface : public fi::w1::wpa_supplicant::BnIface
29 | {
30 | public:
31 | Iface(struct wpa_supplicant *wpa_s);
32 | virtual ~Iface() = default;
33 |
34 | private:
35 | /* Raw pointer to the structure maintained by the core for this
36 | * interface. */
37 | struct wpa_supplicant *wpa_s_;
38 | };
39 |
40 | } /* namespace wpa_supplicant_binder */
41 |
42 | #endif /* WPA_SUPPLICANT_BINDER_IFACE_H */
43 |
--------------------------------------------------------------------------------
/src/drivers/driver_wired_common.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Common definitions for Wired Ethernet driver interfaces
3 | * Copyright (c) 2005-2009, Jouni Malinen
4 | * Copyright (c) 2004, Gunter Burchardt
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #ifndef DRIVER_WIRED_COMMON_H
11 | #define DRIVER_WIRED_COMMON_H
12 |
13 | struct driver_wired_common_data {
14 | char ifname[IFNAMSIZ + 1];
15 | void *ctx;
16 |
17 | int sock; /* raw packet socket for driver access */
18 | int pf_sock;
19 | int membership, multi, iff_allmulti, iff_up;
20 | };
21 |
22 | static const u8 pae_group_addr[ETH_ALEN] =
23 | { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x03 };
24 |
25 | int wired_multicast_membership(int sock, int ifindex, const u8 *addr, int add);
26 | int driver_wired_get_ssid(void *priv, u8 *ssid);
27 | int driver_wired_get_bssid(void *priv, u8 *bssid);
28 | int driver_wired_get_capa(void *priv, struct wpa_driver_capa *capa);
29 |
30 | int driver_wired_init_common(struct driver_wired_common_data *common,
31 | const char *ifname, void *ctx);
32 | void driver_wired_deinit_common(struct driver_wired_common_data *common);
33 |
34 | #endif /* DRIVER_WIRED_COMMON_H */
35 |
--------------------------------------------------------------------------------
/src/crypto/rc4.c:
--------------------------------------------------------------------------------
1 | /*
2 | * RC4 stream cipher
3 | * Copyright (c) 2002-2005, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #include "includes.h"
10 |
11 | #include "common.h"
12 | #include "crypto.h"
13 |
14 | #define S_SWAP(a,b) do { u8 t = S[a]; S[a] = S[b]; S[b] = t; } while(0)
15 |
16 | int rc4_skip(const u8 *key, size_t keylen, size_t skip,
17 | u8 *data, size_t data_len)
18 | {
19 | u32 i, j, k;
20 | u8 S[256], *pos;
21 | size_t kpos;
22 |
23 | /* Setup RC4 state */
24 | for (i = 0; i < 256; i++)
25 | S[i] = i;
26 | j = 0;
27 | kpos = 0;
28 | for (i = 0; i < 256; i++) {
29 | j = (j + S[i] + key[kpos]) & 0xff;
30 | kpos++;
31 | if (kpos >= keylen)
32 | kpos = 0;
33 | S_SWAP(i, j);
34 | }
35 |
36 | /* Skip the start of the stream */
37 | i = j = 0;
38 | for (k = 0; k < skip; k++) {
39 | i = (i + 1) & 0xff;
40 | j = (j + S[i]) & 0xff;
41 | S_SWAP(i, j);
42 | }
43 |
44 | /* Apply RC4 to data */
45 | pos = data;
46 | for (k = 0; k < data_len; k++) {
47 | i = (i + 1) & 0xff;
48 | j = (j + S[i]) & 0xff;
49 | S_SWAP(i, j);
50 | *pos++ ^= S[(S[i] + S[j]) & 0xff];
51 | }
52 |
53 | return 0;
54 | }
55 |
--------------------------------------------------------------------------------
/src/tls/bignum.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Big number math
3 | * Copyright (c) 2006, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef BIGNUM_H
10 | #define BIGNUM_H
11 |
12 | struct bignum;
13 |
14 | struct bignum * bignum_init(void);
15 | void bignum_deinit(struct bignum *n);
16 | size_t bignum_get_unsigned_bin_len(struct bignum *n);
17 | int bignum_get_unsigned_bin(const struct bignum *n, u8 *buf, size_t *len);
18 | int bignum_set_unsigned_bin(struct bignum *n, const u8 *buf, size_t len);
19 | int bignum_cmp(const struct bignum *a, const struct bignum *b);
20 | int bignum_cmp_d(const struct bignum *a, unsigned long b);
21 | int bignum_add(const struct bignum *a, const struct bignum *b,
22 | struct bignum *c);
23 | int bignum_sub(const struct bignum *a, const struct bignum *b,
24 | struct bignum *c);
25 | int bignum_mul(const struct bignum *a, const struct bignum *b,
26 | struct bignum *c);
27 | int bignum_mulmod(const struct bignum *a, const struct bignum *b,
28 | const struct bignum *c, struct bignum *d);
29 | int bignum_exptmod(const struct bignum *a, const struct bignum *b,
30 | const struct bignum *c, struct bignum *d);
31 |
32 | #endif /* BIGNUM_H */
33 |
--------------------------------------------------------------------------------
/src/utils/ip_addr.c:
--------------------------------------------------------------------------------
1 | /*
2 | * IP address processing
3 | * Copyright (c) 2003-2006, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #include "includes.h"
10 |
11 | #include "common.h"
12 | #include "ip_addr.h"
13 |
14 | const char * hostapd_ip_txt(const struct hostapd_ip_addr *addr, char *buf,
15 | size_t buflen)
16 | {
17 | if (buflen == 0 || addr == NULL)
18 | return NULL;
19 |
20 | if (addr->af == AF_INET) {
21 | os_strlcpy(buf, inet_ntoa(addr->u.v4), buflen);
22 | } else {
23 | buf[0] = '\0';
24 | }
25 | #ifdef CONFIG_IPV6
26 | if (addr->af == AF_INET6) {
27 | if (inet_ntop(AF_INET6, &addr->u.v6, buf, buflen) == NULL)
28 | buf[0] = '\0';
29 | }
30 | #endif /* CONFIG_IPV6 */
31 |
32 | return buf;
33 | }
34 |
35 |
36 | int hostapd_parse_ip_addr(const char *txt, struct hostapd_ip_addr *addr)
37 | {
38 | #ifndef CONFIG_NATIVE_WINDOWS
39 | if (inet_aton(txt, &addr->u.v4)) {
40 | addr->af = AF_INET;
41 | return 0;
42 | }
43 |
44 | #ifdef CONFIG_IPV6
45 | if (inet_pton(AF_INET6, txt, &addr->u.v6) > 0) {
46 | addr->af = AF_INET6;
47 | return 0;
48 | }
49 | #endif /* CONFIG_IPV6 */
50 | #endif /* CONFIG_NATIVE_WINDOWS */
51 |
52 | return -1;
53 | }
54 |
--------------------------------------------------------------------------------
/wpa_supplicant/dbus/dbus-wpa_supplicant.conf:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/ap/vlan_init.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / VLAN initialization
3 | * Copyright 2003, Instant802 Networks, Inc.
4 | * Copyright 2005, Devicescape Software, Inc.
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #ifndef VLAN_INIT_H
11 | #define VLAN_INIT_H
12 |
13 | #ifndef CONFIG_NO_VLAN
14 | int vlan_init(struct hostapd_data *hapd);
15 | void vlan_deinit(struct hostapd_data *hapd);
16 | struct hostapd_vlan * vlan_add_dynamic(struct hostapd_data *hapd,
17 | struct hostapd_vlan *vlan,
18 | int vlan_id,
19 | struct vlan_description *vlan_desc);
20 | int vlan_remove_dynamic(struct hostapd_data *hapd, int vlan_id);
21 | #else /* CONFIG_NO_VLAN */
22 | static inline int vlan_init(struct hostapd_data *hapd)
23 | {
24 | return 0;
25 | }
26 |
27 | static inline void vlan_deinit(struct hostapd_data *hapd)
28 | {
29 | }
30 |
31 | static inline struct hostapd_vlan *
32 | vlan_add_dynamic(struct hostapd_data *hapd, struct hostapd_vlan *vlan,
33 | int vlan_id, struct vlan_description *vlan_desc)
34 | {
35 | return NULL;
36 | }
37 |
38 | static inline int vlan_remove_dynamic(struct hostapd_data *hapd, int vlan_id)
39 | {
40 | return -1;
41 | }
42 | #endif /* CONFIG_NO_VLAN */
43 |
44 | #endif /* VLAN_INIT_H */
45 |
--------------------------------------------------------------------------------
/src/wps/http_server.h:
--------------------------------------------------------------------------------
1 | /*
2 | * http_server - HTTP server
3 | * Copyright (c) 2009, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef HTTP_SERVER_H
10 | #define HTTP_SERVER_H
11 |
12 | struct http_server;
13 | struct http_request;
14 |
15 | void http_request_deinit(struct http_request *req);
16 | void http_request_send(struct http_request *req, struct wpabuf *resp);
17 | void http_request_send_and_deinit(struct http_request *req,
18 | struct wpabuf *resp);
19 | enum httpread_hdr_type http_request_get_type(struct http_request *req);
20 | char * http_request_get_uri(struct http_request *req);
21 | char * http_request_get_hdr(struct http_request *req);
22 | char * http_request_get_data(struct http_request *req);
23 | char * http_request_get_hdr_line(struct http_request *req, const char *tag);
24 | struct sockaddr_in * http_request_get_cli_addr(struct http_request *req);
25 |
26 | struct http_server * http_server_init(struct in_addr *addr, int port,
27 | void (*cb)(void *ctx,
28 | struct http_request *req),
29 | void *cb_ctx);
30 | void http_server_deinit(struct http_server *srv);
31 | int http_server_get_port(struct http_server *srv);
32 |
33 | #endif /* HTTP_SERVER_H */
34 |
--------------------------------------------------------------------------------
/src/utils/includes.h:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_supplicant/hostapd - Default include files
3 | * Copyright (c) 2005-2006, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | *
8 | * This header file is included into all C files so that commonly used header
9 | * files can be selected with OS specific ifdef blocks in one place instead of
10 | * having to have OS/C library specific selection in many files.
11 | */
12 |
13 | #ifndef INCLUDES_H
14 | #define INCLUDES_H
15 |
16 | /* Include possible build time configuration before including anything else */
17 | #include "build_config.h"
18 |
19 | #include
20 | #include
21 | #include
22 | #include
23 | #include
24 | #ifndef _WIN32_WCE
25 | #include
26 | #include
27 | #include
28 | #endif /* _WIN32_WCE */
29 | #include
30 |
31 | #ifndef _MSC_VER
32 | #include
33 | #endif /* _MSC_VER */
34 |
35 | #ifndef CONFIG_NATIVE_WINDOWS
36 | #include
37 | #include
38 | #include
39 | #ifndef __vxworks
40 | #include
41 | #include
42 | #endif /* __vxworks */
43 | #endif /* CONFIG_NATIVE_WINDOWS */
44 |
45 | #endif /* INCLUDES_H */
46 |
--------------------------------------------------------------------------------
/hostapd/wired.conf:
--------------------------------------------------------------------------------
1 | ##### hostapd configuration file ##############################################
2 | # Empty lines and lines starting with # are ignored
3 |
4 | # Example configuration file for wired authenticator. See hostapd.conf for
5 | # more details.
6 |
7 | interface=eth0
8 | driver=wired
9 | logger_stdout=-1
10 | logger_stdout_level=1
11 | debug=2
12 | dump_file=/tmp/hostapd.dump
13 |
14 | ieee8021x=1
15 | eap_reauth_period=3600
16 |
17 | use_pae_group_addr=1
18 |
19 |
20 | ##### RADIUS configuration ####################################################
21 | # for IEEE 802.1X with external Authentication Server, IEEE 802.11
22 | # authentication with external ACL for MAC addresses, and accounting
23 |
24 | # The own IP address of the access point (used as NAS-IP-Address)
25 | own_ip_addr=127.0.0.1
26 |
27 | # Optional NAS-Identifier string for RADIUS messages. When used, this should be
28 | # a unique to the NAS within the scope of the RADIUS server. For example, a
29 | # fully qualified domain name can be used here.
30 | nas_identifier=ap.example.com
31 |
32 | # RADIUS authentication server
33 | auth_server_addr=127.0.0.1
34 | auth_server_port=1812
35 | auth_server_shared_secret=radius
36 |
37 | # RADIUS accounting server
38 | acct_server_addr=127.0.0.1
39 | acct_server_port=1813
40 | acct_server_shared_secret=radius
41 |
--------------------------------------------------------------------------------
/debian/hostapd.NEWS:
--------------------------------------------------------------------------------
1 | wpa (2:2.7-3) unstable; urgency=medium
2 |
3 | Starting from this version, the init script of hostapd will display
4 | a warning if DAEMON_CONF is set to a value different from
5 | /etc/hostapd/hostapd.conf. A future upload will also attempt
6 | to migrate the configuration file to the new location.
7 |
8 | -- Andrej Shadura Thu, 10 Jan 2019 21:29:31 +0100
9 |
10 | wpa (2:2.6-10) unstable; urgency=medium
11 |
12 | The hostapd .service file is now automatically masked every time the
13 | package is upgraded with no valid configuration.
14 |
15 | The plan is to deprecate /etc/default/hostapd at some point, making
16 | /etc/hostapd/hostapd.conf the standard location for the configuration
17 | file.
18 |
19 | -- Andrew Shadura Tue, 28 Nov 2017 12:29:21 +0100
20 |
21 | wpa (2:2.6-8) unstable; urgency=medium
22 |
23 | Since 2:2.6-6, hostapd ships a systemd .service file. As hostapd comes
24 | with /etc/default/hostapd file, which by default doesn't specify any
25 | config file, to prevent installation or boot failures, the package's
26 | postinst script masks the hostapd.service unit on the first install.
27 | After editing the default file, users need to unmask it themselves.
28 |
29 | -- Andrew Shadura Sun, 26 Nov 2017 19:25:50 +0000
30 |
--------------------------------------------------------------------------------
/src/ap/accounting.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / RADIUS Accounting
3 | * Copyright (c) 2002-2005, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef ACCOUNTING_H
10 | #define ACCOUNTING_H
11 |
12 | #ifdef CONFIG_NO_ACCOUNTING
13 | static inline int accounting_sta_get_id(struct hostapd_data *hapd,
14 | struct sta_info *sta)
15 | {
16 | return 0;
17 | }
18 |
19 | static inline void accounting_sta_start(struct hostapd_data *hapd,
20 | struct sta_info *sta)
21 | {
22 | }
23 |
24 | static inline void accounting_sta_stop(struct hostapd_data *hapd,
25 | struct sta_info *sta)
26 | {
27 | }
28 |
29 | static inline int accounting_init(struct hostapd_data *hapd)
30 | {
31 | return 0;
32 | }
33 |
34 | static inline void accounting_deinit(struct hostapd_data *hapd)
35 | {
36 | }
37 | #else /* CONFIG_NO_ACCOUNTING */
38 | int accounting_sta_get_id(struct hostapd_data *hapd, struct sta_info *sta);
39 | void accounting_sta_start(struct hostapd_data *hapd, struct sta_info *sta);
40 | void accounting_sta_stop(struct hostapd_data *hapd, struct sta_info *sta);
41 | int accounting_init(struct hostapd_data *hapd);
42 | void accounting_deinit(struct hostapd_data *hapd);
43 | #endif /* CONFIG_NO_ACCOUNTING */
44 |
45 | #endif /* ACCOUNTING_H */
46 |
--------------------------------------------------------------------------------
/wpa_supplicant/examples/openCryptoki.conf:
--------------------------------------------------------------------------------
1 | # EAP-TLS using private key and certificates via OpenSSL PKCS#11 engine and
2 | # openCryptoki (e.g., with TPM token)
3 |
4 | # This example uses following PKCS#11 objects:
5 | # $ pkcs11-tool --module /usr/lib/opencryptoki/libopencryptoki.so -O -l
6 | # Please enter User PIN:
7 | # Private Key Object; RSA
8 | # label: rsakey
9 | # ID: 04
10 | # Usage: decrypt, sign, unwrap
11 | # Certificate Object, type = X.509 cert
12 | # label: ca
13 | # ID: 01
14 | # Certificate Object, type = X.509 cert
15 | # label: cert
16 | # ID: 04
17 |
18 | # Configure OpenSSL to load the PKCS#11 engine and openCryptoki module
19 | pkcs11_engine_path=/usr/lib/engines/engine_pkcs11.so
20 | pkcs11_module_path=/usr/lib/opencryptoki/libopencryptoki.so
21 |
22 | network={
23 | ssid="test network"
24 | key_mgmt=WPA-EAP
25 | eap=TLS
26 | identity="User"
27 |
28 | # use OpenSSL PKCS#11 engine for this network
29 | engine=1
30 | engine_id="pkcs11"
31 |
32 | # select the private key and certificates based on ID (see pkcs11-tool
33 | # output above)
34 | key_id="4"
35 | cert_id="4"
36 | ca_cert_id="1"
37 |
38 | # set the PIN code; leave this out to configure the PIN to be requested
39 | # interactively when needed (e.g., via wpa_gui or wpa_cli)
40 | pin="123456"
41 | }
42 |
--------------------------------------------------------------------------------
/src/wps/http_client.h:
--------------------------------------------------------------------------------
1 | /*
2 | * http_client - HTTP client
3 | * Copyright (c) 2009, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef HTTP_CLIENT_H
10 | #define HTTP_CLIENT_H
11 |
12 | struct http_client;
13 |
14 | enum http_client_event {
15 | HTTP_CLIENT_FAILED,
16 | HTTP_CLIENT_TIMEOUT,
17 | HTTP_CLIENT_OK,
18 | HTTP_CLIENT_INVALID_REPLY,
19 | };
20 |
21 | char * http_client_url_parse(const char *url, struct sockaddr_in *dst,
22 | char **path);
23 | struct http_client * http_client_addr(struct sockaddr_in *dst,
24 | struct wpabuf *req, size_t max_response,
25 | void (*cb)(void *ctx,
26 | struct http_client *c,
27 | enum http_client_event event),
28 | void *cb_ctx);
29 | struct http_client * http_client_url(const char *url,
30 | struct wpabuf *req, size_t max_response,
31 | void (*cb)(void *ctx,
32 | struct http_client *c,
33 | enum http_client_event event),
34 | void *cb_ctx);
35 | void http_client_free(struct http_client *c);
36 | struct wpabuf * http_client_get_body(struct http_client *c);
37 | char * http_client_get_hdr_line(struct http_client *c, const char *tag);
38 | char * http_link_update(char *url, const char *base);
39 |
40 | #endif /* HTTP_CLIENT_H */
41 |
--------------------------------------------------------------------------------
/src/ap/rrm.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / Radio Measurement (RRM)
3 | * Copyright(c) 2013 - 2016 Intel Mobile Communications GmbH.
4 | * Copyright(c) 2011 - 2016 Intel Corporation. All rights reserved.
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #ifndef RRM_H
11 | #define RRM_H
12 |
13 | /*
14 | * Max measure request length is 255, -6 of the body we have 249 for the
15 | * neighbor report elements. Each neighbor report element is at least 2 + 13
16 | * bytes, so we can't have more than 16 responders in the request.
17 | */
18 | #define RRM_RANGE_REQ_MAX_RESPONDERS 16
19 |
20 | void hostapd_handle_radio_measurement(struct hostapd_data *hapd,
21 | const u8 *buf, size_t len);
22 | int hostapd_send_lci_req(struct hostapd_data *hapd, const u8 *addr);
23 | int hostapd_send_range_req(struct hostapd_data *hapd, const u8 *addr,
24 | u16 random_interval, u8 min_ap,
25 | const u8 *responders, unsigned int n_responders);
26 | void hostapd_clean_rrm(struct hostapd_data *hapd);
27 | int hostapd_send_beacon_req(struct hostapd_data *hapd, const u8 *addr,
28 | u8 req_mode, const struct wpabuf *req);
29 | void hostapd_rrm_beacon_req_tx_status(struct hostapd_data *hapd,
30 | const struct ieee80211_mgmt *mgmt,
31 | size_t len, int ok);
32 |
33 | #endif /* RRM_H */
34 |
--------------------------------------------------------------------------------
/src/ap/dfs.h:
--------------------------------------------------------------------------------
1 | /*
2 | * DFS - Dynamic Frequency Selection
3 | * Copyright (c) 2002-2013, Jouni Malinen
4 | * Copyright (c) 2013-2017, Qualcomm Atheros, Inc.
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 | #ifndef DFS_H
10 | #define DFS_H
11 |
12 | int hostapd_handle_dfs(struct hostapd_iface *iface);
13 |
14 | int hostapd_dfs_complete_cac(struct hostapd_iface *iface, int success, int freq,
15 | int ht_enabled, int chan_offset, int chan_width,
16 | int cf1, int cf2);
17 | int hostapd_dfs_pre_cac_expired(struct hostapd_iface *iface, int freq,
18 | int ht_enabled, int chan_offset, int chan_width,
19 | int cf1, int cf2);
20 | int hostapd_dfs_radar_detected(struct hostapd_iface *iface, int freq,
21 | int ht_enabled,
22 | int chan_offset, int chan_width,
23 | int cf1, int cf2);
24 | int hostapd_dfs_nop_finished(struct hostapd_iface *iface, int freq,
25 | int ht_enabled,
26 | int chan_offset, int chan_width, int cf1, int cf2);
27 | int hostapd_is_dfs_required(struct hostapd_iface *iface);
28 | int hostapd_dfs_start_cac(struct hostapd_iface *iface, int freq,
29 | int ht_enabled, int chan_offset, int chan_width,
30 | int cf1, int cf2);
31 | int hostapd_handle_dfs_offload(struct hostapd_iface *iface);
32 |
33 | #endif /* DFS_H */
34 |
--------------------------------------------------------------------------------
/wpa_supplicant/win_example.reg:
--------------------------------------------------------------------------------
1 | REGEDIT4
2 |
3 | [HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant]
4 | "debug_level"=dword:00000000
5 | "debug_show_keys"=dword:00000001
6 | "debug_timestamp"=dword:00000000
7 | "debug_use_file"=dword:00000000
8 |
9 | [HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\configs]
10 |
11 | [HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\configs\test]
12 | "ap_scan"=dword:00000002
13 | "update_config"=dword:00000001
14 | "uuid"="12345678-9abc-def0-1234-56789abcdef0"
15 | "device_name"="Wireless Client"
16 | "manufacturer"="Company"
17 | "model_name"="cmodel"
18 | "serial_number"="12345"
19 | "device_type"="1-0050F204-1"
20 | "os_version"="01020300"
21 |
22 | [HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\configs\test\blobs]
23 | "testblob"=hex:01,02,03,04,05
24 |
25 | [HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\configs\test\networks]
26 |
27 | [HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\configs\test\networks\0000]
28 | "ssid"="\"example network\""
29 | "key_mgmt"="WPA-PSK"
30 | "psk"="\"secret password\""
31 | "pairwise"="CCMP"
32 | "group"="CCMP"
33 | "proto"="WPA"
34 |
35 | [HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\interfaces]
36 |
37 | [HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\interfaces\0000]
38 | "adapter"="{A7627643-C310-49E5-BD89-7E77709C04AB}"
39 | "config"="test"
40 | "ctrl_interface"=""
41 | "skip_on_error"=dword:00000000
42 |
43 |
--------------------------------------------------------------------------------
/wpa_supplicant/wpas_kay.h:
--------------------------------------------------------------------------------
1 | /*
2 | * IEEE 802.1X-2010 KaY Interface
3 | * Copyright (c) 2013-2014, Qualcomm Atheros, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef WPAS_KAY_H
10 | #define WPAS_KAY_H
11 |
12 | #ifdef CONFIG_MACSEC
13 |
14 | int ieee802_1x_alloc_kay_sm(struct wpa_supplicant *wpa_s,
15 | struct wpa_ssid *ssid);
16 | void * ieee802_1x_notify_create_actor(struct wpa_supplicant *wpa_s,
17 | const u8 *peer_addr);
18 | void ieee802_1x_dealloc_kay_sm(struct wpa_supplicant *wpa_s);
19 |
20 | void * ieee802_1x_create_preshared_mka(struct wpa_supplicant *wpa_s,
21 | struct wpa_ssid *ssid);
22 |
23 | #else /* CONFIG_MACSEC */
24 |
25 | static inline int ieee802_1x_alloc_kay_sm(struct wpa_supplicant *wpa_s,
26 | struct wpa_ssid *ssid)
27 | {
28 | return 0;
29 | }
30 |
31 | static inline void *
32 | ieee802_1x_notify_create_actor(struct wpa_supplicant *wpa_s,
33 | const u8 *peer_addr)
34 | {
35 | return NULL;
36 | }
37 |
38 | static inline void ieee802_1x_dealloc_kay_sm(struct wpa_supplicant *wpa_s)
39 | {
40 | }
41 |
42 | static inline void *
43 | ieee802_1x_create_preshared_mka(struct wpa_supplicant *wpa_s,
44 | struct wpa_ssid *ssid)
45 | {
46 | return 0;
47 | }
48 |
49 | #endif /* CONFIG_MACSEC */
50 |
51 | #endif /* WPAS_KAY_H */
52 |
--------------------------------------------------------------------------------
/wpa_supplicant/dbus/Makefile:
--------------------------------------------------------------------------------
1 | all: libwpadbus.a
2 |
3 | clean:
4 | rm -f *~ *.o *.d *.gcno *.gcda *.gcov
5 | rm -f libwpadbus.a
6 |
7 | install:
8 | @echo Nothing to be made.
9 |
10 | ifndef CC
11 | CC=gcc
12 | endif
13 |
14 | ifndef CFLAGS
15 | CFLAGS = -MMD -O2 -Wall -g
16 | endif
17 |
18 | PKG_CONFIG ?= pkg-config
19 | CFLAGS += -I../../src -I../../src/utils
20 |
21 |
22 | Q=@
23 | E=echo
24 | ifeq ($(V), 1)
25 | Q=
26 | E=true
27 | endif
28 |
29 | %.o: %.c
30 | $(Q)$(CC) -c -o $@ $(CFLAGS) $<
31 | @$(E) " CC " $<
32 |
33 |
34 | ifdef CONFIG_WPS
35 | CFLAGS += -DCONFIG_WPS
36 | endif
37 |
38 | CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
39 |
40 | ifndef DBUS_LIBS
41 | DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
42 | endif
43 | ifndef DBUS_INCLUDE
44 | DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
45 | endif
46 | ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
47 | CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
48 | DBUS_INCLUDE += $(shell xml2-config --cflags)
49 | DBUS_LIBS += $(shell xml2-config --libs)
50 | endif
51 |
52 | CFLAGS += $(DBUS_INCLUDE)
53 |
54 | LIB_OBJS= \
55 | dbus_common.o \
56 | dbus_new.o \
57 | dbus_new_handlers.o \
58 | dbus_new_helpers.o \
59 | dbus_new_introspect.o \
60 | dbus_dict_helpers.o
61 |
62 | ifdef CONFIG_WPS
63 | LIB_OBJS += dbus_new_handlers_wps.o
64 | endif
65 |
66 | libwpadbus.a: $(LIB_OBJS)
67 | $(AR) crT $@ $?
68 |
69 | -include $(OBJS:%.o=%.d)
70 |
--------------------------------------------------------------------------------
/src/ap/wpa_auth_ie.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd - WPA/RSN IE and KDE definitions
3 | * Copyright (c) 2004-2007, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef WPA_AUTH_IE_H
10 | #define WPA_AUTH_IE_H
11 |
12 | struct wpa_eapol_ie_parse {
13 | const u8 *wpa_ie;
14 | size_t wpa_ie_len;
15 | const u8 *rsn_ie;
16 | size_t rsn_ie_len;
17 | const u8 *pmkid;
18 | const u8 *gtk;
19 | size_t gtk_len;
20 | const u8 *mac_addr;
21 | size_t mac_addr_len;
22 | #ifdef CONFIG_IEEE80211W
23 | const u8 *igtk;
24 | size_t igtk_len;
25 | #endif /* CONFIG_IEEE80211W */
26 | #ifdef CONFIG_IEEE80211R_AP
27 | const u8 *mdie;
28 | size_t mdie_len;
29 | const u8 *ftie;
30 | size_t ftie_len;
31 | #endif /* CONFIG_IEEE80211R_AP */
32 | #ifdef CONFIG_P2P
33 | const u8 *ip_addr_req;
34 | const u8 *ip_addr_alloc;
35 | #endif /* CONFIG_P2P */
36 | #ifdef CONFIG_OCV
37 | const u8 *oci;
38 | size_t oci_len;
39 | #endif /* CONFIG_OCV */
40 |
41 | const u8 *osen;
42 | size_t osen_len;
43 | };
44 |
45 | int wpa_parse_kde_ies(const u8 *buf, size_t len,
46 | struct wpa_eapol_ie_parse *ie);
47 | u8 * wpa_add_kde(u8 *pos, u32 kde, const u8 *data, size_t data_len,
48 | const u8 *data2, size_t data2_len);
49 | int wpa_auth_gen_wpa_ie(struct wpa_authenticator *wpa_auth);
50 |
51 | #endif /* WPA_AUTH_IE_H */
52 |
--------------------------------------------------------------------------------
/src/common/linux_vlan.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Linux VLAN configuration kernel interface
3 | * Copyright (c) 2016, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef LINUX_VLAN_H
10 | #define LINUX_VLAN_H
11 |
12 | /* This ioctl is defined in linux/sockios.h */
13 |
14 | #ifndef SIOCSIFVLAN
15 | #define SIOCSIFVLAN 0x8983
16 | #endif /* SIOCSIFVLAN */
17 |
18 | /* This interface is defined in linux/if_vlan.h */
19 |
20 | #define ADD_VLAN_CMD 0
21 | #define DEL_VLAN_CMD 1
22 | #define SET_VLAN_INGRESS_PRIORITY_CMD 2
23 | #define SET_VLAN_EGRESS_PRIORITY_CMD 3
24 | #define GET_VLAN_INGRESS_PRIORITY_CMD 4
25 | #define GET_VLAN_EGRESS_PRIORITY_CMD 5
26 | #define SET_VLAN_NAME_TYPE_CMD 6
27 | #define SET_VLAN_FLAG_CMD 7
28 | #define GET_VLAN_REALDEV_NAME_CMD 8
29 | #define GET_VLAN_VID_CMD 9
30 |
31 | #define VLAN_NAME_TYPE_PLUS_VID 0
32 | #define VLAN_NAME_TYPE_RAW_PLUS_VID 1
33 | #define VLAN_NAME_TYPE_PLUS_VID_NO_PAD 2
34 | #define VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD 3
35 |
36 | struct vlan_ioctl_args {
37 | int cmd;
38 | char device1[24];
39 |
40 | union {
41 | char device2[24];
42 | int VID;
43 | unsigned int skb_priority;
44 | unsigned int name_type;
45 | unsigned int bind_type;
46 | unsigned int flag;
47 | } u;
48 |
49 | short vlan_qos;
50 | };
51 |
52 | #endif /* LINUX_VLAN_H */
53 |
--------------------------------------------------------------------------------
/src/eap_server/tncs.h:
--------------------------------------------------------------------------------
1 | /*
2 | * EAP-TNC - TNCS (IF-IMV, IF-TNCCS, and IF-TNCCS-SOH)
3 | * Copyright (c) 2007-2008, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef TNCS_H
10 | #define TNCS_H
11 |
12 | struct tncs_data;
13 |
14 | struct tncs_data * tncs_init(void);
15 | void tncs_deinit(struct tncs_data *tncs);
16 | void tncs_init_connection(struct tncs_data *tncs);
17 | size_t tncs_total_send_len(struct tncs_data *tncs);
18 | u8 * tncs_copy_send_buf(struct tncs_data *tncs, u8 *pos);
19 | char * tncs_if_tnccs_start(struct tncs_data *tncs);
20 | char * tncs_if_tnccs_end(void);
21 |
22 | enum tncs_process_res {
23 | TNCCS_PROCESS_ERROR = -1,
24 | TNCCS_PROCESS_OK_NO_RECOMMENDATION = 0,
25 | TNCCS_RECOMMENDATION_ERROR,
26 | TNCCS_RECOMMENDATION_ALLOW,
27 | TNCCS_RECOMMENDATION_NONE,
28 | TNCCS_RECOMMENDATION_ISOLATE,
29 | TNCCS_RECOMMENDATION_NO_ACCESS,
30 | TNCCS_RECOMMENDATION_NO_RECOMMENDATION
31 | };
32 |
33 | enum tncs_process_res tncs_process_if_tnccs(struct tncs_data *tncs,
34 | const u8 *msg, size_t len);
35 |
36 | int tncs_global_init(void);
37 | void tncs_global_deinit(void);
38 |
39 | struct wpabuf * tncs_build_soh_request(void);
40 | struct wpabuf * tncs_process_soh(const u8 *soh_tlv, size_t soh_tlv_len,
41 | int *failure);
42 |
43 | #endif /* TNCS_H */
44 |
--------------------------------------------------------------------------------
/src/fst/fst_ctrl_iface.h:
--------------------------------------------------------------------------------
1 | /*
2 | * FST module - internal Control interface definitions
3 | * Copyright (c) 2014, Qualcomm Atheros, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef FST_CTRL_IFACE_H
10 | #define FST_CTRL_IFACE_H
11 |
12 | #include "fst/fst_ctrl_aux.h"
13 |
14 | #ifdef CONFIG_FST
15 |
16 | /* receiver */
17 | int fst_ctrl_iface_mb_info(const u8 *addr, char *buf, size_t buflen);
18 |
19 | int fst_ctrl_iface_receive(const char *txtaddr, char *buf, size_t buflen);
20 |
21 | extern const struct fst_ctrl *fst_ctrl_cli;
22 |
23 | #else /* CONFIG_FST */
24 |
25 | static inline int
26 | fst_ctrl_iface_mb_info(const u8 *addr, char *buf, size_t buflen)
27 | {
28 | return 0;
29 | }
30 |
31 | #endif /* CONFIG_FST */
32 |
33 | int fst_read_next_int_param(const char *params, Boolean *valid, char **endp);
34 | int fst_read_next_text_param(const char *params, char *buf, size_t buflen,
35 | char **endp);
36 | int fst_read_peer_addr(const char *mac, u8 *peer_addr);
37 |
38 | struct fst_iface_cfg;
39 |
40 | int fst_parse_attach_command(const char *cmd, char *ifname, size_t ifname_size,
41 | struct fst_iface_cfg *cfg);
42 | int fst_parse_detach_command(const char *cmd, char *ifname, size_t ifname_size);
43 | int fst_iface_detach(const char *ifname);
44 |
45 | #endif /* CTRL_IFACE_FST_H */
46 |
--------------------------------------------------------------------------------
/src/ap/mbo_ap.h:
--------------------------------------------------------------------------------
1 | /*
2 | * MBO related functions and structures
3 | * Copyright (c) 2016, Qualcomm Atheros, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef MBO_AP_H
10 | #define MBO_AP_H
11 |
12 | struct hostapd_data;
13 | struct sta_info;
14 | struct ieee802_11_elems;
15 |
16 | #ifdef CONFIG_MBO
17 |
18 | void mbo_ap_check_sta_assoc(struct hostapd_data *hapd, struct sta_info *sta,
19 | struct ieee802_11_elems *elems);
20 | int mbo_ap_get_info(struct sta_info *sta, char *buf, size_t buflen);
21 | void mbo_ap_wnm_notification_req(struct hostapd_data *hapd, const u8 *addr,
22 | const u8 *buf, size_t len);
23 | void mbo_ap_sta_free(struct sta_info *sta);
24 |
25 | #else /* CONFIG_MBO */
26 |
27 | static inline void mbo_ap_check_sta_assoc(struct hostapd_data *hapd,
28 | struct sta_info *sta,
29 | struct ieee802_11_elems *elems)
30 | {
31 | }
32 |
33 | static inline int mbo_ap_get_info(struct sta_info *sta, char *buf,
34 | size_t buflen)
35 | {
36 | return 0;
37 | }
38 |
39 | static inline void mbo_ap_wnm_notification_req(struct hostapd_data *hapd,
40 | const u8 *addr,
41 | const u8 *buf, size_t len)
42 | {
43 | }
44 |
45 | static inline void mbo_ap_sta_free(struct sta_info *sta)
46 | {
47 | }
48 |
49 | #endif /* CONFIG_MBO */
50 |
51 | #endif /* MBO_AP_H */
52 |
--------------------------------------------------------------------------------
/src/ap/wpa_auth_kay.h:
--------------------------------------------------------------------------------
1 | /*
2 | * IEEE 802.1X-2010 KaY Interface
3 | * Copyright (c) 2019, The Linux Foundation
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef WPA_AUTH_KAY_H
10 | #define WPA_AUTH_KAY_H
11 |
12 | #ifdef CONFIG_MACSEC
13 |
14 | int ieee802_1x_alloc_kay_sm_hapd(struct hostapd_data *hapd,
15 | struct sta_info *sta);
16 | void * ieee802_1x_notify_create_actor_hapd(struct hostapd_data *hapd,
17 | struct sta_info *sta);
18 | void ieee802_1x_dealloc_kay_sm_hapd(struct hostapd_data *hapd);
19 |
20 | void * ieee802_1x_create_preshared_mka_hapd(struct hostapd_data *hapd,
21 | struct sta_info *sta);
22 |
23 | #else /* CONFIG_MACSEC */
24 |
25 | static inline int ieee802_1x_alloc_kay_sm_hapd(struct hostapd_data *hapd,
26 | struct sta_info *sta)
27 | {
28 | return 0;
29 | }
30 |
31 | static inline void *
32 | ieee802_1x_notify_create_actor_hapd(struct hostapd_data *hapd,
33 | struct sta_info *sta)
34 | {
35 | return NULL;
36 | }
37 |
38 | static inline void ieee802_1x_dealloc_kay_sm_hapd(struct hostapd_data *hapd)
39 | {
40 | }
41 |
42 | static inline void *
43 | ieee802_1x_create_preshared_mka_hapd(struct hostapd_data *hapd,
44 | struct sta_info *sta)
45 | {
46 | return NULL;
47 | }
48 |
49 | #endif /* CONFIG_MACSEC */
50 |
51 | #endif /* WPA_AUTH_KAY_H */
52 |
--------------------------------------------------------------------------------
/src/ap/beacon.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd / IEEE 802.11 Management: Beacon and Probe Request/Response
3 | * Copyright (c) 2002-2004, Instant802 Networks, Inc.
4 | * Copyright (c) 2005-2006, Devicescape Software, Inc.
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #ifndef BEACON_H
11 | #define BEACON_H
12 |
13 | struct ieee80211_mgmt;
14 |
15 | void handle_probe_req(struct hostapd_data *hapd,
16 | const struct ieee80211_mgmt *mgmt, size_t len,
17 | int ssi_signal);
18 | int ieee802_11_set_beacon(struct hostapd_data *hapd);
19 | int ieee802_11_set_beacons(struct hostapd_iface *iface);
20 | int ieee802_11_update_beacons(struct hostapd_iface *iface);
21 | int ieee802_11_build_ap_params(struct hostapd_data *hapd,
22 | struct wpa_driver_ap_params *params);
23 | void ieee802_11_free_ap_params(struct wpa_driver_ap_params *params);
24 | void sta_track_add(struct hostapd_iface *iface, const u8 *addr, int ssi_signal);
25 | void sta_track_del(struct hostapd_sta_info *info);
26 | void sta_track_expire(struct hostapd_iface *iface, int force);
27 | struct hostapd_data *
28 | sta_track_seen_on(struct hostapd_iface *iface, const u8 *addr,
29 | const char *ifname);
30 | void sta_track_claim_taxonomy_info(struct hostapd_iface *iface, const u8 *addr,
31 | struct wpabuf **probe_ie_taxonomy);
32 |
33 | #endif /* BEACON_H */
34 |
--------------------------------------------------------------------------------
/src/common/gas_server.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Generic advertisement service (GAS) server
3 | * Copyright (c) 2017, Qualcomm Atheros, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef GAS_SERVER_H
10 | #define GAS_SERVER_H
11 |
12 | #ifdef CONFIG_GAS_SERVER
13 |
14 | struct gas_server;
15 |
16 | struct gas_server * gas_server_init(void *ctx,
17 | void (*tx)(void *ctx, int freq,
18 | const u8 *da,
19 | struct wpabuf *buf,
20 | unsigned int wait_time));
21 | void gas_server_deinit(struct gas_server *gas);
22 | int gas_server_register(struct gas_server *gas,
23 | const u8 *adv_proto_id, u8 adv_proto_id_len,
24 | struct wpabuf *
25 | (*req_cb)(void *ctx, const u8 *sa,
26 | const u8 *query, size_t query_len),
27 | void (*status_cb)(void *ctx, struct wpabuf *resp,
28 | int ok),
29 | void *ctx);
30 | int gas_server_rx(struct gas_server *gas, const u8 *da, const u8 *sa,
31 | const u8 *bssid, u8 categ, const u8 *data, size_t len,
32 | int freq);
33 | void gas_server_tx_status(struct gas_server *gas, const u8 *dst, const u8 *data,
34 | size_t data_len, int ack);
35 |
36 | #else /* CONFIG_GAS_SERVER */
37 |
38 | static inline void gas_server_deinit(struct gas_server *gas)
39 | {
40 | }
41 |
42 | #endif /* CONFIG_GAS_SERVER */
43 |
44 | #endif /* GAS_SERVER_H */
45 |
--------------------------------------------------------------------------------
/hs20/client/devdetail.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 13
8 |
9 |
10 | 21
11 | MS-CHAP-V2
12 |
13 |
14 | 18
15 |
16 |
17 | 23
18 |
19 |
20 | 50
21 |
22 |
23 | false
24 | 020102030405
25 | 310026000000000
26 | imei:490123456789012
27 | http://localhost:12345/
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 | 0
38 | 0
39 | 0
40 |
41 | MobilePhone
42 | Manufacturer
43 | 1.0
44 | 1.0
45 | 1.0
46 | false
47 |
48 |
--------------------------------------------------------------------------------
/wpa_supplicant/wpa_gui-qt4/signalbar.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_gui - SignalBar class
3 | * Copyright (c) 2011, Kel Modderman
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #include
10 | #include
11 |
12 | #include "signalbar.h"
13 |
14 |
15 | SignalBar::SignalBar(QObject *parent)
16 | : QStyledItemDelegate(parent)
17 | {
18 | }
19 |
20 |
21 | SignalBar::~SignalBar()
22 | {
23 | }
24 |
25 |
26 | void SignalBar::paint(QPainter *painter,
27 | const QStyleOptionViewItem &option,
28 | const QModelIndex &index) const
29 | {
30 | QStyleOptionProgressBar opts;
31 | int signal;
32 |
33 | if (index.column() != 3) {
34 | QStyledItemDelegate::paint(painter, option, index);
35 | return;
36 | }
37 |
38 | if (index.data().toInt() > 0)
39 | signal = 0 - (256 - index.data().toInt());
40 | else
41 | signal = index.data().toInt();
42 |
43 | opts.minimum = -95;
44 | opts.maximum = -35;
45 | if (signal < opts.minimum)
46 | opts.progress = opts.minimum;
47 | else if (signal > opts.maximum)
48 | opts.progress = opts.maximum;
49 | else
50 | opts.progress = signal;
51 |
52 | opts.text = QString::number(signal) + " dBm";
53 | opts.textVisible = true;
54 | opts.rect = option.rect;
55 |
56 | QApplication::style()->drawControl(QStyle::CE_ProgressBar,
57 | &opts, painter);
58 | }
59 |
--------------------------------------------------------------------------------
/hs20/server/Makefile:
--------------------------------------------------------------------------------
1 | all: hs20_spp_server
2 |
3 | ifndef CC
4 | CC=gcc
5 | endif
6 |
7 | ifndef LDO
8 | LDO=$(CC)
9 | endif
10 |
11 | ifndef CFLAGS
12 | CFLAGS = -MMD -O2 -Wall -g
13 | endif
14 |
15 | CFLAGS += -I../../src
16 | CFLAGS += -I../../src/utils
17 | CFLAGS += -I../../src/crypto
18 |
19 | LIBS += -lsqlite3
20 |
21 | # Using glibc < 2.17 requires -lrt for clock_gettime()
22 | LIBS += -lrt
23 |
24 | ifndef CONFIG_NO_GITVER
25 | # Add VERSION_STR postfix for builds from a git repository
26 | ifeq ($(wildcard ../../.git),../../.git)
27 | GITVER := $(shell git describe --dirty=+)
28 | ifneq ($(GITVER),)
29 | CFLAGS += -DGIT_VERSION_STR_POSTFIX=\"-$(GITVER)\"
30 | endif
31 | endif
32 | endif
33 |
34 | OBJS=spp_server.o
35 | OBJS += hs20_spp_server.o
36 | OBJS += ../../src/utils/xml-utils.o
37 | OBJS += ../../src/utils/base64.o
38 | OBJS += ../../src/utils/common.o
39 | OBJS += ../../src/utils/os_unix.o
40 | OBJS += ../../src/utils/wpa_debug.o
41 | OBJS += ../../src/crypto/md5-internal.o
42 | CFLAGS += $(shell xml2-config --cflags)
43 | LIBS += $(shell xml2-config --libs)
44 | OBJS += ../../src/utils/xml_libxml2.o
45 |
46 | hs20_spp_server: $(OBJS)
47 | $(LDO) $(LDFLAGS) -o hs20_spp_server $(OBJS) $(LIBS)
48 |
49 | clean:
50 | rm -f core *~ *.o *.d hs20_spp_server
51 | rm -f ../../src/utils/*.o
52 | rm -f ../../src/utils/*.d
53 | rm -f ../../src/crypto/*.o
54 | rm -f ../../src/crypto/*.d
55 |
56 | -include $(OBJS:%.o=%.d)
57 |
--------------------------------------------------------------------------------
/wpa_supplicant/dpp_supplicant.h:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_supplicant - DPP
3 | * Copyright (c) 2017, Qualcomm Atheros, Inc.
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef DPP_SUPPLICANT_H
10 | #define DPP_SUPPLICANT_H
11 |
12 | int wpas_dpp_qr_code(struct wpa_supplicant *wpa_s, const char *cmd);
13 | int wpas_dpp_auth_init(struct wpa_supplicant *wpa_s, const char *cmd);
14 | int wpas_dpp_listen(struct wpa_supplicant *wpa_s, const char *cmd);
15 | void wpas_dpp_listen_stop(struct wpa_supplicant *wpa_s);
16 | void wpas_dpp_cancel_remain_on_channel_cb(struct wpa_supplicant *wpa_s,
17 | unsigned int freq);
18 | void wpas_dpp_rx_action(struct wpa_supplicant *wpa_s, const u8 *src,
19 | const u8 *buf, size_t len, unsigned int freq);
20 | int wpas_dpp_configurator_sign(struct wpa_supplicant *wpa_s, const char *cmd);
21 | int wpas_dpp_pkex_add(struct wpa_supplicant *wpa_s, const char *cmd);
22 | int wpas_dpp_pkex_remove(struct wpa_supplicant *wpa_s, const char *id);
23 | void wpas_dpp_stop(struct wpa_supplicant *wpa_s);
24 | int wpas_dpp_init(struct wpa_supplicant *wpa_s);
25 | void wpas_dpp_deinit(struct wpa_supplicant *wpa_s);
26 | int wpas_dpp_check_connect(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
27 | struct wpa_bss *bss);
28 | int wpas_dpp_controller_start(struct wpa_supplicant *wpa_s, const char *cmd);
29 |
30 | #endif /* DPP_SUPPLICANT_H */
31 |
--------------------------------------------------------------------------------
/wpa_supplicant/wpa_supplicant_conf.mk:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright (C) 2010 The Android Open Source Project
3 | #
4 | # This software may be distributed under the terms of the BSD license.
5 | # See README for more details.
6 | #
7 |
8 | # Include this makefile to generate your hardware specific wpa_supplicant.conf
9 | # Requires: WIFI_DRIVER_SOCKET_IFACE
10 |
11 | LOCAL_PATH := $(call my-dir)
12 |
13 | ########################
14 | include $(CLEAR_VARS)
15 |
16 | LOCAL_MODULE := wpa_supplicant.conf
17 | LOCAL_MODULE_CLASS := ETC
18 | LOCAL_MODULE_TAGS := optional
19 | LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/wifi
20 |
21 | include $(BUILD_SYSTEM)/base_rules.mk
22 |
23 | WPA_SUPPLICANT_CONF_TEMPLATE := $(LOCAL_PATH)/wpa_supplicant_template.conf
24 | WPA_SUPPLICANT_CONF_SCRIPT := $(LOCAL_PATH)/wpa_supplicant_conf.sh
25 | $(LOCAL_BUILT_MODULE): PRIVATE_WIFI_DRIVER_SOCKET_IFACE := $(WIFI_DRIVER_SOCKET_IFACE)
26 | $(LOCAL_BUILT_MODULE): PRIVATE_WPA_SUPPLICANT_CONF_TEMPLATE := $(WPA_SUPPLICANT_CONF_TEMPLATE)
27 | $(LOCAL_BUILT_MODULE): PRIVATE_WPA_SUPPLICANT_CONF_SCRIPT := $(WPA_SUPPLICANT_CONF_SCRIPT)
28 | $(LOCAL_BUILT_MODULE) : $(WPA_SUPPLICANT_CONF_TEMPLATE) $(WPA_SUPPLICANT_CONF_SCRIPT)
29 | @echo Target wpa_supplicant.conf: $@
30 | @mkdir -p $(dir $@)
31 | $(hide) WIFI_DRIVER_SOCKET_IFACE="$(PRIVATE_WIFI_DRIVER_SOCKET_IFACE)" \
32 | bash $(PRIVATE_WPA_SUPPLICANT_CONF_SCRIPT) $(PRIVATE_WPA_SUPPLICANT_CONF_TEMPLATE) > $@
33 |
34 | ########################
35 |
--------------------------------------------------------------------------------
/src/ap/gas_query_ap.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Generic advertisement service (GAS) query
3 | * Copyright (c) 2009, Atheros Communications
4 | * Copyright (c) 2011-2017, Qualcomm Atheros
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #ifndef GAS_QUERY_AP_H
11 | #define GAS_QUERY_AP_H
12 |
13 | struct gas_query_ap;
14 |
15 | struct gas_query_ap * gas_query_ap_init(struct hostapd_data *hapd,
16 | void *msg_ctx);
17 | void gas_query_ap_deinit(struct gas_query_ap *gas);
18 | int gas_query_ap_rx(struct gas_query_ap *gas, const u8 *sa, u8 categ,
19 | const u8 *data, size_t len, int freq);
20 |
21 | /**
22 | * enum gas_query_ap_result - GAS query result
23 | */
24 | enum gas_query_ap_result {
25 | GAS_QUERY_AP_SUCCESS,
26 | GAS_QUERY_AP_FAILURE,
27 | GAS_QUERY_AP_TIMEOUT,
28 | GAS_QUERY_AP_PEER_ERROR,
29 | GAS_QUERY_AP_INTERNAL_ERROR,
30 | GAS_QUERY_AP_DELETED_AT_DEINIT
31 | };
32 |
33 | int gas_query_ap_req(struct gas_query_ap *gas, const u8 *dst, int freq,
34 | struct wpabuf *req,
35 | void (*cb)(void *ctx, const u8 *dst, u8 dialog_token,
36 | enum gas_query_ap_result result,
37 | const struct wpabuf *adv_proto,
38 | const struct wpabuf *resp, u16 status_code),
39 | void *ctx);
40 | void gas_query_ap_tx_status(struct gas_query_ap *gas, const u8 *dst,
41 | const u8 *data, size_t data_len, int ok);
42 |
43 | #endif /* GAS_QUERY_AP_H */
44 |
--------------------------------------------------------------------------------
/hs20/server/www/add-free.php:
--------------------------------------------------------------------------------
1 | query("SELECT rowid,* FROM sessions WHERE id='$id'")->fetch();
18 | if ($row == false) {
19 | die("Session not found");
20 | }
21 |
22 | $uri = $row['redirect_uri'];
23 | $rowid = $row['rowid'];
24 | $realm = $row['realm'];
25 |
26 | $row = $db->query("SELECT value FROM osu_config WHERE realm='$realm' AND field='free_account'")->fetch();
27 | if (!$row || strlen($row['value']) == 0) {
28 | die("Free account disabled");
29 | }
30 |
31 | $user = $row['value'];
32 |
33 | $row = $db->query("SELECT password FROM users WHERE identity='$user' AND realm='$realm'")->fetch();
34 | if (!$row)
35 | die("Free account not found");
36 |
37 | $pw = $row['password'];
38 |
39 | if (!$db->exec("UPDATE sessions SET user='$user', password='$pw', realm='$realm', machine_managed='1' WHERE rowid=$rowid")) {
40 | die("Failed to update session database");
41 | }
42 |
43 | $db->exec("INSERT INTO eventlog(user,realm,sessionid,timestamp,notes) " .
44 | "VALUES ('$user', '$realm', '$id', " .
45 | "strftime('%Y-%m-%d %H:%M:%f','now'), " .
46 | "'completed user input response for a new PPS MO')");
47 |
48 | header("Location: $uri", true, 302);
49 |
50 | ?>
51 |
--------------------------------------------------------------------------------
/src/common/wpa_helpers.h:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_supplicant ctrl_iface helpers
3 | * Copyright (c) 2010-2011, Atheros Communications, Inc.
4 | * Copyright (c) 2011-2012, Qualcomm Atheros, Inc.
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #ifndef WPA_HELPERS_H
11 | #define WPA_HELPERS_H
12 |
13 | int wpa_command(const char *ifname, const char *cmd);
14 | int wpa_command_resp(const char *ifname, const char *cmd,
15 | char *resp, size_t resp_size);
16 | int get_wpa_status(const char *ifname, const char *field, char *obuf,
17 | size_t obuf_size);
18 |
19 | struct wpa_ctrl * open_wpa_mon(const char *ifname);
20 | int wait_ip_addr(const char *ifname, int timeout);
21 | int get_wpa_cli_event(struct wpa_ctrl *mon,
22 | const char *event, char *buf, size_t buf_size);
23 | int get_wpa_cli_event2(struct wpa_ctrl *mon,
24 | const char *event, const char *event2,
25 | char *buf, size_t buf_size);
26 |
27 | int add_network(const char *ifname);
28 | int set_network(const char *ifname, int id, const char *field,
29 | const char *value);
30 | int set_network_quoted(const char *ifname, int id, const char *field,
31 | const char *value);
32 | int add_cred(const char *ifname);
33 | int set_cred(const char *ifname, int id, const char *field, const char *value);
34 | int set_cred_quoted(const char *ifname, int id, const char *field,
35 | const char *value);
36 |
37 | #endif /* WPA_HELPERS_H */
38 |
--------------------------------------------------------------------------------
/src/common/ctrl_iface_common.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Common hostapd/wpa_supplicant ctrl iface code.
3 | * Copyright (c) 2002-2013, Jouni Malinen
4 | * Copyright (c) 2015, Qualcomm Atheros, Inc.
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 | #ifndef CONTROL_IFACE_COMMON_H
10 | #define CONTROL_IFACE_COMMON_H
11 |
12 | #include "utils/list.h"
13 |
14 | /* Events enable bits (wpa_ctrl_dst::events) */
15 | #define WPA_EVENT_RX_PROBE_REQUEST BIT(0)
16 |
17 | /**
18 | * struct wpa_ctrl_dst - Data structure of control interface monitors
19 | *
20 | * This structure is used to store information about registered control
21 | * interface monitors into struct wpa_supplicant.
22 | */
23 | struct wpa_ctrl_dst {
24 | struct dl_list list;
25 | struct sockaddr_storage addr;
26 | socklen_t addrlen;
27 | int debug_level;
28 | int errors;
29 | u32 events; /* WPA_EVENT_* bitmap */
30 | };
31 |
32 | void sockaddr_print(int level, const char *msg, struct sockaddr_storage *sock,
33 | socklen_t socklen);
34 |
35 | int ctrl_iface_attach(struct dl_list *ctrl_dst, struct sockaddr_storage *from,
36 | socklen_t fromlen, const char *input);
37 | int ctrl_iface_detach(struct dl_list *ctrl_dst, struct sockaddr_storage *from,
38 | socklen_t fromlen);
39 | int ctrl_iface_level(struct dl_list *ctrl_dst, struct sockaddr_storage *from,
40 | socklen_t fromlen, const char *level);
41 |
42 | #endif /* CONTROL_IFACE_COMMON_H */
43 |
--------------------------------------------------------------------------------
/src/ap/airtime_policy.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Airtime policy configuration
3 | * Copyright (c) 2018-2019, Toke Høiland-Jørgensen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef AIRTIME_POLICY_H
10 | #define AIRTIME_POLICY_H
11 |
12 | struct hostapd_iface;
13 |
14 | #ifdef CONFIG_AIRTIME_POLICY
15 |
16 | #define AIRTIME_DEFAULT_UPDATE_INTERVAL 200 /* ms */
17 | #define AIRTIME_BACKLOG_EXPIRY_FACTOR 2500 /* 2.5 intervals + convert to usec */
18 |
19 | /* scale quantum so this becomes the effective quantum after applying the max
20 | * weight, but never go below min or above max */
21 | #define AIRTIME_QUANTUM_MIN 8 /* usec */
22 | #define AIRTIME_QUANTUM_MAX 256 /* usec */
23 | #define AIRTIME_QUANTUM_TARGET 1024 /* usec */
24 |
25 | int airtime_policy_new_sta(struct hostapd_data *hapd, struct sta_info *sta);
26 | int airtime_policy_update_init(struct hostapd_iface *iface);
27 | void airtime_policy_update_deinit(struct hostapd_iface *iface);
28 |
29 | #else /* CONFIG_AIRTIME_POLICY */
30 |
31 | static inline int airtime_policy_new_sta(struct hostapd_data *hapd,
32 | struct sta_info *sta)
33 | {
34 | return -1;
35 | }
36 |
37 | static inline int airtime_policy_update_init(struct hostapd_iface *iface)
38 | {
39 | return -1;
40 | }
41 |
42 | static inline void airtime_policy_update_deinit(struct hostapd_iface *iface)
43 | {
44 | }
45 |
46 | #endif /* CONFIG_AIRTIME_POLICY */
47 |
48 | #endif /* AIRTIME_POLICY_H */
49 |
--------------------------------------------------------------------------------
/src/ap/preauth_auth.h:
--------------------------------------------------------------------------------
1 | /*
2 | * hostapd - Authenticator for IEEE 802.11i RSN pre-authentication
3 | * Copyright (c) 2004-2005, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef PREAUTH_H
10 | #define PREAUTH_H
11 |
12 | #ifdef CONFIG_RSN_PREAUTH
13 |
14 | int rsn_preauth_iface_init(struct hostapd_data *hapd);
15 | void rsn_preauth_iface_deinit(struct hostapd_data *hapd);
16 | void rsn_preauth_finished(struct hostapd_data *hapd, struct sta_info *sta,
17 | int success);
18 | void rsn_preauth_send(struct hostapd_data *hapd, struct sta_info *sta,
19 | u8 *buf, size_t len);
20 | void rsn_preauth_free_station(struct hostapd_data *hapd, struct sta_info *sta);
21 |
22 | #else /* CONFIG_RSN_PREAUTH */
23 |
24 | static inline int rsn_preauth_iface_init(struct hostapd_data *hapd)
25 | {
26 | return 0;
27 | }
28 |
29 | static inline void rsn_preauth_iface_deinit(struct hostapd_data *hapd)
30 | {
31 | }
32 |
33 | static inline void rsn_preauth_finished(struct hostapd_data *hapd,
34 | struct sta_info *sta,
35 | int success)
36 | {
37 | }
38 |
39 | static inline void rsn_preauth_send(struct hostapd_data *hapd,
40 | struct sta_info *sta,
41 | u8 *buf, size_t len)
42 | {
43 | }
44 |
45 | static inline void rsn_preauth_free_station(struct hostapd_data *hapd,
46 | struct sta_info *sta)
47 | {
48 | }
49 |
50 | #endif /* CONFIG_RSN_PREAUTH */
51 |
52 | #endif /* PREAUTH_H */
53 |
--------------------------------------------------------------------------------
/wpa_supplicant/interworking.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Interworking (IEEE 802.11u)
3 | * Copyright (c) 2011-2012, Qualcomm Atheros
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef INTERWORKING_H
10 | #define INTERWORKING_H
11 |
12 | enum gas_query_result;
13 |
14 | int anqp_send_req(struct wpa_supplicant *wpa_s, const u8 *dst,
15 | u16 info_ids[], size_t num_ids, u32 subtypes,
16 | u32 mbo_subtypes);
17 | void anqp_resp_cb(void *ctx, const u8 *dst, u8 dialog_token,
18 | enum gas_query_result result,
19 | const struct wpabuf *adv_proto,
20 | const struct wpabuf *resp, u16 status_code);
21 | int gas_send_request(struct wpa_supplicant *wpa_s, const u8 *dst,
22 | const struct wpabuf *adv_proto,
23 | const struct wpabuf *query);
24 | int interworking_fetch_anqp(struct wpa_supplicant *wpa_s);
25 | void interworking_stop_fetch_anqp(struct wpa_supplicant *wpa_s);
26 | int interworking_select(struct wpa_supplicant *wpa_s, int auto_select,
27 | int *freqs);
28 | int interworking_connect(struct wpa_supplicant *wpa_s, struct wpa_bss *bss,
29 | int only_add);
30 | void interworking_start_fetch_anqp(struct wpa_supplicant *wpa_s);
31 | int interworking_home_sp_cred(struct wpa_supplicant *wpa_s,
32 | struct wpa_cred *cred,
33 | struct wpabuf *domain_names);
34 | int domain_name_list_contains(struct wpabuf *domain_names,
35 | const char *domain, int exact_match);
36 |
37 | #endif /* INTERWORKING_H */
38 |
--------------------------------------------------------------------------------
/wpa_supplicant/config_none.c:
--------------------------------------------------------------------------------
1 | /*
2 | * WPA Supplicant / Configuration backend: empty starting point
3 | * Copyright (c) 2003-2005, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | *
8 | * This file implements dummy example of a configuration backend. None of the
9 | * functions are actually implemented so this can be used as a simple
10 | * compilation test or a starting point for a new configuration backend.
11 | */
12 |
13 | #include "includes.h"
14 |
15 | #include "common.h"
16 | #include "config.h"
17 | #include "base64.h"
18 |
19 |
20 | struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp)
21 | {
22 | struct wpa_config *config;
23 |
24 | if (name == NULL)
25 | return NULL;
26 | if (cfgp)
27 | config = cfgp;
28 | else
29 | config = wpa_config_alloc_empty(NULL, NULL);
30 | if (config == NULL)
31 | return NULL;
32 | /* TODO: fill in configuration data */
33 | return config;
34 | }
35 |
36 |
37 | int wpa_config_write(const char *name, struct wpa_config *config)
38 | {
39 | struct wpa_ssid *ssid;
40 | struct wpa_config_blob *blob;
41 |
42 | wpa_printf(MSG_DEBUG, "Writing configuration file '%s'", name);
43 |
44 | /* TODO: write global config parameters */
45 |
46 |
47 | for (ssid = config->ssid; ssid; ssid = ssid->next) {
48 | /* TODO: write networks */
49 | }
50 |
51 | for (blob = config->blobs; blob; blob = blob->next) {
52 | /* TODO: write blobs */
53 | }
54 |
55 | return 0;
56 | }
57 |
--------------------------------------------------------------------------------
/wpa_supplicant/binder/binder.h:
--------------------------------------------------------------------------------
1 | /*
2 | * binder interface for wpa_supplicant daemon
3 | * Copyright (c) 2004-2016, Jouni Malinen
4 | * Copyright (c) 2004-2016, Roshan Pius
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #ifndef WPA_SUPPLICANT_BINDER_BINDER_H
11 | #define WPA_SUPPLICANT_BINDER_BINDER_H
12 |
13 | #ifdef _cplusplus
14 | extern "C" {
15 | #endif /* _cplusplus */
16 |
17 | /**
18 | * This is the binder RPC interface entry point to the wpa_supplicant core.
19 | * This initializes the binder driver & BinderManager instance and then forwards
20 | * all the notifcations from the supplicant core to the BinderManager.
21 | */
22 | struct wpas_binder_priv;
23 | struct wpa_global;
24 |
25 | struct wpas_binder_priv *wpas_binder_init(struct wpa_global *global);
26 | void wpas_binder_deinit(struct wpas_binder_priv *priv);
27 |
28 | #ifdef CONFIG_CTRL_IFACE_BINDER
29 | int wpas_binder_register_interface(struct wpa_supplicant *wpa_s);
30 | int wpas_binder_unregister_interface(struct wpa_supplicant *wpa_s);
31 | #else /* CONFIG_CTRL_IFACE_BINDER */
32 | static inline int wpas_binder_register_interface(struct wpa_supplicant *wpa_s)
33 | {
34 | return 0;
35 | }
36 | static inline int wpas_binder_unregister_interface(struct wpa_supplicant *wpa_s)
37 | {
38 | return 0;
39 | }
40 | #endif /* CONFIG_CTRL_IFACE_BINDER */
41 |
42 | #ifdef _cplusplus
43 | }
44 | #endif /* _cplusplus */
45 |
46 | #endif /* WPA_SUPPLICANT_BINDER_BINDER_H */
47 |
--------------------------------------------------------------------------------
/src/common/cli.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Common hostapd/wpa_supplicant command line interface functionality
3 | * Copyright (c) 2004-2016, Jouni Malinen
4 | *
5 | * This software may be distributed under the terms of the BSD license.
6 | * See README for more details.
7 | */
8 |
9 | #ifndef CLI_H
10 | #define CLI_H
11 |
12 | #include "utils/list.h"
13 |
14 | extern const char *const cli_license;
15 | extern const char *const cli_full_license;
16 |
17 | struct cli_txt_entry {
18 | struct dl_list list;
19 | char *txt;
20 | };
21 |
22 | void cli_txt_list_free(struct cli_txt_entry *e);
23 | void cli_txt_list_flush(struct dl_list *list);
24 |
25 | struct cli_txt_entry *
26 | cli_txt_list_get(struct dl_list *txt_list, const char *txt);
27 |
28 | void cli_txt_list_del(struct dl_list *txt_list, const char *txt);
29 | void cli_txt_list_del_addr(struct dl_list *txt_list, const char *txt);
30 | void cli_txt_list_del_word(struct dl_list *txt_list, const char *txt,
31 | int separator);
32 |
33 | int cli_txt_list_add(struct dl_list *txt_list, const char *txt);
34 | int cli_txt_list_add_addr(struct dl_list *txt_list, const char *txt);
35 | int cli_txt_list_add_word(struct dl_list *txt_list, const char *txt,
36 | int separator);
37 |
38 | char ** cli_txt_list_array(struct dl_list *txt_list);
39 |
40 | int get_cmd_arg_num(const char *str, int pos);
41 | int write_cmd(char *buf, size_t buflen, const char *cmd, int argc,
42 | char *argv[]);
43 |
44 | #define max_args 10
45 | int tokenize_cmd(char *cmd, char *argv[]);
46 |
47 | #endif /* CLI_H */
48 |
--------------------------------------------------------------------------------
/wpa_supplicant/offchannel.h:
--------------------------------------------------------------------------------
1 | /*
2 | * wpa_supplicant - Off-channel Action frame TX/RX
3 | * Copyright (c) 2009-2010, Atheros Communications
4 | * Copyright (c) 2011, Qualcomm Atheros
5 | *
6 | * This software may be distributed under the terms of the BSD license.
7 | * See README for more details.
8 | */
9 |
10 | #ifndef OFFCHANNEL_H
11 | #define OFFCHANNEL_H
12 |
13 | int offchannel_send_action(struct wpa_supplicant *wpa_s, unsigned int freq,
14 | const u8 *dst, const u8 *src, const u8 *bssid,
15 | const u8 *buf, size_t len, unsigned int wait_time,
16 | void (*tx_cb)(struct wpa_supplicant *wpa_s,
17 | unsigned int freq, const u8 *dst,
18 | const u8 *src, const u8 *bssid,
19 | const u8 *data, size_t data_len,
20 | enum offchannel_send_action_result
21 | result),
22 | int no_cck);
23 | void offchannel_send_action_done(struct wpa_supplicant *wpa_s);
24 | void offchannel_remain_on_channel_cb(struct wpa_supplicant *wpa_s,
25 | unsigned int freq, unsigned int duration);
26 | void offchannel_cancel_remain_on_channel_cb(struct wpa_supplicant *wpa_s,
27 | unsigned int freq);
28 | void offchannel_deinit(struct wpa_supplicant *wpa_s);
29 | void offchannel_send_action_tx_status(
30 | struct wpa_supplicant *wpa_s, const u8 *dst, const u8 *data,
31 | size_t data_len, enum offchannel_send_action_result result);
32 | const void * offchannel_pending_action_tx(struct wpa_supplicant *wpa_s);
33 | void offchannel_clear_pending_action_tx(struct wpa_supplicant *wpa_s);
34 |
35 | #endif /* OFFCHANNEL_H */
36 |
--------------------------------------------------------------------------------