acrn-kernel/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
..
Kconfig [CRYPTO] lib: table driven multiplications in GF(2^128) 2006-12-06 18:38:55 -08:00
Makefile [CRYPTO] lib: table driven multiplications in GF(2^128) 2006-12-06 18:38:55 -08:00
aes.c
algapi.c
anubis.c
api.c [CRYPTO] api: Remove unused functions 2006-12-06 18:38:54 -08:00
arc4.c
blkcipher.c
blowfish.c
cast5.c
cast6.c
cbc.c
cipher.c
compress.c
crc32c.c
crypto_null.c
cryptomgr.c WorkStruct: Pass the work_struct pointer instead of context data 2006-11-22 14:55:48 +00:00
deflate.c
des.c
digest.c [CRYPTO] api: Remove unused functions 2006-12-06 18:38:54 -08:00
ecb.c
gf128mul.c [CRYPTO] lib: table driven multiplications in GF(2^128) 2006-12-06 18:38:55 -08:00
hash.c
hmac.c
internal.h
khazad.c
md4.c
md5.c
michael_mic.c
proc.c
scatterwalk.c
scatterwalk.h
serpent.c
sha1.c
sha256.c
sha512.c
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
tgr192.c
twofish.c
twofish_common.c
wp512.c
xcbc.c [CRYPTO] xcbc: Make needlessly global code static 2006-12-06 18:38:51 -08:00