Wi-Fi feature to crypto mapping
This page maps Wi-Fi features supported in Zephyr (via the hostap-based wpa_supplicant) to the
underlying MbedTLS crypto primitives. Use it to see which features need bignum, ECDH, TLS, etc.,
and which code paths use Legacy crypto (MbedTLS legacy APIs) vs PSA crypto (Platform
Security Architecture APIs) when CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_MBEDTLS_PSA
is enabled.
The implementation lives in the hostap module: crypto_mbedtls_alt.c (generic crypto) and
tls_mbedtls_alt.c (TLS/EAP). Only the MbedTLS backend is considered here.
Feature set (from hostap Kconfig)
Features are gated by Kconfig. Relevant options include:
CONFIG_WIFI_NM_WPA_SUPPLICANT_WEP— WEP (legacy)CONFIG_WIFI_NM_WPA_SUPPLICANT_WPA3— WPA3-SAE (default on)CONFIG_WIFI_NM_WPA_SUPPLICANT_DPP— Wi-Fi Easy Connect (DPP)CONFIG_WIFI_NM_WPA_SUPPLICANT_WPS— Wi-Fi Protected SetupCONFIG_WIFI_NM_WPA_SUPPLICANT_P2P— P2P / Wi-Fi Direct (implies WPS)CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE— EAP (EAP-TLS, EAP-TTLS-MSCHAPV2, EAP-PEAP-MSCHAPV2, EAP-PEAP-GTC, EAP-PEAP-TLS)
WPA2-PSK and WPA2-PSK-256 are available whenever crypto is not set to CRYPTO_NONE.
Feature → crypto primitives (MbedTLS)
Feature |
Crypto primitives |
Legacy crypto |
PSA crypto |
|---|---|---|---|
WPA3-SAE |
|
|
|
SAE-PK |
Same as WPA3-SAE plus ECDH and EC key operations (certificate-based SAE). |
ECDH/EC key ops (legacy MbedTLS or PSA ECDH depending on config). |
|
DPP (Easy Connect) |
|
|
|
WPA2-PSK / WPA2-PSK-256 |
|
All via mbedtls (PBKDF2, HMAC, AES, CMAC) if PSA disabled. |
PBKDF2, HMAC, AES, OMAC1 implemented via PSA when PSA enabled. |
WEP |
|
Legacy MbedTLS only (no PSA path for WEP in current code). |
N/A (WEP not migrated to PSA). |
WPS |
|
|
|
EAP-TLS / EAP-TTLS / EAP-PEAP |
|
|
|
EAP-PWD |
|
Bignum, DH, EC (if used) via legacy MbedTLS. |
|
EAP-IKEV2 |
|
Legacy cipher, bignum, DH. |
|
Open |
No authentication/encryption. |
N/A |
N/A |
Note
WEP must be explicitly enabled with CONFIG_WIFI_NM_WPA_SUPPLICANT_WEP. It is
deprecated and insecure; use only for legacy networks.
Summary: Legacy vs PSA (MbedTLS backend)
When CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_MBEDTLS_PSA is enabled, the
implementation in crypto_mbedtls_alt.c (and supp_psa_api.h / supp_psa_api.c) splits
as below. Use this table to see which operations use PSA vs Legacy MbedTLS.
Operation |
API |
Used by / notes |
|---|---|---|
Message digests (MD5, SHA1, SHA256, SHA384, SHA512) |
PSA |
|
HMAC (all above hash types) |
PSA |
|
PBKDF2-SHA1 |
PSA |
WPA2-PSK key derivation |
AES (block, CBC, CTR, OMAC1-AES) |
PSA |
Key wrap, CCMP, etc. |
Bignum (crypto_bignum_*) |
Legacy |
SAE, EAP-PWD, EAP-EKE, EAP-IKEV2, WPS; no PSA bignum in hostap |
ECDH / EC key operations |
Legacy |
DPP, SAE-PK, EAP-PWD (EC). May be PSA-backed when
|
TLS/SSL |
Legacy |
EAP-TLS, EAP-TTLS, EAP-PEAP; full stack in |
RSA |
Legacy |
TLS, X.509 |
X.509 / CSR |
Legacy |
Parse and generation |
WEP |
Legacy |
No PSA path |
So: WPA2-PSK and WPA2-PSK-256 use only PSA for their crypto; WPA3-SAE, DPP, SAE-PK, WPS, and Enterprise EAP still rely on legacy bignum, EC, or TLS. See the feature table above for per-feature impact.