summaryrefslogtreecommitdiffstats
path: root/drivers/crypto/caam/caamhash_desc.h
diff options
context:
space:
mode:
authorIuliana Prodan <iuliana.prodan@nxp.com>2019-01-21 14:22:42 +0100
committerHerbert Xu <herbert@gondor.apana.org.au>2019-02-01 07:42:03 +0100
commit87870cfb4b5a93c70e2dc32d0349af0625bd5546 (patch)
treea73c5f4b200674b9b8a58abab2035ffb0b0f9b36 /drivers/crypto/caam/caamhash_desc.h
parentcrypto: seqiv - Use kmemdup in seqiv_aead_encrypt() (diff)
downloadlinux-87870cfb4b5a93c70e2dc32d0349af0625bd5546.tar.xz
linux-87870cfb4b5a93c70e2dc32d0349af0625bd5546.zip
crypto: caam - add support for cmac(aes)
Add cmac(aes) keyed hash offloading support. Similar to xcbc implementation, driver must make sure there are still some bytes buffered when ahash_final() is called. This way HW is able to decide whether padding is needed and which key to derive (L -> K1 / K2) for the last block. Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com> 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/caamhash_desc.h')
-rw-r--r--drivers/crypto/caam/caamhash_desc.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/crypto/caam/caamhash_desc.h b/drivers/crypto/caam/caamhash_desc.h
index cf4a437d4c02..6947ee1f200c 100644
--- a/drivers/crypto/caam/caamhash_desc.h
+++ b/drivers/crypto/caam/caamhash_desc.h
@@ -15,9 +15,15 @@
#define DESC_AHASH_FINAL_LEN (DESC_AHASH_BASE + 5 * CAAM_CMD_SZ)
#define DESC_AHASH_DIGEST_LEN (DESC_AHASH_BASE + 4 * CAAM_CMD_SZ)
+static inline bool is_xcbc_aes(u32 algtype)
+{
+ return (algtype & (OP_ALG_ALGSEL_MASK | OP_ALG_AAI_MASK)) ==
+ (OP_ALG_ALGSEL_AES | OP_ALG_AAI_XCBC_MAC);
+}
+
void cnstr_shdsc_ahash(u32 * const desc, struct alginfo *adata, u32 state,
int digestsize, int ctx_len, bool import_ctx, int era);
-void cnstr_shdsc_axcbc(u32 * const desc, struct alginfo *adata, u32 state,
- int digestsize, int ctx_len, dma_addr_t key_dma);
+void cnstr_shdsc_sk_hash(u32 * const desc, struct alginfo *adata, u32 state,
+ int digestsize, int ctx_len, dma_addr_t key_dma);
#endif /* _CAAMHASH_DESC_H_ */