summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHoria Geanta <horia.geanta@freescale.com>2014-07-11 15:46:58 +0300
committerHerbert Xu <herbert@gondor.apana.org.au>2014-07-23 21:31:36 +0800
commita60384dfff3df41e86431974e5f9807773332d9e (patch)
tree8b66c6996a651bb32b47428cb7d2a6743d659211
parentde0e35ec2b72be30892f28a939c358af1df4fa2c (diff)
downloadlinux-a60384dfff3df41e86431974e5f9807773332d9e.tar.gz
linux-a60384dfff3df41e86431974e5f9807773332d9e.tar.bz2
linux-a60384dfff3df41e86431974e5f9807773332d9e.zip
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>
-rw-r--r--drivers/crypto/caam/caamalg.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/crypto/caam/caamalg.c b/drivers/crypto/caam/caamalg.c
index 694df4685920..a80ea853701d 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);