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