1 /* 2 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 3 * Use is subject to license terms. 4 */ 5 6 /* 7 * Cleaned up version of the md5.h header file from RFC 1321. 8 */ 9 10 /* 11 * MD5.H - header file for MD5C.C 12 */ 13 14 /* 15 * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All 16 * rights reserved. 17 * 18 * License to copy and use this software is granted provided that it 19 * is identified as the "RSA Data Security, Inc. MD5 Message-Digest 20 * Algorithm" in all material mentioning or referencing this software 21 * or this function. 22 * 23 * License is also granted to make and use derivative works provided 24 * that such works are identified as "derived from the RSA Data 25 * Security, Inc. MD5 Message-Digest Algorithm" in all material 26 * mentioning or referencing the derived work. 27 * 28 * RSA Data Security, Inc. makes no representations concerning either 29 * the merchantability of this software or the suitability of this 30 * software for any particular purpose. It is provided "as is" 31 * without express or implied warranty of any kind. 32 * 33 * These notices must be retained in any copies of any part of this 34 * documentation and/or software. 35 */ 36 37 #ifndef _SYS_MD5_H 38 #define _SYS_MD5_H 39 40 #include <sys/types.h> /* for uint_* */ 41 42 /* 43 * Definitions for MD5 hashing functions, conformant to RFC 1321 44 */ 45 46 #ifdef __cplusplus 47 extern "C" { 48 #endif 49 50 #define MD5_DIGEST_LENGTH 16 51 52 /* MD5 context. */ 53 typedef struct { 54 uint32_t state[4]; /* state (ABCD) */ 55 uint32_t count[2]; /* number of bits, modulo 2^64 (lsb first) */ 56 union { 57 uint8_t buf8[64]; /* undigested input */ 58 uint32_t buf32[16]; /* realigned input */ 59 } buf_un; 60 } MD5_CTX; 61 62 void MD5Init(MD5_CTX *); 63 void MD5Update(MD5_CTX *, const void *, unsigned int); 64 void MD5Final(void *, MD5_CTX *); 65 66 #ifdef __cplusplus 67 } 68 #endif 69 70 #endif /* _SYS_MD5_H */ 71