xref: /openbmc/linux/fs/smb/common/arc4.h (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1*38c8a9a5SSteve French /* SPDX-License-Identifier: GPL-2.0+ */
2*38c8a9a5SSteve French /*
3*38c8a9a5SSteve French  * Common values for ARC4 Cipher Algorithm
4*38c8a9a5SSteve French  */
5*38c8a9a5SSteve French 
6*38c8a9a5SSteve French #ifndef _CRYPTO_ARC4_H
7*38c8a9a5SSteve French #define _CRYPTO_ARC4_H
8*38c8a9a5SSteve French 
9*38c8a9a5SSteve French #include <linux/types.h>
10*38c8a9a5SSteve French 
11*38c8a9a5SSteve French #define ARC4_MIN_KEY_SIZE	1
12*38c8a9a5SSteve French #define ARC4_MAX_KEY_SIZE	256
13*38c8a9a5SSteve French #define ARC4_BLOCK_SIZE		1
14*38c8a9a5SSteve French 
15*38c8a9a5SSteve French struct arc4_ctx {
16*38c8a9a5SSteve French 	u32 S[256];
17*38c8a9a5SSteve French 	u32 x, y;
18*38c8a9a5SSteve French };
19*38c8a9a5SSteve French 
20*38c8a9a5SSteve French int cifs_arc4_setkey(struct arc4_ctx *ctx, const u8 *in_key, unsigned int key_len);
21*38c8a9a5SSteve French void cifs_arc4_crypt(struct arc4_ctx *ctx, u8 *out, const u8 *in, unsigned int len);
22*38c8a9a5SSteve French 
23*38c8a9a5SSteve French #endif /* _CRYPTO_ARC4_H */
24