162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0+ */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Common values for ARC4 Cipher Algorithm
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef _CRYPTO_ARC4_H
762306a36Sopenharmony_ci#define _CRYPTO_ARC4_H
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <linux/types.h>
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#define ARC4_MIN_KEY_SIZE	1
1262306a36Sopenharmony_ci#define ARC4_MAX_KEY_SIZE	256
1362306a36Sopenharmony_ci#define ARC4_BLOCK_SIZE		1
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_cistruct arc4_ctx {
1662306a36Sopenharmony_ci	u32 S[256];
1762306a36Sopenharmony_ci	u32 x, y;
1862306a36Sopenharmony_ci};
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciint arc4_setkey(struct arc4_ctx *ctx, const u8 *in_key, unsigned int key_len);
2162306a36Sopenharmony_civoid arc4_crypt(struct arc4_ctx *ctx, u8 *out, const u8 *in, unsigned int len);
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci#endif /* _CRYPTO_ARC4_H */
24