xref: /openbmc/linux/fs/smb/common/md4.h (revision 38c8a9a5)
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 _CIFS_MD4_H
7*38c8a9a5SSteve French #define _CIFS_MD4_H
8*38c8a9a5SSteve French 
9*38c8a9a5SSteve French #include <linux/types.h>
10*38c8a9a5SSteve French 
11*38c8a9a5SSteve French #define MD4_DIGEST_SIZE		16
12*38c8a9a5SSteve French #define MD4_HMAC_BLOCK_SIZE	64
13*38c8a9a5SSteve French #define MD4_BLOCK_WORDS		16
14*38c8a9a5SSteve French #define MD4_HASH_WORDS		4
15*38c8a9a5SSteve French 
16*38c8a9a5SSteve French struct md4_ctx {
17*38c8a9a5SSteve French 	u32 hash[MD4_HASH_WORDS];
18*38c8a9a5SSteve French 	u32 block[MD4_BLOCK_WORDS];
19*38c8a9a5SSteve French 	u64 byte_count;
20*38c8a9a5SSteve French };
21*38c8a9a5SSteve French 
22*38c8a9a5SSteve French 
23*38c8a9a5SSteve French int cifs_md4_init(struct md4_ctx *mctx);
24*38c8a9a5SSteve French int cifs_md4_update(struct md4_ctx *mctx, const u8 *data, unsigned int len);
25*38c8a9a5SSteve French int cifs_md4_final(struct md4_ctx *mctx, u8 *out);
26*38c8a9a5SSteve French 
27*38c8a9a5SSteve French #endif /* _CIFS_MD4_H */
28