crypto: caam - fix decryption shared vs. non-shared key setting
authorKim Phillips <kim.phillips@freescale.com>
Sun, 15 May 2011 03:08:02 +0000 (22:08 -0500)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 19 May 2011 04:37:59 +0000 (14:37 +1000)
commitddbb80884a37601026ac3e5eaf176c4296231862
tree3c4d486db42bbb8dbba59021fbd64aae54486403
parent2930d49768e5276da4fbed9d9cc1bd40ed25818e
crypto: caam - fix decryption shared vs. non-shared key setting

Key sharing is enabled by default in the shared descriptor.

Using CBC decrypt, AES has to alter the key in order to decrypt.
During high traffic decryption rates, i.e, when sharing starts to
take place, we need to use a different OPERATION option to tell AES
that the key was already altered by the PRIOR descriptor - we need
the following kind of logic:

if ( shared )
    operation where AES uses decryption key (DK=1)
else
    operation where AES uses encryption key (DK=0)

this patch implements this logic using a conditional and
a non-conditional local jump within the decryption job
descriptor.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/caam/caamalg.c