linux/drivers/crypto/caam
Horia Geantă 3a5a9e1ef3 crypto: caam/qi2 - fix chacha20 data size error
HW generates a Data Size error for chacha20 requests that are not
a multiple of 64B, since algorithm state (AS) does not have
the FINAL bit set.

Since updating req->iv (for chaining) is not required,
modify skcipher descriptors to set the FINAL bit for chacha20.

[Note that for skcipher decryption we know that ctx1_iv_off is 0,
which allows for an optimization by not checking algorithm type,
since append_dec_op1() sets FINAL bit for all algorithms except AES.]

Also drop the descriptor operations that save the IV.
However, in order to keep code logic simple, things like
S/G tables generation etc. are not touched.

Cc: <stable@vger.kernel.org> # v5.3+
Fixes: 334d37c9e2 ("crypto: caam - update IV using HW support")
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Tested-by: Valentin Ciocoi Radulescu <valentin.ciocoi@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2020-03-06 12:28:25 +11:00
..
caamalg_desc.c crypto: caam/qi2 - fix chacha20 data size error 2020-03-06 12:28:25 +11:00
caamalg_desc.h crypto: caam - update rfc4106 sh desc to support zero length input 2019-08-09 15:11:48 +10:00
caamalg_qi2.c crypto: caam/qi2 - fix typo in algorithm's driver name 2020-01-22 16:21:07 +08:00
caamalg_qi2.h crypto: Replace zero-length array with flexible-array member 2020-03-06 12:28:21 +11:00
caamalg_qi.c crypto: Replace zero-length array with flexible-array member 2020-03-06 12:28:21 +11:00
caamalg.c crypto: Replace zero-length array with flexible-array member 2020-03-06 12:28:21 +11:00
caamhash_desc.c crypto: caam - keep both virtual and dma key addresses 2019-08-09 15:11:49 +10:00
caamhash_desc.h crypto: caam - keep both virtual and dma key addresses 2019-08-09 15:11:49 +10:00
caamhash.c crypto: Replace zero-length array with flexible-array member 2020-03-06 12:28:21 +11:00
caampkc.c crypto: caam - add crypto_engine support for RSA algorithms 2020-02-22 09:25:48 +08:00
caampkc.h crypto: caam - add crypto_engine support for RSA algorithms 2020-02-22 09:25:48 +08:00
caamrng.c crypto: caam - change return code in caam_jr_enqueue function 2020-02-22 09:25:47 +08:00
compat.h crypto: caam/des - switch to new verification routines 2019-08-22 14:39:39 +10:00
ctrl.c crypto: caam - add support for i.MX8M Plus 2020-01-22 16:21:11 +08:00
ctrl.h crypto: caam - staticize caam_get_era() 2018-04-21 00:58:36 +08:00
desc_constr.h crypto: caam - select DMA address size at runtime 2019-08-30 18:05:30 +10:00
desc.h crypto: caam - fix SHA support detection 2019-01-10 21:37:31 +08:00
dpseci_cmd.h crypto: caam - add DPAA2-CAAM (DPSECI) backend API 2018-09-21 13:24:51 +08:00
dpseci-debugfs.c crypto: caam/qi2 - Add printing dpseci fq stats using debugfs 2019-08-02 14:44:01 +10:00
dpseci-debugfs.h crypto: caam/qi2 - Add printing dpseci fq stats using debugfs 2019-08-02 14:44:01 +10:00
dpseci.c crypto: caam - add DPAA2-CAAM (DPSECI) backend API 2018-09-21 13:24:51 +08:00
dpseci.h crypto: caam - add DPAA2-CAAM (DPSECI) backend API 2018-09-21 13:24:51 +08:00
error.c crypto: caam - make CAAM_PTR_SZ dynamic 2019-08-30 18:05:30 +10:00
error.h crypto: caam - fix return code in completion callbacks 2019-08-09 15:11:45 +10:00
intern.h crypto: caam - support crypto_engine framework for SKCIPHER algorithms 2020-02-22 09:25:47 +08:00
jr.c crypto: caam - support crypto_engine framework for SKCIPHER algorithms 2020-02-22 09:25:47 +08:00
jr.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kconfig crypto: caam - support crypto_engine framework for SKCIPHER algorithms 2020-02-22 09:25:47 +08:00
key_gen.c crypto: caam - change return code in caam_jr_enqueue function 2020-02-22 09:25:47 +08:00
key_gen.h crypto: caam - add Derived Key Protocol (DKP) support 2017-12-28 17:56:48 +11:00
Makefile crypto: caam/qi2 - Add printing dpseci fq stats using debugfs 2019-08-02 14:44:01 +10:00
pdb.h crypto: caam - select DMA address size at runtime 2019-08-30 18:05:30 +10:00
pkc_desc.c crypto: caam - select DMA address size at runtime 2019-08-30 18:05:30 +10:00
qi.c crypto: caam/qi - optimize frame queue cleanup 2020-02-13 17:05:25 +08:00
qi.h crypto: caam/qi - optimize frame queue cleanup 2020-02-13 17:05:25 +08:00
regs.h crypto: caam - select DMA address size at runtime 2019-08-30 18:05:30 +10:00
sg_sw_qm2.h crypto: caam - use len instead of nents for bulding HW S/G table 2019-06-20 14:18:33 +08:00
sg_sw_qm.h crypto: caam - use len instead of nents for bulding HW S/G table 2019-06-20 14:18:33 +08:00
sg_sw_sec4.h crypto: caam - use len instead of nents for bulding HW S/G table 2019-06-20 14:18:33 +08:00