xref: /aosp_15_r20/external/libvpx/md5_utils.h (revision fb1b10ab9aebc7c7068eedab379b749d7e3900be)
1*fb1b10abSAndroid Build Coastguard Worker /*
2*fb1b10abSAndroid Build Coastguard Worker  * This is the header file for the MD5 message-digest algorithm.
3*fb1b10abSAndroid Build Coastguard Worker  * The algorithm is due to Ron Rivest.  This code was
4*fb1b10abSAndroid Build Coastguard Worker  * written by Colin Plumb in 1993, no copyright is claimed.
5*fb1b10abSAndroid Build Coastguard Worker  * This code is in the public domain; do with it what you wish.
6*fb1b10abSAndroid Build Coastguard Worker  *
7*fb1b10abSAndroid Build Coastguard Worker  * Equivalent code is available from RSA Data Security, Inc.
8*fb1b10abSAndroid Build Coastguard Worker  * This code has been tested against that, and is equivalent,
9*fb1b10abSAndroid Build Coastguard Worker  * except that you don't need to include two pages of legalese
10*fb1b10abSAndroid Build Coastguard Worker  * with every copy.
11*fb1b10abSAndroid Build Coastguard Worker  *
12*fb1b10abSAndroid Build Coastguard Worker  * To compute the message digest of a chunk of bytes, declare an
13*fb1b10abSAndroid Build Coastguard Worker  * MD5Context structure, pass it to MD5Init, call MD5Update as
14*fb1b10abSAndroid Build Coastguard Worker  * needed on buffers full of bytes, and then call MD5Final, which
15*fb1b10abSAndroid Build Coastguard Worker  * will fill a supplied 16-byte array with the digest.
16*fb1b10abSAndroid Build Coastguard Worker  *
17*fb1b10abSAndroid Build Coastguard Worker  * Changed so as no longer to depend on Colin Plumb's `usual.h'
18*fb1b10abSAndroid Build Coastguard Worker  * header definitions
19*fb1b10abSAndroid Build Coastguard Worker  *  - Ian Jackson <[email protected]>.
20*fb1b10abSAndroid Build Coastguard Worker  * Still in the public domain.
21*fb1b10abSAndroid Build Coastguard Worker  */
22*fb1b10abSAndroid Build Coastguard Worker 
23*fb1b10abSAndroid Build Coastguard Worker #ifndef VPX_MD5_UTILS_H_
24*fb1b10abSAndroid Build Coastguard Worker #define VPX_MD5_UTILS_H_
25*fb1b10abSAndroid Build Coastguard Worker 
26*fb1b10abSAndroid Build Coastguard Worker #ifdef __cplusplus
27*fb1b10abSAndroid Build Coastguard Worker extern "C" {
28*fb1b10abSAndroid Build Coastguard Worker #endif
29*fb1b10abSAndroid Build Coastguard Worker 
30*fb1b10abSAndroid Build Coastguard Worker #define md5byte unsigned char
31*fb1b10abSAndroid Build Coastguard Worker #define UWORD32 unsigned int
32*fb1b10abSAndroid Build Coastguard Worker 
33*fb1b10abSAndroid Build Coastguard Worker typedef struct MD5Context MD5Context;
34*fb1b10abSAndroid Build Coastguard Worker struct MD5Context {
35*fb1b10abSAndroid Build Coastguard Worker   UWORD32 buf[4];
36*fb1b10abSAndroid Build Coastguard Worker   UWORD32 bytes[2];
37*fb1b10abSAndroid Build Coastguard Worker   UWORD32 in[16];
38*fb1b10abSAndroid Build Coastguard Worker };
39*fb1b10abSAndroid Build Coastguard Worker 
40*fb1b10abSAndroid Build Coastguard Worker void MD5Init(struct MD5Context *context);
41*fb1b10abSAndroid Build Coastguard Worker void MD5Update(struct MD5Context *context, md5byte const *buf, unsigned len);
42*fb1b10abSAndroid Build Coastguard Worker void MD5Final(unsigned char digest[16], struct MD5Context *context);
43*fb1b10abSAndroid Build Coastguard Worker void MD5Transform(UWORD32 buf[4], UWORD32 const in[16]);
44*fb1b10abSAndroid Build Coastguard Worker 
45*fb1b10abSAndroid Build Coastguard Worker #ifdef __cplusplus
46*fb1b10abSAndroid Build Coastguard Worker }  // extern "C"
47*fb1b10abSAndroid Build Coastguard Worker #endif
48*fb1b10abSAndroid Build Coastguard Worker 
49*fb1b10abSAndroid Build Coastguard Worker #endif  // VPX_MD5_UTILS_H_
50