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