CC_MD5(3cc) 3cc CC_MD5(3cc)

CC_MD2_Init CC_MD2_Update CC_MD2_Final CC_MD2

CC_MD4_Init CC_MD4_Update CC_MD4_Final CC_MD4

CC_MD5_Init CC_MD5_Update CC_MD5_Final CC_MD5

MD2, MD4, and MD5 hash functions

#include <CommonCrypto/CommonDigest.h>

extern int
CC_MD2_Init(CC_MD2_CTX *c);

extern int
CC_MD2_Update(CC_MD2_CTX *c, const void *data, CC_LONG len);

extern int
CC_MD2_Final(unsigned char *md, CC_MD2_CTX *c);

extern unsigned char *
CC_MD2(const void *data, CC_LONG len, unsigned char *md);


extern int
CC_MD4_Init(CC_MD4_CTX *c);

extern int
CC_MD4_Update(CC_MD4_CTX *c, const void *data, CC_LONG len);

extern int
CC_MD4_Final(unsigned char *md, CC_MD4_CTX *c);

extern unsigned char *
CC_MD4(const void *data, CC_LONG len, unsigned char *md);


extern int
CC_MD5_Init(CC_MD5_CTX *c);

extern int
CC_MD5_Update(CC_MD5_CTX *c, const void *data, CC_LONG len);

extern int
CC_MD5_Final(unsigned char *md, CC_MD5_CTX *c);

extern unsigned char *
CC_MD5(const void *data, CC_LONG len, unsigned char *md);

The following functions are used to produce an hash from data:

() initializes a CC_MD2_CTX structure.

() can be called repeatedly with chunks of the message to be hashed (len bytes at data).

() places the MD2 message digest in md, which must have space for CC_MD2_DIGEST_LENGTH == 16 bytes of output, and erases the CC_MD2_CTX.

() computes the MD2 message digest of the len bytes at data and places it in md (which must have space for CC_MD2_DIGEST_LENGTH == 16 bytes of output). It returns the md pointer.

(), (), (), (), (), (), (), and () are analogous using an CC_MD4_CTX and CC_MD5_CTX structure.

MD2, MD4, and MD5 are recommended only for compatibility with existing applications. In new applications, SHA-256(or greater) should be preferred.

All routines return 1 upon success and NULL upon failure, except for the one-shot routines ( CC_MD2() , etc.), which return the pointer passed in via the md parameter.

RFC 1319, RFC 1320, RFC 1321

CC_crypto(3cc), CC_SHA(3cc), CCHmac(3cc), CCCryptor(3cc)

These functions are available in OS X 10.4 and later.

These functions provide similar functionality to the routines found in OpenSSL 0.9.6 and may use the same implementation.

April 5, 2007 Mac OS X 12