Jussi Kivilinna
7f4e3e3fa5
crypto: serpent - cleanup checkpatch errors and warnings
...
Do checkpatch fixes before rename to keep rename patch simple and clean.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-30 16:12:43 +08:00
Jussi Kivilinna
18482053f9
crypto: serpent-sse2 - add lrw support
...
Patch adds LRW support for serpent-sse2 by using lrw_crypt(). Patch has been
tested with tcrypt and automated filesystem tests.
Tcrypt benchmarks results (serpent-sse2/serpent_generic speed ratios):
Benchmark results with tcrypt:
Intel Celeron T1600 (x86_64) (fam:6, model:15, step:13):
size lrw-enc lrw-dec
16B 1.00x 0.96x
64B 1.01x 1.01x
256B 3.01x 2.97x
1024B 3.39x 3.33x
8192B 3.35x 3.33x
AMD Phenom II 1055T (x86_64) (fam:16, model:10):
size lrw-enc lrw-dec
16B 0.98x 1.03x
64B 1.01x 1.04x
256B 2.10x 2.14x
1024B 2.28x 2.33x
8192B 2.30x 2.33x
Intel Atom N270 (i586):
size lrw-enc lrw-dec
16B 0.97x 0.97x
64B 1.47x 1.50x
256B 1.72x 1.69x
1024B 1.88x 1.81x
8192B 1.84x 1.79x
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-21 16:13:24 +08:00
Jussi Kivilinna
251496dbfc
crypto: serpent - add 4-way parallel i586/SSE2 assembler implementation
...
Patch adds i586/SSE2 assembler implementation of serpent cipher. Assembler
functions crypt data in four block chunks.
Patch has been tested with tcrypt and automated filesystem tests.
Tcrypt benchmarks results (serpent-sse2/serpent_generic speed ratios):
Intel Atom N270:
size ecb-enc ecb-dec cbc-enc cbc-dec ctr-enc ctr-dec
16 0.95x 1.12x 1.02x 1.07x 0.97x 0.98x
64 1.73x 1.82x 1.08x 1.82x 1.72x 1.73x
256 2.08x 2.00x 1.04x 2.07x 1.99x 2.01x
1024 2.28x 2.18x 1.05x 2.23x 2.17x 2.20x
8192 2.28x 2.13x 1.05x 2.23x 2.18x 2.20x
Full output:
http://koti.mbnet.fi/axh/kernel/crypto/atom-n270/serpent-generic.txt
http://koti.mbnet.fi/axh/kernel/crypto/atom-n270/serpent-sse2.txt
Userspace test results:
Encryption/decryption of sse2-i586 vs generic on Intel Atom N270:
encrypt: 2.35x
decrypt: 2.54x
Encryption/decryption of sse2-i586 vs generic on AMD Phenom II:
encrypt: 1.82x
decrypt: 2.51x
Encryption/decryption of sse2-i586 vs generic on Intel Xeon E7330:
encrypt: 2.99x
decrypt: 3.48x
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-21 16:13:23 +08:00
Jussi Kivilinna
937c30d7f5
crypto: serpent - add 8-way parallel x86_64/SSE2 assembler implementation
...
Patch adds x86_64/SSE2 assembler implementation of serpent cipher. Assembler
functions crypt data in eigth block chunks (two 4 block chunk SSE2 operations
in parallel to improve performance on out-of-order CPUs). Glue code is based
on one from AES-NI implementation, so requests from irq context are redirected
to cryptd.
v2:
- add missing include of linux/module.h
(appearently crypto.h used to include module.h, which changed for 3.2 by
commit 7c926402a7 )
Patch has been tested with tcrypt and automated filesystem tests.
Tcrypt benchmarks results (serpent-sse2/serpent_generic speed ratios):
AMD Phenom II 1055T (fam:16, model:10):
size ecb-enc ecb-dec cbc-enc cbc-dec ctr-enc ctr-dec
16B 1.03x 1.01x 1.03x 1.05x 1.00x 0.99x
64B 1.00x 1.01x 1.02x 1.04x 1.02x 1.01x
256B 2.34x 2.41x 0.99x 2.43x 2.39x 2.40x
1024B 2.51x 2.57x 1.00x 2.59x 2.56x 2.56x
8192B 2.50x 2.54x 1.00x 2.55x 2.57x 2.57x
Intel Celeron T1600 (fam:6, model:15, step:13):
size ecb-enc ecb-dec cbc-enc cbc-dec ctr-enc ctr-dec
16B 0.97x 0.97x 1.01x 1.01x 1.01x 1.02x
64B 1.00x 1.00x 1.00x 1.02x 1.01x 1.01x
256B 3.41x 3.35x 1.00x 3.39x 3.42x 3.44x
1024B 3.75x 3.72x 0.99x 3.74x 3.75x 3.75x
8192B 3.70x 3.68x 0.99x 3.68x 3.69x 3.69x
Full output:
http://koti.mbnet.fi/axh/kernel/crypto/phenom-ii-1055t/serpent-generic.txt
http://koti.mbnet.fi/axh/kernel/crypto/phenom-ii-1055t/serpent-sse2.txt
http://koti.mbnet.fi/axh/kernel/crypto/celeron-t1600/serpent-generic.txt
http://koti.mbnet.fi/axh/kernel/crypto/celeron-t1600/serpent-sse2.txt
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-21 16:13:23 +08:00
Jiri Kosina
2290c0d06d
Merge branch 'master' into for-next
...
Sync with Linus tree to have 157550ff ("mtd: add GPMI-NAND driver
in the config and Makefile") as I have patch depending on that one.
2011-11-13 20:55:53 +01:00
Paul Bolle
4da669a2e3
crypto: drop selects of bogus Kconfig symbol
...
Commits 2cdc6899a8 ("crypto: ghash - Add GHASH digest algorithm for
GCM") and 0e1227d356 ("crypto: ghash - Add PCLMULQDQ accelerated
implementation") added "select CRYPTO_SHASH" to two entries. That
Kconfig symbol doesn't exist. These two selects are nops. Drop them.
Signed-off-by: Paul Bolle <pebolle@tiscali.nl >
Signed-off-by: Jiri Kosina <jkosina@suse.cz >
2011-11-13 20:49:02 +01:00
Linus Torvalds
42a0ddcd48
Merge git://github.com/herbertx/crypto
...
* git://github.com/herbertx/crypto:
crypto: algapi - Fix build problem with NET disabled
crypto: user - Fix rwsem leak in crypto_user
2011-11-11 23:40:02 -02:00
Herbert Xu
3acc84739d
crypto: algapi - Fix build problem with NET disabled
...
The report functions use NLA_PUT so we need to ensure that NET
is enabled.
Reported-by: Luis Henriques <henrix@camandro.org >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-11 06:57:06 +08:00
Valdis.Kletnieks@vt.edu
d19978f587
crypto: fix typo in crypto/Kconfig
...
Fix a typo in the Kconfig file help text.
Signed-off-by: Valdis Kletnieks <valdis.kletnieks@vt.edu >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 20:03:51 +08:00
Steffen Klassert
ce3fd840f5
crypto: Unlink and free instances when deleted
...
We leak the crypto instance when we unregister an instance with
crypto_del_alg(). Therefore we introduce crypto_unregister_instance()
to unlink the crypto instance from the template's instances list and
to free the recources of the instance properly.
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 12:04:06 +08:00
Jarod Wilson
505172e11f
crypto: ansi_cprng - enforce key != seed in fips mode
...
Apparently, NIST is tightening up its requirements for FIPS validation
with respect to RNGs. Its always been required that in fips mode, the
ansi cprng not be fed key and seed material that was identical, but
they're now interpreting FIPS 140-2, section AS07.09 as requiring that
the implementation itself must enforce the requirement. Easy fix, we
just do a memcmp of key and seed in fips_cprng_reset and call it a day.
v2: Per Neil's advice, ensure slen is sufficiently long before we
compare key and seed to avoid looking at potentially unallocated mem.
CC: Stephan Mueller <smueller@atsec.com >
CC: Steve Grubb <sgrubb@redhat.com >
Signed-off-by: Jarod Wilson <jarod@redhat.com >
Acked-by: Neil Horman <nhorman@tuxdriver.com >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 12:04:06 +08:00
Jussi Kivilinna
131f754161
crypto: tcrypt - add xts(twofish) tests
...
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 11:57:56 +08:00
Jussi Kivilinna
aed265b9fe
crypto: testmgr - add xts(twofish) test vectors
...
Add test vectors for xts(twofish). These are generated from xts(twofish) test vectors.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 11:57:56 +08:00
Jussi Kivilinna
5209c07ac3
crypto: tcrypt - add xts(serpent) tests
...
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 11:57:56 +08:00
Jussi Kivilinna
18be20b944
crypto: testmgr - add xts(serpent) test vectors
...
Add test vectors for xts(serpent). These are generated from xts(aes) test vectors.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 11:57:56 +08:00
Jussi Kivilinna
ce0045561e
crypto: xts: add interface for parallelized cipher implementations
...
Add xts_crypt() function that can be used by cipher implementations that can
benefit from parallelized cipher operations.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 11:56:06 +08:00
Jussi Kivilinna
f9d2691fc9
crypto: xts - use blocksize constant
...
XTS has fixed blocksize of 16. Define XTS_BLOCK_SIZE and use in place of
crypto_cipher_blocksize().
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 11:53:32 +08:00
Jussi Kivilinna
81559f9ad3
crypto: twofish-x86_64-3way - add lrw support
...
Patch adds LRW support for twofish-x86_64-3way by using lrw_crypt(). Patch has
been tested with tcrypt and automated filesystem tests.
Tcrypt benchmarks results (twofish-3way/twofish-asm speed ratios):
Intel Celeron T1600 (fam:6, model:15, step:13):
size lrw-enc lrw-dec
16B 0.99x 1.00x
64B 1.17x 1.17x
256B 1.26x 1.27x
1024B 1.30x 1.31x
8192B 1.31x 1.32x
AMD Phenom II 1055T (fam:16, model:10):
size lrw-enc lrw-dec
16B 1.06x 1.01x
64B 1.08x 1.14x
256B 1.19x 1.20x
1024B 1.21x 1.22x
8192B 1.23x 1.24x
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 11:53:32 +08:00
Jussi Kivilinna
bee3a90ef5
crypto: tcrypt - add lrw(twofish) tests
...
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 11:53:32 +08:00
Jussi Kivilinna
0b2a155106
crypto: testmgr - add lrw(twofish) test vectors
...
Add test vectors for lrw(twofish). These are generated from lrw(aes) test vectors.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 11:53:31 +08:00
Jussi Kivilinna
87aae4bfb2
crypto: tcrypt - add lrw(serpent) tests
...
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 11:52:19 +08:00
Jussi Kivilinna
d7bfc0fa31
crypto: testmgr - add lrw(serpent) test vectors
...
Add test vectors for lrw(serpent). These are generated from lrw(aes) test vectors.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 11:52:19 +08:00
Jussi Kivilinna
6c2205b8ff
crypto: lrw - add interface for parallelized cipher implementions
...
Export gf128mul table initialization routines and add lrw_crypt() function
that can be used by cipher implementations that can benefit from parallelized
cipher operations.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 11:50:31 +08:00
Jussi Kivilinna
171c02048f
crypto: lrw - split gf128mul table initialization from setkey
...
Split gf128mul initialization from setkey so that it can be used outside
lrw-module.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 11:43:01 +08:00
Jussi Kivilinna
4660720df6
crypto: lrw - use blocksize constant
...
LRW has fixed blocksize of 16. Define LRW_BLOCK_SIZE and use in place of
crypto_cipher_blocksize().
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi >
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au >
2011-11-09 11:43:01 +08:00