linux/drivers/crypto/chelsio
Devulapally Shiva Krishna 6b363a286c Crypto/chcr: fix ctr, cbc, xts and rfc3686-ctr failed tests
This solves the following issues observed during self test when
CONFIG_CRYPTO_MANAGER_EXTRA_TESTS is enabled.

1. Added fallback for cbc, ctr and rfc3686 if req->nbytes is zero
and for xts added a fallback case if req->nbytes is not multiple of 16.

2. In case of cbc-aes, solved wrong iv update. When
chcr_cipher_fallback() is called, used req->info pointer instead of
reqctx->iv.

3. In cbc-aes decryption there was a wrong result. This occurs when
chcr_cipher_fallback() is called from chcr_handle_cipher_resp().
In the fallback function iv(req->info) used is wrongly updated.
So use the initial iv for this case.

4)In case of ctr-aes encryption observed wrong result. In adjust_ctr_overflow()
there is condition which checks if ((bytes / AES_BLOCK_SIZE) > c),
where c is the number of blocks which can be processed without iv overflow,
but for the above bytes (req->nbytes < 32 , not a multiple of 16) this
condition fails and the 2nd block is corrupted as it requires the rollover iv.
So added a '=' condition in this to take care of this.

5)In rfc3686-ctr there was wrong result observed. This occurs when
chcr_cipher_fallback() is called from chcr_handle_cipher_resp().
Here also copying initial_iv in init_iv pointer for handling the fallback
case correctly.

Signed-off-by: Ayush Sawal <ayush.sawal@chelsio.com>
Signed-off-by: Devulapally Shiva Krishna <shiva@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-05-06 17:44:11 -07:00
..
chtls Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2020-04-01 14:47:40 -07:00
chcr_algo.c Crypto/chcr: fix ctr, cbc, xts and rfc3686-ctr failed tests 2020-05-06 17:44:11 -07:00
chcr_algo.h crypto: chelsio - switch to skcipher API 2019-11-17 09:02:47 +08:00
chcr_common.h chcr: Handle first or middle part of record 2020-03-08 21:16:23 -07:00
chcr_core.c Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2020-04-01 14:47:40 -07:00
chcr_core.h Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2020-04-01 14:47:40 -07:00
chcr_crypto.h Crypto/chcr: fix ctr, cbc, xts and rfc3686-ctr failed tests 2020-05-06 17:44:11 -07:00
chcr_ipsec.c Revert "crypto: chelsio - Inline single pdu only" 2020-05-06 14:51:59 -07:00
chcr_ktls.c chcr: Fix CPU hard lockup 2020-04-23 15:51:37 -07:00
chcr_ktls.h cxgb4/chcr: Add ipv6 support and statistics 2020-03-08 21:16:23 -07:00
Kconfig cxgb4/chcr : Register to tls add and del callback 2020-03-08 21:16:23 -07:00
Makefile cxgb4/chcr : Register to tls add and del callback 2020-03-08 21:16:23 -07:00