crypto: caam - fix SHA support detection
The addition of Chacha20 + Poly1305 authenc support inadvertently broke
detection of algorithms supported by MDHA (Message Digest Hardware
Accelerator), fix it.
Fixes: d6bbd4eea2
("crypto: caam/jr - add support for Chacha20 + Poly1305")
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
04e6d25c5b
commit
2dd3fde41b
|
@ -3476,7 +3476,7 @@ static int __init caam_algapi_init(void)
|
||||||
* Skip algorithms requiring message digests
|
* Skip algorithms requiring message digests
|
||||||
* if MD or MD size is not supported by device.
|
* if MD or MD size is not supported by device.
|
||||||
*/
|
*/
|
||||||
if ((c2_alg_sel & ~OP_ALG_ALGSEL_SUBMASK) == 0x40 &&
|
if (is_mdha(c2_alg_sel) &&
|
||||||
(!md_inst || t_alg->aead.maxauthsize > md_limit))
|
(!md_inst || t_alg->aead.maxauthsize > md_limit))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
|
@ -1155,6 +1155,7 @@
|
||||||
#define OP_ALG_ALGSEL_DES (0x20 << OP_ALG_ALGSEL_SHIFT)
|
#define OP_ALG_ALGSEL_DES (0x20 << OP_ALG_ALGSEL_SHIFT)
|
||||||
#define OP_ALG_ALGSEL_3DES (0x21 << OP_ALG_ALGSEL_SHIFT)
|
#define OP_ALG_ALGSEL_3DES (0x21 << OP_ALG_ALGSEL_SHIFT)
|
||||||
#define OP_ALG_ALGSEL_ARC4 (0x30 << OP_ALG_ALGSEL_SHIFT)
|
#define OP_ALG_ALGSEL_ARC4 (0x30 << OP_ALG_ALGSEL_SHIFT)
|
||||||
|
#define OP_ALG_CHA_MDHA (0x40 << OP_ALG_ALGSEL_SHIFT)
|
||||||
#define OP_ALG_ALGSEL_MD5 (0x40 << OP_ALG_ALGSEL_SHIFT)
|
#define OP_ALG_ALGSEL_MD5 (0x40 << OP_ALG_ALGSEL_SHIFT)
|
||||||
#define OP_ALG_ALGSEL_SHA1 (0x41 << OP_ALG_ALGSEL_SHIFT)
|
#define OP_ALG_ALGSEL_SHA1 (0x41 << OP_ALG_ALGSEL_SHIFT)
|
||||||
#define OP_ALG_ALGSEL_SHA224 (0x42 << OP_ALG_ALGSEL_SHIFT)
|
#define OP_ALG_ALGSEL_SHA224 (0x42 << OP_ALG_ALGSEL_SHIFT)
|
||||||
|
|
|
@ -7,6 +7,9 @@
|
||||||
|
|
||||||
#ifndef CAAM_ERROR_H
|
#ifndef CAAM_ERROR_H
|
||||||
#define CAAM_ERROR_H
|
#define CAAM_ERROR_H
|
||||||
|
|
||||||
|
#include "desc.h"
|
||||||
|
|
||||||
#define CAAM_ERROR_STR_MAX 302
|
#define CAAM_ERROR_STR_MAX 302
|
||||||
|
|
||||||
void caam_strstatus(struct device *dev, u32 status, bool qi_v2);
|
void caam_strstatus(struct device *dev, u32 status, bool qi_v2);
|
||||||
|
@ -17,4 +20,10 @@ void caam_strstatus(struct device *dev, u32 status, bool qi_v2);
|
||||||
void caam_dump_sg(const char *level, const char *prefix_str, int prefix_type,
|
void caam_dump_sg(const char *level, const char *prefix_str, int prefix_type,
|
||||||
int rowsize, int groupsize, struct scatterlist *sg,
|
int rowsize, int groupsize, struct scatterlist *sg,
|
||||||
size_t tlen, bool ascii);
|
size_t tlen, bool ascii);
|
||||||
|
|
||||||
|
static inline bool is_mdha(u32 algtype)
|
||||||
|
{
|
||||||
|
return (algtype & OP_ALG_ALGSEL_MASK & ~OP_ALG_ALGSEL_SUBMASK) ==
|
||||||
|
OP_ALG_CHA_MDHA;
|
||||||
|
}
|
||||||
#endif /* CAAM_ERROR_H */
|
#endif /* CAAM_ERROR_H */
|
||||||
|
|
Loading…
Reference in New Issue