On 4 February 2017 at 14:39, Malinen, Jouni [off-list ref] wrote:
On Sat, Feb 04, 2017 at 02:24:36PM +0000, Ard Biesheuvel wrote:
quoted
There is another issue I spotted: the skcipher you allocate may be of
the async variant, which may return from skcipher_encrypt() with
-EINPROGRESS as soon as it has queued the request. Since you don't
deal with that result, you should allocate a sync cipher explicitly:
quoted
diff --git a/net/mac80211/fils_aead.c b/net/mac80211/fils_aead.c
- tfm2 = crypto_alloc_skcipher("ctr(aes)", 0, 0);
+ tfm2 = crypto_alloc_skcipher("ctr(aes)", 0, CRYPTO_ALG_ASYNC);
quoted
- tfm2 = crypto_alloc_skcipher("ctr(aes)", 0, 0);
+ tfm2 = crypto_alloc_skcipher("ctr(aes)", 0, CRYPTO_ALG_ASYNC);
Thanks! Can you send this as a full contribution or do you want me to
do that?
Please go ahead if you don't mind doing it
I did run this through all the FILS test cases with
mac80211_hwsim.
Well, even async ciphers can act synchronously: the SIMD based async
ciphers will only enqueue the request for deferred processing when
called in interrupt context (on most architectures) but if you happen
to run on a platform that has a h/w accelerator for ctr(aes), you are
quite likely to see failures here.
quoted
Thanks for the instructions and thanks for testing. If I manage to run
this locally, I will follow up with an alternative patch #1 tha here
switches FILS to use cmac(aes) as well (which looks reasonably
feasible now that I understand the code)
If you have any issues in getting the hwsim test setup working, please
let me know. I'm trying to make it easy for anyone to run those tests in
hopes of improving quality of Linux WLAN contributions and what gets
applied into cfg80211 or mac80211 (or hostap.git for that matter). In
particular the latest step-by-step guide I added for the VM version (*)
was hoping to show how that can be done in 15 minutes from scratch..
(*) http://w1.fi/cgit/hostap/plain/tests/hwsim/vm/example-vm-setup.txt
I will take a look on Monday