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 #pragma ident "%Z%%M% %I% %E% SMI" 41 42 #include <sys/types.h> /* for uint_* */ 43 44 /* 45 * Definitions for MD5 hashing functions, conformant to RFC 1321 46 */ 47 48 #ifdef __cplusplus 49 extern "C" { 50 #endif 51 52 #define MD5_DIGEST_LENGTH 16 53 54 /* MD5 context. */ 55 typedef struct { 56 uint32_t state[4]; /* state (ABCD) */ 57 uint32_t count[2]; /* number of bits, modulo 2^64 (lsb first) */ 58 union { 59 uint8_t buf8[64]; /* undigested input */ 60 uint32_t buf32[16]; /* realigned input */ 61 } buf_un; 62 } MD5_CTX; 63 64 void MD5Init(MD5_CTX *); 65 void MD5Update(MD5_CTX *, const void *, unsigned int); 66 void MD5Final(void *, MD5_CTX *); 67 68 #ifdef __cplusplus 69 } 70 #endif 71 72 #endif /* _SYS_MD5_H */ 73