diff options
| author | Jelmer Vernooij <jelmer@samba.org> | 2006-12-05 21:40:17 +0100 | 
|---|---|---|
| committer | Jelmer Vernooij <jelmer@samba.org> | 2006-12-05 21:40:17 +0100 | 
| commit | d8d63a27dcfd38245927af95521b6f8918b23795 (patch) | |
| tree | 75e4675b12970db6645c087ab75ec35c1b1ba9fd /lib/md5.h | |
| parent | f4aa393b221dcc709f189ed04945ee67e956872a (diff) | |
| parent | 55078f59c8e9f52f1d10bed55511e5e58ec3e53b (diff) | |
[merge] wilmer
Diffstat (limited to 'lib/md5.h')
| -rw-r--r-- | lib/md5.h | 85 | 
1 files changed, 85 insertions, 0 deletions
| diff --git a/lib/md5.h b/lib/md5.h new file mode 100644 index 00000000..f24f2ff1 --- /dev/null +++ b/lib/md5.h @@ -0,0 +1,85 @@ +/* +  Copyright (C) 1999 Aladdin Enterprises.  All rights reserved. +   +  This software is provided 'as-is', without any express or implied +  warranty.  In no event will the authors be held liable for any damages +  arising from the use of this software. + +  Permission is granted to anyone to use this software for any purpose, +  including commercial applications, and to alter it and redistribute it +  freely, subject to the following restrictions: + +  1. The origin of this software must not be misrepresented; you must not +     claim that you wrote the original software. If you use this software +     in a product, an acknowledgment in the product documentation would be +     appreciated but is not required. +  2. Altered source versions must be plainly marked as such, and must not be +     misrepresented as being the original software. +  3. This notice may not be removed or altered from any source distribution. + +  L. Peter Deutsch +  ghost@aladdin.com + + */ +/* +  Independent implementation of MD5 (RFC 1321). + +  This code implements the MD5 Algorithm defined in RFC 1321. +  It is derived directly from the text of the RFC and not from the +  reference implementation. + +  The original and principal author of md5.h is L. Peter Deutsch +  <ghost@aladdin.com>.  Other authors are noted in the change history +  that follows (in reverse chronological order): + +  2004-03-09 Jelmer Vernooij add G_MODULE_EXPORT for Bitlbee +  1999-11-04 lpd Edited comments slightly for automatic TOC extraction. +  1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5); +	added conditionalization for C++ compilation from Martin +	Purschke <purschke@bnl.gov>. +  1999-05-03 lpd Original version. + */ + +#ifndef md5_INCLUDED +#  define md5_INCLUDED + +#include <glib.h> +#include <gmodule.h> + +/* + * This code has some adaptations for the Ghostscript environment, but it + * will compile and run correctly in any environment with 8-bit chars and + * 32-bit ints.  Specifically, it assumes that if the following are + * defined, they have the same meaning as in Ghostscript: P1, P2, P3, + * ARCH_IS_BIG_ENDIAN. + */ + +typedef unsigned char md5_byte_t; /* 8-bit byte */ +typedef unsigned int md5_word_t; /* 32-bit word */ + +/* Define the state of the MD5 Algorithm. */ +typedef struct md5_state_s { +    md5_word_t count[2];	/* message length in bits, lsw first */ +    md5_word_t abcd[4];		/* digest buffer */ +    md5_byte_t buf[64];		/* accumulate block */ +} md5_state_t; + +#ifdef __cplusplus +extern "C"  +{ +#endif + +/* Initialize the algorithm. */ +G_MODULE_EXPORT void md5_init(md5_state_t *pms); + +/* Append a string to the message. */ +G_MODULE_EXPORT void md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes); + +/* Finish the message and return the digest. */ +G_MODULE_EXPORT void md5_finish(md5_state_t *pms, md5_byte_t digest[16]); + +#ifdef __cplusplus +}  /* end extern "C" */ +#endif + +#endif /* md5_INCLUDED */ | 
