linux/drivers/crypto
Marcelo Cerri dec0ed6c1b crypto: nx - fix GCM for zero length messages
The NX CGM implementation doesn't support zero length messages and the
current implementation has two flaws:

 - When the input data length is zero, it ignores the associated data.
 - Even when both lengths are zero, it uses the Crypto API to encrypt a
   zeroed block using ctr(aes) and because of this it allocates a new
   transformation and sets the key for this new tfm. Both operations are
   intended to be used only in user context, while the cryptographic
   operations can be called in both user and softirq contexts.

This patch replaces the nested Crypto API use and adds two special
cases:

 - When input data and associated data lengths are zero: it uses NX ECB
   mode to emulate the encryption of a zeroed block using ctr(aes).
 - When input data is zero and associated data is available: it uses NX
   GMAC mode to calculate the associated data MAC.

Reviewed-by: Joy Latten <jmlatten@linux.vnet.ibm.com>
Signed-off-by: Marcelo Cerri <mhcerri@linux.vnet.ibm.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2013-09-02 20:32:55 +10:00
..
amcc crypto: crypto4xx - Staticize local symbols 2013-08-14 20:42:03 +10:00
caam crypto: caam - add option for enabling DEBUG mode 2013-08-21 21:08:37 +10:00
nx crypto: nx - fix GCM for zero length messages 2013-09-02 20:32:55 +10:00
ux500 crypto: ux500 - Fix logging, make arrays const, neatening 2013-08-01 10:53:59 +10:00
atmel-aes-regs.h crypto: atmel - add Atmel AES driver 2012-07-11 11:07:40 +08:00
atmel-aes.c crypto: atmel-aes - add support for latest release of the IP (0x130) 2013-03-10 16:46:42 +08:00
atmel-sha-regs.h crypto: atmel-sha - add support for latest release of the IP (0x410) 2013-03-10 16:46:42 +08:00
atmel-sha.c crypto: atmel-sha - add support for latest release of the IP (0x410) 2013-03-10 16:46:42 +08:00
atmel-tdes-regs.h crypto: atmel-tdes - add support for latest release of the IP (0x700) 2013-03-10 16:46:42 +08:00
atmel-tdes.c crypto: atmel-tdes - add support for latest release of the IP (0x700) 2013-03-10 16:46:42 +08:00
bfin_crc.c crypto: bfin_crc - Fix possible NULL pointer dereference 2013-03-10 16:46:43 +08:00
dcp.c crypto: dcp - Staticize local symbols 2013-06-05 16:43:08 +08:00
geode-aes.c Drivers: crypto: remove __dev* attributes. 2013-01-03 15:57:02 -08:00
geode-aes.h
hifn_795x.c crypto: hifn_795x - Pass correct pointer to free_irq() 2013-05-28 15:43:04 +08:00
ixp4xx_crypto.c IXP4xx crypto: MOD_AES{128,192,256} already include key size. 2012-11-22 03:36:15 +00:00
Kconfig crypto: omap-aes - Kconfig: Add build support for AM437x 2013-08-21 21:28:06 +10:00
Makefile crypto: dcp - Added support for Freescale's DCP co-processor 2013-05-28 15:43:03 +08:00
mv_cesa.c crypto: mv_cesa: Remove redundant platform_set_drvdata() 2013-05-24 17:55:28 +08:00
mv_cesa.h crypto: mv_cesa - Add sha1 and hmac(sha1) async hash drivers 2010-04-13 16:50:49 +08:00
n2_asm.S crypto: n2 - Add Niagara2 crypto driver 2010-05-19 14:14:04 +10:00
n2_core.c Drivers: crypto: remove __dev* attributes. 2013-01-03 15:57:02 -08:00
n2_core.h crypto: n2 - Add Niagara2 crypto driver 2010-05-19 14:14:04 +10:00
omap-aes.c crypto: omap-aes - Convert request_irq to devm_request_irq 2013-08-21 21:28:05 +10:00
omap-sham.c crypto: omap-sham - correct dma burst size 2013-08-21 21:28:08 +10:00
padlock-aes.c crypto: drivers - remove cra_list initialization 2012-08-01 17:47:28 +08:00
padlock-sha.c crypto: Add support for x86 cpuid auto loading for x86 crypto drivers 2012-01-26 16:48:10 -08:00
picoxcell_crypto_regs.h crypto: picoxcell - add support for the picoxcell crypto engines 2011-02-21 22:42:40 +11:00
picoxcell_crypto.c crypto: picoxcell - replace strict_strtoul() with kstrtoul() 2013-06-05 16:43:08 +08:00
s5p-sss.c crypto: s5p-sss: Remove redundant platform_set_drvdata() 2013-05-24 17:55:28 +08:00
sahara.c crypto: sahara - checking the wrong variable 2013-08-21 21:28:06 +10:00
talitos.c Revert "crypto: talitos - add IPsec ESN support" 2013-03-21 17:36:02 +08:00
talitos.h crypto: talitos - add sha224, sha384 and sha512 to existing AEAD algorithms 2012-07-11 11:08:29 +08:00
tegra-aes.c crypto: tegra-aes - bitwise vs logical and 2013-08-21 21:28:07 +10:00
tegra-aes.h crypto: driver for Tegra AES hardware 2012-01-13 16:38:37 +11:00