Message ID | 20220805182031.651456-1-prestwoj@gmail.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | [1/2] handshake: add support to work around buggy OWE APs | expand |
Context | Check | Description |
---|---|---|
tedd_an/pre-ci_am | success | Success |
prestwoj/iwd-alpine-ci-fetch | success | Fetch PR |
prestwoj/iwd-ci-gitlint | success | GitLint |
prestwoj/iwd-ci-fetch | success | Fetch PR |
prestwoj/iwd-alpine-ci-makedistcheck | success | Make Distcheck |
prestwoj/iwd-alpine-ci-build | success | Build - Configure |
prestwoj/iwd-ci-makedistcheck | success | Make Distcheck |
prestwoj/iwd-ci-build | success | Build - Configure |
prestwoj/iwd-alpine-ci-makecheckvalgrind | success | Make Check w/Valgrind |
prestwoj/iwd-alpine-ci-makecheck | success | Make Check |
prestwoj/iwd-alpine-ci-incremental_build | success | Incremental Build with patches |
prestwoj/iwd-ci-clang | success | clang PASS |
prestwoj/iwd-ci-makecheck | success | Make Check |
prestwoj/iwd-ci-makecheckvalgrind | success | Make Check w/Valgrind |
prestwoj/iwd-ci-incremental_build | success | Incremental Build with patches |
prestwoj/iwd-ci-testrunner | success | test-runner PASS |
diff --git a/src/handshake.c b/src/handshake.c index 734e997c..91b20bab 100644 --- a/src/handshake.c +++ b/src/handshake.c @@ -515,7 +515,8 @@ bool handshake_state_derive_ptk(struct handshake_state *s) s->ptk_complete = false; if (s->akm_suite & IE_RSN_AKM_SUITE_OWE) { - if (s->pmk_len == 32) + /* Work around buggy APs which always use SHA256 for the PTK */ + if (s->pmk_len == 32 || s->retry_owe_workaround) type = L_CHECKSUM_SHA256; else if (s->pmk_len == 48) type = L_CHECKSUM_SHA384; diff --git a/src/handshake.h b/src/handshake.h index 7f597b06..6f48fa34 100644 --- a/src/handshake.h +++ b/src/handshake.h @@ -137,6 +137,7 @@ struct handshake_state { bool authenticator_ocvc : 1; bool supplicant_ocvc : 1; bool ext_key_id_capable : 1; + bool retry_owe_workaround : 1; uint8_t ssid[32]; size_t ssid_len; char *passphrase;