18482053f9
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>
28 lines
673 B
C
28 lines
673 B
C
/*
|
|
* Common values for serpent algorithms
|
|
*/
|
|
|
|
#ifndef _CRYPTO_SERPENT_H
|
|
#define _CRYPTO_SERPENT_H
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/crypto.h>
|
|
|
|
#define SERPENT_MIN_KEY_SIZE 0
|
|
#define SERPENT_MAX_KEY_SIZE 32
|
|
#define SERPENT_EXPKEY_WORDS 132
|
|
#define SERPENT_BLOCK_SIZE 16
|
|
|
|
struct serpent_ctx {
|
|
u32 expkey[SERPENT_EXPKEY_WORDS];
|
|
};
|
|
|
|
int __serpent_setkey(struct serpent_ctx *ctx, const u8 *key,
|
|
unsigned int keylen);
|
|
int serpent_setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen);
|
|
|
|
void __serpent_encrypt(struct serpent_ctx *ctx, u8 *dst, const u8 *src);
|
|
void __serpent_decrypt(struct serpent_ctx *ctx, u8 *dst, const u8 *src);
|
|
|
|
#endif
|