xref: /haiku/src/libs/compat/openbsd_wlan/crypto/md5.h (revision 4a55cc230cf7566cadcbb23b1928eefff8aea9a2)
1 /*	$OpenBSD: md5.h,v 1.3 2014/11/16 17:39:09 tedu Exp $	*/
2 
3 /*
4  * This code implements the MD5 message-digest algorithm.
5  * The algorithm is due to Ron Rivest.  This code was
6  * written by Colin Plumb in 1993, no copyright is claimed.
7  * This code is in the public domain; do with it what you wish.
8  *
9  * Equivalent code is available from RSA Data Security, Inc.
10  * This code has been tested against that, and is equivalent,
11  * except that you don't need to include two pages of legalese
12  * with every copy.
13  */
14 
15 #ifndef _MD5_H_
16 #define _MD5_H_
17 
18 #define	MD5_BLOCK_LENGTH		64
19 #define	MD5_DIGEST_LENGTH		16
20 
21 typedef struct MD5Context {
22 	u_int32_t state[4];			/* state */
23 	u_int64_t count;			/* number of bits, mod 2^64 */
24 	u_int8_t buffer[MD5_BLOCK_LENGTH];	/* input buffer */
25 } MD5_CTX;
26 
27 __BEGIN_DECLS
28 void	 MD5Init(MD5_CTX *);
29 void	 MD5Update(MD5_CTX *, const void *, size_t)
30 		__attribute__((__bounded__(__string__,2,3)));
31 void	 MD5Final(u_int8_t [MD5_DIGEST_LENGTH], MD5_CTX *)
32 		__attribute__((__bounded__(__minbytes__,1,MD5_DIGEST_LENGTH)));
33 void	 MD5Transform(u_int32_t [4], const u_int8_t [MD5_BLOCK_LENGTH])
34 		__attribute__((__bounded__(__minbytes__,1,4)))
35 		__attribute__((__bounded__(__minbytes__,2,MD5_BLOCK_LENGTH)));
36 __END_DECLS
37 
38 #endif /* _MD5_H_ */
39