summaryrefslogtreecommitdiffstats
path: root/drivers/crypto/nx/nx-aes-gcm.c
diff options
context:
space:
mode:
authorKent Yoder <key@linux.vnet.ibm.com>2013-04-12 19:13:59 +0200
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2013-05-24 10:11:10 +0200
commit1ad936e850a896bc16e0d72a56be432f9954ad7e (patch)
treed0108b0f99c61e6779eadbaebf29ed5b6be2e485 /drivers/crypto/nx/nx-aes-gcm.c
parentMerge branch 'leds-fixes-3.10' of git://git.kernel.org/pub/scm/linux/kernel/g... (diff)
downloadlinux-1ad936e850a896bc16e0d72a56be432f9954ad7e.tar.xz
linux-1ad936e850a896bc16e0d72a56be432f9954ad7e.zip
drivers/crypto/nx: Fixes for multiple races and issues
Fixes a race on driver init with registering algorithms where the driver status flag wasn't being set before self testing started. Added the cra_alignmask field for CBC and ECB modes. Fixed a bug in GCM where AES block size was being used instead of authsize. Removed use of blkcipher_walk routines for scatterlist processing. Corner cases in the code prevent us from processing an entire scatterlist at a time and walking the buffers in block sized chunks turns out to be unecessary anyway. Fixed off-by-one error in saving off extra data in the sha code. Fixed accounting error for number of bytes processed in the sha code. Signed-off-by: Kent Yoder <key@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'drivers/crypto/nx/nx-aes-gcm.c')
-rw-r--r--drivers/crypto/nx/nx-aes-gcm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/crypto/nx/nx-aes-gcm.c b/drivers/crypto/nx/nx-aes-gcm.c
index c8109edc5cfb..6cca6c392b00 100644
--- a/drivers/crypto/nx/nx-aes-gcm.c
+++ b/drivers/crypto/nx/nx-aes-gcm.c
@@ -219,7 +219,7 @@ static int gcm_aes_nx_crypt(struct aead_request *req, int enc)
if (enc)
NX_CPB_FDM(csbcpb) |= NX_FDM_ENDE_ENCRYPT;
else
- nbytes -= AES_BLOCK_SIZE;
+ nbytes -= crypto_aead_authsize(crypto_aead_reqtfm(req));
csbcpb->cpb.aes_gcm.bit_length_data = nbytes * 8;