linux/drivers/crypto/nx
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
..
Kconfig powerpc/crypto: add 842 hardware compression driver 2012-08-01 17:47:56 +08:00
Makefile powerpc/crypto: add 842 hardware compression driver 2012-08-01 17:47:56 +08:00
nx-842.c powerpc+of: Add of node/property notification chain for adds and removes 2012-11-15 12:56:41 +11:00
nx-aes-cbc.c crypto: nx - fix limits to sg lists for AES-CBC 2013-09-02 20:32:53 +10:00
nx-aes-ccm.c crypto: nx - fix limits to sg lists for AES-CCM 2013-09-02 20:32:54 +10:00
nx-aes-ctr.c crypto: nx - fix limits to sg lists for AES-CTR 2013-09-02 20:32:53 +10:00
nx-aes-ecb.c crypto: nx - fix limits to sg lists for AES-ECB 2013-09-02 20:32:52 +10:00
nx-aes-gcm.c crypto: nx - fix GCM for zero length messages 2013-09-02 20:32:55 +10:00
nx-aes-xcbc.c crypto: nx - fix XCBC for zero length messages 2013-09-02 20:32:55 +10:00
nx-sha256.c crypto: nx - fix concurrency issue 2013-08-14 20:42:04 +10:00
nx-sha512.c crypto: nx - fix concurrency issue 2013-08-14 20:42:04 +10:00
nx.c crypto: nx - add offset to nx_build_sg_lists() 2013-09-02 20:32:52 +10:00
nx.h crypto: nx - add offset to nx_build_sg_lists() 2013-09-02 20:32:52 +10:00
nx_csbcpb.h
nx_debugfs.c