/***********************************************************************//* *//* Objective Caml *//* *//* Xavier Leroy, projet Cristal, INRIA Rocquencourt *//* *//* Copyright 1999 Institut National de Recherche en Informatique et *//* en Automatique. All rights reserved. This file is distributed *//* under the terms of the GNU Library General Public License, with *//* the special exception on linking described in file ../LICENSE. *//* *//***********************************************************************//* $Id: md5.h,v 1.13 2005/09/22 14:21:50 xleroy Exp $ *//* MD5 message digest */#ifndef CAML_MD5_H#define CAML_MD5_H#include <caml/mlvalues.h>/*CAMLextern value caml_md5_string (value str, value ofs, value len);CAMLextern value caml_md5_chan (value vchan, value len);*/struct MD5Context { uint32 buf[4]; uint32 bits[2]; unsigned char in[64];};static inline void semi_crc32(unsigned char *buf, int len, uint32 *crc);void md5crc(const unsigned *buffer, int len);CAMLprim value caml_md5crc(value buffer, value len);CAMLprim value caml_md5crc_finalize(value unit)CAMLprim value caml_MD5Init (void);void caml_MD5Update (unsigned char *buf, int len);void caml_MD5Final (unsigned char *digest, struct MD5Context *ctx);void caml_MD5Transform (uint32 *buf, uint32 *in);#endif /* CAML_MD5_H */