| 1 |
|
| 2 | #ifndef _CRYPTO_TWOFISH_H
|
| 3 | #define _CRYPTO_TWOFISH_H
|
| 4 |
|
| 5 | #include <linux/types.h>
|
| 6 |
|
| 7 | #define TF_MIN_KEY_SIZE 16
|
| 8 | #define TF_MAX_KEY_SIZE 32
|
| 9 | #define TF_BLOCK_SIZE 16
|
| 10 |
|
| 11 | struct crypto_tfm;
|
| 12 |
|
| 13 | |
| 14 | * S-boxes composed with the MDS matrix; w contains the eight "whitening"
|
| 15 | * subkeys, K[0] through K[7]. k holds the remaining, "round" subkeys. Note
|
| 16 | * that k[i] corresponds to what the Twofish paper calls K[i+8].
|
| 17 | struct twofish_ctx {
|
| 18 | u32 s[4][256], w[8], k[32];
|
| 19 | };
|
| 20 |
|
| 21 | int __twofish_setkey(struct twofish_ctx *ctx, const u8 *key,
|
| 22 | unsigned int key_len);
|
| 23 | int twofish_setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int key_len);
|
| 24 |
|
| 25 | #endif
|