xref: /openbmc/linux/include/crypto/serpent.h (revision 8dd06ef34b6e2f41b29fbf5fc1663780f2524285)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2bc83b829SJussi Kivilinna /*
3bc83b829SJussi Kivilinna  * Common values for serpent algorithms
4bc83b829SJussi Kivilinna  */
5bc83b829SJussi Kivilinna 
6bc83b829SJussi Kivilinna #ifndef _CRYPTO_SERPENT_H
7bc83b829SJussi Kivilinna #define _CRYPTO_SERPENT_H
8bc83b829SJussi Kivilinna 
9bc83b829SJussi Kivilinna #include <linux/types.h>
10bc83b829SJussi Kivilinna #include <linux/crypto.h>
11bc83b829SJussi Kivilinna 
12bc83b829SJussi Kivilinna #define SERPENT_MIN_KEY_SIZE		  0
13bc83b829SJussi Kivilinna #define SERPENT_MAX_KEY_SIZE		 32
14bc83b829SJussi Kivilinna #define SERPENT_EXPKEY_WORDS		132
15bc83b829SJussi Kivilinna #define SERPENT_BLOCK_SIZE		 16
16bc83b829SJussi Kivilinna 
17bc83b829SJussi Kivilinna struct serpent_ctx {
18bc83b829SJussi Kivilinna 	u32 expkey[SERPENT_EXPKEY_WORDS];
19bc83b829SJussi Kivilinna };
20bc83b829SJussi Kivilinna 
2118482053SJussi Kivilinna int __serpent_setkey(struct serpent_ctx *ctx, const u8 *key,
2218482053SJussi Kivilinna 		     unsigned int keylen);
23bc83b829SJussi Kivilinna int serpent_setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen);
24bc83b829SJussi Kivilinna 
25*9c1e8836SKees Cook void __serpent_encrypt(const void *ctx, u8 *dst, const u8 *src);
26*9c1e8836SKees Cook void __serpent_decrypt(const void *ctx, u8 *dst, const u8 *src);
27bc83b829SJussi Kivilinna 
28bc83b829SJussi Kivilinna #endif
29