summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorHoria Geantă <horia.geanta@nxp.com>2018-03-28 14:39:19 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2018-04-20 18:58:25 +0200
commit3a488aaec6f343b5dc6d94529847a840bbeaf009 (patch)
tree7c5d84ab51601b9f2b200aa1de3186d5558b79f3 /crypto
parentcrypto: caam - fix IV DMA mapping and updating (diff)
downloadlinux-3a488aaec6f343b5dc6d94529847a840bbeaf009.tar.xz
linux-3a488aaec6f343b5dc6d94529847a840bbeaf009.zip
crypto: caam/qi - fix IV DMA mapping and updating
There are two IV-related issues: (1) crypto API does not guarantee to provide an IV buffer that is DMAable, thus it's incorrect to DMA map it (2) for in-place decryption, since ciphertext is overwritten with plaintext, updated IV (req->info) will contain the last block of plaintext (instead of the last block of ciphertext) While these two issues could be fixed separately, it's straightforward to fix both in the same time - by using the {ablkcipher,aead}_edesc extended descriptor to store the IV that will be fed to the crypto engine; this allows for fixing (2) by saving req->src[last_block] in req->info directly, i.e. without allocating yet another temporary buffer. A side effect of the fix is that it's no longer possible to have the IV contiguous with req->src or req->dst. Code checking for this case is removed. Cc: <stable@vger.kernel.org> # 4.14+ Fixes: a68a19380522 ("crypto: caam/qi - properly set IV after {en,de}crypt") Link: http://lkml.kernel.org/r/20170113084620.GF22022@gondor.apana.org.au Reported-by: Gilad Ben-Yossef <gilad@benyossef.com> Signed-off-by: Horia Geantă <horia.geanta@nxp.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
0 files changed, 0 insertions, 0 deletions