forked from Minki/linux
a2fb864c04
Update alginfo struct to keep both virtual and dma key addresses, so that descriptors have them at hand. One example where this is needed is in the xcbc(aes) shared descriptors, which are updated in current patch. Another example is the upcoming fix for DKP. Signed-off-by: Horia Geantă <horia.geanta@nxp.com> Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
30 lines
964 B
C
30 lines
964 B
C
/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
|
|
/*
|
|
* Shared descriptors for ahash algorithms
|
|
*
|
|
* Copyright 2017 NXP
|
|
*/
|
|
|
|
#ifndef _CAAMHASH_DESC_H_
|
|
#define _CAAMHASH_DESC_H_
|
|
|
|
/* length of descriptors text */
|
|
#define DESC_AHASH_BASE (3 * CAAM_CMD_SZ)
|
|
#define DESC_AHASH_UPDATE_LEN (6 * CAAM_CMD_SZ)
|
|
#define DESC_AHASH_UPDATE_FIRST_LEN (DESC_AHASH_BASE + 4 * CAAM_CMD_SZ)
|
|
#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_sk_hash(u32 * const desc, struct alginfo *adata, u32 state,
|
|
int digestsize, int ctx_len);
|
|
#endif /* _CAAMHASH_DESC_H_ */
|