linux/crypto
Rik Snel c494e0705d [CRYPTO] lib: table driven multiplications in GF(2^128)
A lot of cypher modes need multiplications in GF(2^128). LRW, ABL, GCM...
I use functions from this library in my LRW implementation and I will
also use them in my ABL (Arbitrary Block Length, an unencumbered (correct
me if I am wrong, wide block cipher mode).

Elements of GF(2^128) must be presented as u128 *, it encourages automatic
and proper alignment.

The library contains support for two different representations of GF(2^128),
see the comment in gf128mul.h. There different levels of optimization
(memory/speed tradeoff).

The code is based on work by Dr Brian Gladman. Notable changes:
- deletion of two optimization modes
- change from u32 to u64 for faster handling on 64bit machines
- support for 'bbe' representation in addition to the, already implemented,
  'lle' representation.
- move 'inline void' functions from header to 'static void' in the
  source file
- update to use the linux coding style conventions

The original can be found at:
http://fp.gladman.plus.com/AES/modes.vc8.19-06-06.zip

The copyright (and GPL statement) of the original author is preserved.

Signed-off-by: Rik Snel <rsnel@cube.dyndns.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2006-12-06 18:38:55 -08:00
..
aes.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
algapi.c [CRYPTO] api: Add common instance initialisation code 2006-09-21 11:41:04 +10:00
anubis.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
api.c [CRYPTO] api: Remove unused functions 2006-12-06 18:38:54 -08:00
arc4.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
blkcipher.c [CRYPTO] cipher: Added block cipher type 2006-09-21 11:41:52 +10:00
blowfish.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
cast5.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
cast6.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
cbc.c [CRYPTO] cipher: Added block ciphers for CBC/ECB 2006-09-21 11:44:08 +10:00
cipher.c [CRYPTO] api: Mark parts of cipher interface as deprecated 2006-09-21 11:46:16 +10:00
compress.c [CRYPTO] api: Added cra_init/cra_exit 2006-06-26 17:34:40 +10:00
crc32c.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
crypto_null.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
cryptomgr.c WorkStruct: Pass the work_struct pointer instead of context data 2006-11-22 14:55:48 +00:00
deflate.c [CRYPTO] api: Added cra_init/cra_exit 2006-06-26 17:34:40 +10:00
des.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
digest.c [CRYPTO] api: Remove unused functions 2006-12-06 18:38:54 -08:00
ecb.c [CRYPTO] cipher: Added block ciphers for CBC/ECB 2006-09-21 11:44:08 +10:00
gf128mul.c [CRYPTO] lib: table driven multiplications in GF(2^128) 2006-12-06 18:38:55 -08:00
hash.c [CRYPTO] digest: Added user API for new hash type 2006-09-21 11:46:17 +10:00
hmac.c [CRYPTO] hmac: Fix error truncation by unlikely() 2006-09-23 16:48:46 -07:00
internal.h [CRYPTO] digest: Remove old HMAC implementation 2006-09-21 11:46:20 +10:00
Kconfig [CRYPTO] lib: table driven multiplications in GF(2^128) 2006-12-06 18:38:55 -08:00
khazad.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
Makefile [CRYPTO] lib: table driven multiplications in GF(2^128) 2006-12-06 18:38:55 -08:00
md4.c [CRYPTO] all: Pass tfm instead of ctx to algorithms 2006-06-26 17:34:39 +10:00
md5.c [CRYPTO] all: Pass tfm instead of ctx to algorithms 2006-06-26 17:34:39 +10:00
michael_mic.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
proc.c [CRYPTO] api: Added crypto_type support 2006-09-21 11:41:51 +10:00
scatterwalk.c [CRYPTO] scatterwalk: Prepare for block ciphers 2006-09-21 11:41:52 +10:00
scatterwalk.h [CRYPTO] digest: Added user API for new hash type 2006-09-21 11:46:17 +10:00
serpent.c [PATCH] serpent: fix endian warnings 2006-10-10 16:15:33 -07:00
sha1.c [CRYPTO] sha: Add module aliases for sha1 / sha256 2006-09-21 11:40:20 +10:00
sha256.c [CRYPTO] sha: Add module aliases for sha1 / sha256 2006-09-21 11:40:20 +10:00
sha512.c [CRYPTO] all: Pass tfm instead of ctx to algorithms 2006-06-26 17:34:39 +10:00
tcrypt.c [CRYPTO] tcrypt: Add test vectors of AES_XCBC 2006-12-06 18:38:50 -08:00
tcrypt.h [CRYPTO] tcrypt: Add test vectors of AES_XCBC 2006-12-06 18:38:50 -08:00
tea.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
tgr192.c [CRYPTO] all: Pass tfm instead of ctx to algorithms 2006-06-26 17:34:39 +10:00
twofish_common.c [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
twofish.c [CRYPTO] twofish: Fix the priority 2006-09-21 11:16:28 +10:00
wp512.c [CRYPTO] all: Pass tfm instead of ctx to algorithms 2006-06-26 17:34:39 +10:00
xcbc.c [CRYPTO] xcbc: Make needlessly global code static 2006-12-06 18:38:51 -08:00