masqmail

annotate src/md5/md5.h @ 239:31ee44f45787

refactored alias.c heavily especially substituted the loop-based alias_expand() with a recursive approach. Now alias_expand() wraps alias_one() which recursively expands aliases. In principle the ``data processing'' is the same but now it's clearer structured and thus easier to understand IMO. The loop might have been faster but I don't care for speed -- the most simple solution is the best. It's fast enough, that is sufficient.
author markus schnalke <meillo@marmaro.de>
date Mon, 25 Oct 2010 15:35:28 -0300
parents e0938c511243
children
rev   line source
meillo@209 1 /*
meillo@209 2 * This is an OpenSSL-compatible implementation of the RSA Data Security,
meillo@209 3 * Inc. MD5 Message-Digest Algorithm (RFC 1321).
meillo@209 4 *
meillo@209 5 * Written by Solar Designer <solar at openwall.com> in 2001, and placed
meillo@209 6 * in the public domain. There's absolutely no warranty.
meillo@209 7 *
meillo@209 8 * See md5.c for more information.
meillo@0 9 */
meillo@0 10
meillo@209 11 #ifdef HAVE_OPENSSL
meillo@209 12 #include <openssl/md5.h>
meillo@209 13 #elif !defined(_MD5_H)
meillo@209 14 #define _MD5_H
meillo@0 15
meillo@209 16 /* Any 32-bit or wider unsigned integer data type will do */
meillo@221 17 /* Note: Using an int will work on most systems and might perform much better */
meillo@210 18 typedef unsigned long MD5_u32plus;
meillo@0 19
meillo@0 20 typedef struct {
meillo@209 21 MD5_u32plus lo, hi;
meillo@209 22 MD5_u32plus a, b, c, d;
meillo@209 23 unsigned char buffer[64];
meillo@209 24 MD5_u32plus block[16];
meillo@0 25 } MD5_CTX;
meillo@0 26
meillo@209 27 extern void MD5_Init(MD5_CTX *ctx);
meillo@209 28 extern void MD5_Update(MD5_CTX *ctx, void *data, unsigned long size);
meillo@209 29 extern void MD5_Final(unsigned char *result, MD5_CTX *ctx);
meillo@209 30
meillo@209 31 #endif