1*5151fb12Sdarrenm /* 2*5151fb12Sdarrenm * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 3*5151fb12Sdarrenm * Use is subject to license terms. 4*5151fb12Sdarrenm */ 5*5151fb12Sdarrenm 6*5151fb12Sdarrenm #ifndef __MD4_H 7*5151fb12Sdarrenm #define __MD4_H 8*5151fb12Sdarrenm 9*5151fb12Sdarrenm /* 10*5151fb12Sdarrenm * MD4C.C - RSA Data Security, Inc., MD4 message-digest algorithm 11*5151fb12Sdarrenm */ 12*5151fb12Sdarrenm 13*5151fb12Sdarrenm /* 14*5151fb12Sdarrenm * Copyright (C) 1990-2, RSA Data Security, Inc. All rights reserved. 15*5151fb12Sdarrenm * 16*5151fb12Sdarrenm * License to copy and use this software is granted provided that it 17*5151fb12Sdarrenm * is identified as the "RSA Data Security, Inc. MD4 Message-Digest 18*5151fb12Sdarrenm * Algorithm" in all material mentioning or referencing this software 19*5151fb12Sdarrenm * or this function. 20*5151fb12Sdarrenm * 21*5151fb12Sdarrenm * License is also granted to make and use derivative works provided 22*5151fb12Sdarrenm * that such works are identified as "derived from the RSA Data 23*5151fb12Sdarrenm * Security, Inc. MD4 Message-Digest Algorithm" in all material 24*5151fb12Sdarrenm * mentioning or referencing the derived work. 25*5151fb12Sdarrenm * 26*5151fb12Sdarrenm * RSA Data Security, Inc. makes no representations concerning either 27*5151fb12Sdarrenm * the merchantability of this software or the suitability of this 28*5151fb12Sdarrenm * software for any particular purpose. It is provided "as is" 29*5151fb12Sdarrenm * without express or implied warranty of any kind. 30*5151fb12Sdarrenm * 31*5151fb12Sdarrenm * These notices must be retained in any copies of any part of this 32*5151fb12Sdarrenm * documentation and/or software. 33*5151fb12Sdarrenm */ 34*5151fb12Sdarrenm 35*5151fb12Sdarrenm #ifdef __cplusplus 36*5151fb12Sdarrenm extern "C" { 37*5151fb12Sdarrenm #endif 38*5151fb12Sdarrenm 39*5151fb12Sdarrenm #include <sys/types.h> 40*5151fb12Sdarrenm 41*5151fb12Sdarrenm #define MD4_DIGEST_LENGTH 16 42*5151fb12Sdarrenm 43*5151fb12Sdarrenm /* MD4 context. */ 44*5151fb12Sdarrenm typedef struct { 45*5151fb12Sdarrenm uint32_t state[4]; /* state (ABCD) */ 46*5151fb12Sdarrenm uint32_t count[2]; /* number of bits, modulo 2^64 (lsb first) */ 47*5151fb12Sdarrenm unsigned char buffer[64]; /* input buffer */ 48*5151fb12Sdarrenm } MD4_CTX; 49*5151fb12Sdarrenm 50*5151fb12Sdarrenm void MD4Init(MD4_CTX *); 51*5151fb12Sdarrenm void MD4Update(MD4_CTX *, const void *_RESTRICT_KYWD, size_t); 52*5151fb12Sdarrenm void MD4Final(void *, MD4_CTX *); 53*5151fb12Sdarrenm 54*5151fb12Sdarrenm #ifdef __cplusplus 55*5151fb12Sdarrenm } 56*5151fb12Sdarrenm #endif 57*5151fb12Sdarrenm 58*5151fb12Sdarrenm #endif /* __MD4_H */ 59