mac80211: Allocate a sync skcipher explicitly for FILS AEAD
The skcipher could have been of the async variant which may return from skcipher_encrypt() with -EINPROGRESS after having queued the request. The FILS AEAD implementation here does not have code for dealing with that possibility, so allocate a sync cipher explicitly to avoid potential issues with hardware accelerators. This is based on the patch sent out by Ard. Fixes: 39404feee691 ("mac80211: FILS AEAD protection for station mode association frames") Reported-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
e479ab651f
commit
01fba20b59
@ -124,7 +124,7 @@ static int aes_siv_encrypt(const u8 *key, size_t key_len,
|
||||
|
||||
/* CTR */
|
||||
|
||||
tfm2 = crypto_alloc_skcipher("ctr(aes)", 0, 0);
|
||||
tfm2 = crypto_alloc_skcipher("ctr(aes)", 0, CRYPTO_ALG_ASYNC);
|
||||
if (IS_ERR(tfm2)) {
|
||||
kfree(tmp);
|
||||
return PTR_ERR(tfm2);
|
||||
@ -183,7 +183,7 @@ static int aes_siv_decrypt(const u8 *key, size_t key_len,
|
||||
|
||||
/* CTR */
|
||||
|
||||
tfm2 = crypto_alloc_skcipher("ctr(aes)", 0, 0);
|
||||
tfm2 = crypto_alloc_skcipher("ctr(aes)", 0, CRYPTO_ALG_ASYNC);
|
||||
if (IS_ERR(tfm2))
|
||||
return PTR_ERR(tfm2);
|
||||
/* K2 for CTR */
|
||||
|
Loading…
x
Reference in New Issue
Block a user