/* File: MD5.h Written by: Colin Plumb Copyright: Copyright 1998 by Apple Computer, Inc., all rights reserved. Change History (most recent first): <8> 10/06/98 ap Changed to compile with C++. To Do: */ /* Copyright (c) 1998 Apple Computer, Inc. All rights reserved. * * NOTICE: USE OF THE MATERIALS ACCOMPANYING THIS NOTICE IS SUBJECT * TO THE TERMS OF THE SIGNED "FAST ELLIPTIC ENCRYPTION (FEE) REFERENCE * SOURCE CODE EVALUATION AGREEMENT" BETWEEN APPLE COMPUTER, INC. AND THE * ORIGINAL LICENSEE THAT OBTAINED THESE MATERIALS FROM APPLE COMPUTER, * INC. ANY USE OF THESE MATERIALS NOT PERMITTED BY SUCH AGREEMENT WILL * EXPOSE YOU TO LIABILITY. *************************************************************************** * * MD5.h * derived and used without need for permission from public domain source */ #ifndef _CK_MD5_H_ #define _CK_MD5_H_ #include "ckconfig.h" #if CRYPTKIT_MD5_ENABLE #if CRYPTKIT_LIBMD_DIGEST /* * In this case we use the MD5 implementation in libSystem. */ #include <CommonCrypto/CommonDigest.h> typedef CC_MD5_CTX MD5Context; #define MD5Init(c) CC_MD5_Init(c) #define MD5Update(c, d, l) CC_MD5_Update(c, d, l) #define MD5Final(c, d) CC_MD5_Final(d, c) #define MD5_DIGEST_SIZE CC_MD5_DIGEST_LENGTH #else /* ! CRYPTKIT_LIBMD_DIGEST */ /* Our own private implementation */ #ifdef __cplusplus extern "C" { #endif #ifdef __alpha typedef unsigned int UINT32; #elif defined (macintosh) || defined (__ppc__) typedef unsigned int UINT32; #else typedef unsigned long UINT32; #endif typedef struct { UINT32 buf[4]; UINT32 bits[2]; // bits[0] is low 32 bits of bit count unsigned char in[64]; } MD5Context; #define MD5_DIGEST_SIZE 16 /* in bytes */ void MD5Init(MD5Context *context); void MD5Update(MD5Context *context, unsigned char const *buf, unsigned len); void MD5Final(MD5Context *context, unsigned char *digest); /* * This is needed to make RSAREF happy on some MS-DOS compilers. */ typedef MD5Context MD5_CTX; #ifdef __cplusplus } #endif #endif /* CRYPTKIT_LIBMD_DIGEST */ #endif /* CRYPTKIT_MD5_ENABLE */ #endif /*_CK_MD5_H_*/