diff options
Diffstat (limited to 'libmd5/md5.h')
-rw-r--r-- | libmd5/md5.h | 79 |
1 files changed, 42 insertions, 37 deletions
diff --git a/libmd5/md5.h b/libmd5/md5.h index 8e85a8a..03f8ff6 100644 --- a/libmd5/md5.h +++ b/libmd5/md5.h @@ -1,47 +1,52 @@ -/* MD5.H - header file for MD5C.C +/* + * This is the header file for the MD5 message-digest algorithm. + * The algorithm is due to Ron Rivest. This code was + * written by Colin Plumb in 1993, no copyright is claimed. + * This code is in the public domain; do with it what you wish. + * + * Equivalent code is available from RSA Data Security, Inc. + * This code has been tested against that, and is equivalent, + * except that you don't need to include two pages of legalese + * with every copy. + * + * To compute the message digest of a chunk of bytes, declare an + * MD5Context structure, pass it to MD5Init, call MD5Update as + * needed on buffers full of bytes, and then call MD5Final, which + * will fill a supplied 16-byte array with the digest. + * + * Changed so as no longer to depend on Colin Plumb's `usual.h' + * header definitions; now uses stuff from dpkg's config.h + * - Ian Jackson <ian@chiark.greenend.org.uk>. + * Still in the public domain. */ -/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All - rights reserved. - - License to copy and use this software is granted provided that it - is identified as the "RSA Data Security, Inc. MD5 Message-Digest - Algorithm" in all material mentioning or referencing this software - or this function. - - License is also granted to make and use derivative works provided - that such works are identified as "derived from the RSA Data - Security, Inc. MD5 Message-Digest Algorithm" in all material - mentioning or referencing the derived work. - - RSA Data Security, Inc. makes no representations concerning either - the merchantability of this software or the suitability of this - software for any particular purpose. It is provided "as is" - without express or implied warranty of any kind. - - These notices must be retained in any copies of any part of this - documentation and/or software. - */ - -#ifndef _MD5_H_ -#define _MD5_H_ +#ifndef MD5_H +#define MD5_H #ifdef __cplusplus extern "C" { #endif #include "md5_loc.h" - -/* MD5 context. */ -typedef struct { - UINT4 state[4]; /* state (ABCD) */ - UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */ - unsigned char buffer[64]; /* input buffer */ -} MD5_CTX; - -void MD5Init(MD5_CTX *ctx); -void MD5Update (MD5_CTX *ctx, const unsigned char *buf, unsigned int len); -void MD5Final (MD5_CTX *ctx, unsigned char sig[16]); + +#define md5byte unsigned char + +//#if SIZEOF_UNSIGNED_LONG==4 +//# define UWORD32 unsigned long +//#elif SIZEOF_UNSIGNED_INT==4 +//#else +//# error I do not know what to use for a UWORD32. +//#endif + +struct MD5Context { + UWORD32 buf[4]; + UWORD32 bytes[2]; + UWORD32 in[16]; +}; + +void MD5Init(struct MD5Context *context); +void MD5Update(struct MD5Context *context, md5byte const *buf, unsigned len); +void MD5Final(unsigned char digest[16], struct MD5Context *context); void MD5Buffer (const unsigned char *buf,unsigned int len,unsigned char sig[16]); void MD5SigToString(unsigned char sig[16],char *str,int len); @@ -49,4 +54,4 @@ void MD5SigToString(unsigned char sig[16],char *str,int len); } #endif -#endif +#endif /* !MD5_H */ |