diff options
author | Horia Geanta <horia.geanta@freescale.com> | 2014-07-11 15:46:58 +0300 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2014-07-23 21:31:36 +0800 |
commit | a60384dfff3df41e86431974e5f9807773332d9e (patch) | |
tree | 8b66c6996a651bb32b47428cb7d2a6743d659211 /drivers/crypto/caam | |
parent | de0e35ec2b72be30892f28a939c358af1df4fa2c (diff) | |
download | op-kernel-dev-a60384dfff3df41e86431974e5f9807773332d9e.zip op-kernel-dev-a60384dfff3df41e86431974e5f9807773332d9e.tar.gz |
crypto: caam - set DK (Decrypt Key) bit only for AES accelerator
AES currently shares descriptor creation functions with DES and 3DES.
DK bit is set in all cases, however it is valid only for
the AES accelerator.
Signed-off-by: Horia Geanta <horia.geanta@freescale.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/caam')
-rw-r--r-- | drivers/crypto/caam/caamalg.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/crypto/caam/caamalg.c b/drivers/crypto/caam/caamalg.c index 694df46..a80ea85 100644 --- a/drivers/crypto/caam/caamalg.c +++ b/drivers/crypto/caam/caamalg.c @@ -97,6 +97,13 @@ static inline void append_dec_op1(u32 *desc, u32 type) { u32 *jump_cmd, *uncond_jump_cmd; + /* DK bit is valid only for AES */ + if ((type & OP_ALG_ALGSEL_MASK) != OP_ALG_ALGSEL_AES) { + append_operation(desc, type | OP_ALG_AS_INITFINAL | + OP_ALG_DECRYPT); + return; + } + jump_cmd = append_jump(desc, JUMP_TEST_ALL | JUMP_COND_SHRD); append_operation(desc, type | OP_ALG_AS_INITFINAL | OP_ALG_DECRYPT); |