 81559f9ad3
			
		
	
	
	81559f9ad3
	
	
	
		
			
			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>
		
			
				
	
	
		
			24 lines
		
	
	
	
		
			716 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
	
		
			716 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _CRYPTO_TWOFISH_H
 | |
| #define _CRYPTO_TWOFISH_H
 | |
| 
 | |
| #include <linux/types.h>
 | |
| 
 | |
| #define TF_MIN_KEY_SIZE 16
 | |
| #define TF_MAX_KEY_SIZE 32
 | |
| #define TF_BLOCK_SIZE 16
 | |
| 
 | |
| struct crypto_tfm;
 | |
| 
 | |
| /* Structure for an expanded Twofish key.  s contains the key-dependent
 | |
|  * S-boxes composed with the MDS matrix; w contains the eight "whitening"
 | |
|  * subkeys, K[0] through K[7].	k holds the remaining, "round" subkeys.  Note
 | |
|  * that k[i] corresponds to what the Twofish paper calls K[i+8]. */
 | |
| struct twofish_ctx {
 | |
| 	u32 s[4][256], w[8], k[32];
 | |
| };
 | |
| 
 | |
| int __twofish_setkey(struct twofish_ctx *ctx, const u8 *key,
 | |
| 		     unsigned int key_len, u32 *flags);
 | |
| int twofish_setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int key_len);
 | |
| 
 | |
| #endif
 |