aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/serpent_generic.c
diff options
context:
space:
mode:
authorStephan Mueller <smueller@chronox.de>2017-07-30 14:32:58 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2017-08-09 20:17:52 +0800
commit72548b093ee38a6d4f2a19e6ef1948ae05c181f7 (patch)
tree630095bdb72ca2c0e616f7accea0f0d826d3f2c0 /crypto/serpent_generic.c
parentcrypto: algif - return error code when no data was processed (diff)
downloadlinux-dev-72548b093ee38a6d4f2a19e6ef1948ae05c181f7.tar.xz
linux-dev-72548b093ee38a6d4f2a19e6ef1948ae05c181f7.zip
crypto: algif_aead - copy AAD from src to dst
Use the NULL cipher to copy the AAD and PT/CT from the TX SGL to the RX SGL. This allows an in-place crypto operation on the RX SGL for encryption, because the TX data is always smaller or equal to the RX data (the RX data will hold the tag). For decryption, a per-request TX SGL is created which will only hold the tag value. As the RX SGL will have no space for the tag value and an in-place operation will not write the tag buffer, the TX SGL with the tag value is chained to the RX SGL. This now allows an in-place crypto operation. For example: * without the patch: kcapi -x 2 -e -c "gcm(aes)" -p 89154d0d4129d322e4487bafaa4f6b46 -k c0ece3e63198af382b5603331cc23fa8 -i 7e489b83622e7228314d878d -a afcd7202d621e06ca53b70c2bdff7fb2 -l 16 -u -s 00000000000000000000000000000000f4a3eacfbdadd3b1a17117b1d67ffc1f1e21efbbc6d83724a8c296e3bb8cda0c * with the patch: kcapi -x 2 -e -c "gcm(aes)" -p 89154d0d4129d322e4487bafaa4f6b46 -k c0ece3e63198af382b5603331cc23fa8 -i 7e489b83622e7228314d878d -a afcd7202d621e06ca53b70c2bdff7fb2 -l 16 -u -s afcd7202d621e06ca53b70c2bdff7fb2f4a3eacfbdadd3b1a17117b1d67ffc1f1e21efbbc6d83724a8c296e3bb8cda0c Tests covering this functionality have been added to libkcapi. Signed-off-by: Stephan Mueller <smueller@chronox.de> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/serpent_generic.c')
0 files changed, 0 insertions, 0 deletions