[PATCH] wpa_passphrase: Encode non-ascii SSID in hex
Jouni Malinen
j at w1.fi
Sun Nov 20 05:35:24 PST 2022
On Sun, Nov 13, 2022 at 09:37:42AM +0000, Jörn Bethune wrote:
> Issue: wpa_passphrase does not encode non-ascii SSID names.
> wpa_supplicant needs the name to be encoded to identify the
> right configuration entry when connecting.
I'm not sure what you mean here with requiring encoding and why this
change would be needed.
> This is my first contribution to this project.
All this text would go into the commit message and as such, this type of
notes should not be included.
> Current implementation:
>
> $ wpa_passphrase "netwörk" thepassword
> network={
> ssid="netwörk"
> #psk="thepassword"
> psk=30cd9c223d9ba6bf1536b2fd88947c4f21c3b0b4ce680ab502b06d293721e327
> }
>
> The password is correct. But the SSID won't be matched by
> wpa_supplicant.
It does in my tests..
./wpa_passphrase "netwörk" thepassword > /tmp/a.conf
./wpa_supplicant -i wlan0 -c /tmp/a.conf -dd
...
Line: 1 - start of a new network block
ssid - hexdump_ascii(len=8):
6e 65 74 77 c3 b6 72 6b netw__rk
PSK - hexdump(len=32): 30 cd 9c 22 3d 9b a6 bf 15 36 b2 fd 88 94 7c 4f 21 c3 b0 b4 ce 68 0a b5 02 b0 6d 29 37 21 e3 27
Priority group 0
id=0 ssid='netw\xc3\xb6rk'
> Patched implementation:
>
> $ ./wpa_passphrase "netwörk" thepassword
> network={
> #ssid="netwörk"
> ssid=6e657477c3b6726b
That hexdump of the SSID matches the one shows up above without any
wpa_passphrase modification..
> The patched wpa_passphrase includes the human-readable SSID as a
> comment, just like what we already have for the psk parameter. In the
> above example, the "ö" is represented by the two-byte sequence c3b6.
UTF-8 encoded 'ö' ended up getting encoded as c3b6 in the ssid parameter
and wpa_supplicant reads that as-is.
> Signed-off-by : Jörn Bethune <bethune+hostap at posteo dot de>
There should not be space between "Signed-off-by" and ":".
> diff --git a/src/utils/common.c b/src/utils/common.c
> +int is_within_ascii_range(const char *str)
bool is the currently preferred type for boolean values in new code even
thought int is still uses in hostap.git for most cases.
--
Jouni Malinen PGP id EFC895FA
More information about the Hostap
mailing list