^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Common values for serpent algorithms
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #ifndef _CRYPTO_SERPENT_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #define _CRYPTO_SERPENT_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include <linux/types.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <linux/crypto.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define SERPENT_MIN_KEY_SIZE 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #define SERPENT_MAX_KEY_SIZE 32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #define SERPENT_EXPKEY_WORDS 132
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #define SERPENT_BLOCK_SIZE 16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) struct serpent_ctx {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) u32 expkey[SERPENT_EXPKEY_WORDS];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) int __serpent_setkey(struct serpent_ctx *ctx, const u8 *key,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) unsigned int keylen);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) int serpent_setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) void __serpent_encrypt(const void *ctx, u8 *dst, const u8 *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) void __serpent_decrypt(const void *ctx, u8 *dst, const u8 *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) #endif