[wpa] Add support for hostapd/wpa_supplicant when WITHOUT_CRYPT=YES

is enabled.

This builds wpa_supplicant / hostpad using internal encryption routines
rather than using libcrypt.

This has been supported in wpa for years now, however since we use
local makefiles for this, we bitrotted dependencies and configuration
options.

Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D27958
This commit is contained in:
Adrian Chadd 2021-01-04 12:39:53 -08:00
parent 0659df6fad
commit 7c5a624afa
4 changed files with 34 additions and 4 deletions
share/mk
usr.sbin/wpa
Makefile.crypto
hostapd
wpa_supplicant

@ -438,7 +438,6 @@ MK_LDNS:= no
MK_PKGBOOTSTRAP:= no
MK_SVN:= no
MK_SVNLITE:= no
MK_WIRELESS:= no
.endif
.if ${MK_LDNS} == "no"

@ -16,9 +16,13 @@ CONFIG_INTERNAL_RC4=y
CONFIG_INTERNAL_SHA1=y
NEED_SHA256=y
CONFIG_INTERNAL_SHA256=y
NEED_SHA384=y
CONFIG_INTERNAL_SHA384=y
NEED_SHA512=y
CONFIG_INTERNAL_SHA512=y
CONFIG_INTERNAL_TLS=y
NEED_DH_GROUPS=y
CONFIG_INTERNAL_DH5=y
CONFIG_INTERNAL_DH=y
NEED_AES_ENC=true
NEED_AES_CBC=true
.endif
@ -45,6 +49,7 @@ SRCS+= asn1.c \
tlsv1_client.c \
tlsv1_client_write.c \
tlsv1_client_read.c \
tlsv1_client_ocsp.c \
x509v3.c
NEED_DES=y
NEED_MD4=y
@ -123,14 +128,36 @@ SRCS+= sha256-internal.c sha256-prf.c
.endif
.endif
.if defined(NEED_SHA384)
CFLAGS+=-DCONFIG_SHA384
SRCS+= sha384.c
.if defined(CONFIG_INTERNAL_SHA384)
SRCS+= sha384-internal.c sha384-prf.c
.endif
.endif
.if defined(NEED_SHA512)
CFLAGS+=-DCONFIG_SHA512
SRCS+= sha512.c
.if defined(CONFIG_INTERNAL_SHA512)
SRCS+= sha512-internal.c sha512-prf.c
.endif
.endif
.if defined(NEED_TLS_PRF)
SRCS+= sha1-tlsprf.c
.endif
.if defined(CONFIG_INTERNAL_DH5)
.if defined(NEED_DH_GROUPS)
SRCS+= dh_group5.c
.endif
.endif
.if defined(CONFIG_INTERNAL_DH)
.if defined(NEED_DH_GROUPS)
SRCS+= dh_groups.c
.endif
.if defined(NEED_DH_GROUPS_ALL)
CFLAGS+=-DALL_DH_GROUPS
.endif

@ -163,6 +163,10 @@ SRCS+= eap_server_gtc.c \
eapol_auth_sm.c
TLS_FUNCS=y
# For WPS, EAP modes, etc
NEED_DH_GROUPS=y
NEED_DH_GROUPS_ALL=y
.if !empty(CFLAGS:M*-DCONFIG_WPS)
NEED_SIM_COMMON=y
.endif

@ -14,7 +14,7 @@ PROG= wpa_supplicant
SRCS= base64.c bitfield.c blacklist.c bss.c cli.c common.c \
config.c config_file.c \
ctrl_iface.c ctrl_iface_common.c ctrl_iface_unix.c \
dh_groups.c driver_bsd.c driver_common.c \
driver_bsd.c driver_common.c \
driver_ndis.c driver_wired.c driver_wired_common.c drivers.c \
eap_register.c eloop.c \
events.c gas.c gas_query.c \