summaryrefslogtreecommitdiffstats
path: root/drivers/crypto/caam/caamalg_desc.h
diff options
context:
space:
mode:
authorHoria Geantă <horia.geanta@nxp.com>2019-06-10 15:30:59 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2019-06-20 08:18:33 +0200
commit334d37c9e26364511f0673ef155e2ad207316e90 (patch)
treecdca67aac29710e65aa0d36515d6b965a04ac20e /drivers/crypto/caam/caamalg_desc.h
parentcrypto: caam - use len instead of nents for bulding HW S/G table (diff)
downloadlinux-334d37c9e26364511f0673ef155e2ad207316e90.tar.xz
linux-334d37c9e26364511f0673ef155e2ad207316e90.zip
crypto: caam - update IV using HW support
Modify drivers to perform skcipher IV update using the crypto engine, instead of performing the operation in SW. Besides being more efficient, this also fixes IV update for CTR mode. Output HW S/G table is appended with an entry pointing to the same IV buffer used as input (which is now mapped BIDIRECTIONAL). AS (Algorithm State) parameter of the OPERATION command is changed from INIFINAL to INIT in descriptors used by ctr(aes), cbc(aes). This is needed since in case FINAL bit is set, HW skips IV updating in the Context Register for the last data block. Signed-off-by: Horia Geantă <horia.geanta@nxp.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/caam/caamalg_desc.h')
-rw-r--r--drivers/crypto/caam/caamalg_desc.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/crypto/caam/caamalg_desc.h b/drivers/crypto/caam/caamalg_desc.h
index d5ca42ff961a..da4a4ee60c80 100644
--- a/drivers/crypto/caam/caamalg_desc.h
+++ b/drivers/crypto/caam/caamalg_desc.h
@@ -44,9 +44,9 @@
#define DESC_SKCIPHER_BASE (3 * CAAM_CMD_SZ)
#define DESC_SKCIPHER_ENC_LEN (DESC_SKCIPHER_BASE + \
- 20 * CAAM_CMD_SZ)
+ 21 * CAAM_CMD_SZ)
#define DESC_SKCIPHER_DEC_LEN (DESC_SKCIPHER_BASE + \
- 15 * CAAM_CMD_SZ)
+ 16 * CAAM_CMD_SZ)
void cnstr_shdsc_aead_null_encap(u32 * const desc, struct alginfo *adata,
unsigned int icvsize, int era);