125839Speter/* See md5.c for explanation and copyright information.  */
225839Speter
354441Speter/*
454441Speter * $FreeBSD$
554441Speter */
654441Speter
717721Speter#ifndef MD5_H
817721Speter#define MD5_H
917721Speter
1054441Speter#ifdef __FreeBSD__
1154441Speter#define	cvs_MD5Context	MD5Context
1254441Speter#define	cvs_MD5Init	MD5Init
1354441Speter#define	cvs_MD5Update	MD5Update
1454441Speter#define	cvs_MD5Final	MD5Final
1554441Speter#define	cvs_MD5Transform MD5Transform
1654441Speter#include <sys/md5.h>
1754441Speter#else
1854441Speter
1925839Speter/* Unlike previous versions of this code, uint32 need not be exactly
2025839Speter   32 bits, merely 32 bits or more.  Choosing a data type which is 32
2125839Speter   bits instead of 64 is not important; speed is considerably more
2225839Speter   important.  ANSI guarantees that "unsigned long" will be big enough,
2325839Speter   and always using it seems to have few disadvantages.  */
2454427Spetertypedef unsigned long cvs_uint32;
2517721Speter
2654427Speterstruct cvs_MD5Context {
2754427Speter	cvs_uint32 buf[4];
2854427Speter	cvs_uint32 bits[2];
2917721Speter	unsigned char in[64];
3017721Speter};
3117721Speter
3254427Spetervoid cvs_MD5Init PROTO ((struct cvs_MD5Context *context));
3354427Spetervoid cvs_MD5Update PROTO ((struct cvs_MD5Context *context,
3454427Speter			   unsigned char const *buf, unsigned len));
3554427Spetervoid cvs_MD5Final PROTO ((unsigned char digest[16],
3654427Speter			  struct cvs_MD5Context *context));
3754427Spetervoid cvs_MD5Transform PROTO ((cvs_uint32 buf[4], const unsigned char in[64]));
3817721Speter
3954441Speter#endif
4054441Speter
4117721Speter#endif /* !MD5_H */
42