~ubuntu-branches/ubuntu/oneiric/libbsd/oneiric

« back to all changes in this revision

Viewing changes to include/bsd/md5.h

  • Committer: Bazaar Package Importer
  • Author(s): Guillem Jover
  • Date: 2008-07-26 22:57:42 UTC
  • Revision ID: james.westby@ubuntu.com-20080726225742-bqrhxevmabivwctv
Tags: upstream-0.0.1
ImportĀ upstreamĀ versionĀ 0.0.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*      $OpenBSD: md5.h,v 1.16 2004/06/22 01:57:30 jfb Exp $    */
 
2
 
 
3
/*
 
4
 * This code implements the MD5 message-digest algorithm.
 
5
 * The algorithm is due to Ron Rivest.  This code was
 
6
 * written by Colin Plumb in 1993, no copyright is claimed.
 
7
 * This code is in the public domain; do with it what you wish.
 
8
 *
 
9
 * Equivalent code is available from RSA Data Security, Inc.
 
10
 * This code has been tested against that, and is equivalent,
 
11
 * except that you don't need to include two pages of legalese
 
12
 * with every copy.
 
13
 */
 
14
 
 
15
#ifndef _MD5_H_
 
16
#define _MD5_H_
 
17
 
 
18
#define MD5_BLOCK_LENGTH                64
 
19
#define MD5_DIGEST_LENGTH               16
 
20
#define MD5_DIGEST_STRING_LENGTH        (MD5_DIGEST_LENGTH * 2 + 1)
 
21
 
 
22
typedef struct MD5Context {
 
23
        u_int32_t state[4];                     /* state */
 
24
        u_int64_t count;                        /* number of bits, mod 2^64 */
 
25
        u_int8_t buffer[MD5_BLOCK_LENGTH];      /* input buffer */
 
26
} MD5_CTX;
 
27
 
 
28
#include <sys/cdefs.h>
 
29
 
 
30
__BEGIN_DECLS
 
31
void     MD5Init(MD5_CTX *);
 
32
void     MD5Update(MD5_CTX *, const u_int8_t *, size_t)
 
33
                __attribute__((__bounded__(__string__,2,3)));
 
34
void     MD5Pad(MD5_CTX *);
 
35
void     MD5Final(u_int8_t [MD5_DIGEST_LENGTH], MD5_CTX *)
 
36
                __attribute__((__bounded__(__minbytes__,1,MD5_DIGEST_LENGTH)));
 
37
void     MD5Transform(u_int32_t [4], const u_int8_t [MD5_BLOCK_LENGTH])
 
38
                __attribute__((__bounded__(__minbytes__,1,4)))
 
39
                __attribute__((__bounded__(__minbytes__,2,MD5_BLOCK_LENGTH)));
 
40
char    *MD5End(MD5_CTX *, char *)
 
41
                __attribute__((__bounded__(__minbytes__,2,MD5_DIGEST_STRING_LENGTH)));
 
42
char    *MD5File(const char *, char *)
 
43
                __attribute__((__bounded__(__minbytes__,2,MD5_DIGEST_STRING_LENGTH)));
 
44
char    *MD5FileChunk(const char *, char *, off_t, off_t)
 
45
                __attribute__((__bounded__(__minbytes__,2,MD5_DIGEST_STRING_LENGTH)));
 
46
char    *MD5Data(const u_int8_t *, size_t, char *)
 
47
                __attribute__((__bounded__(__string__,1,2)))
 
48
                __attribute__((__bounded__(__minbytes__,3,MD5_DIGEST_STRING_LENGTH)));
 
49
__END_DECLS
 
50
 
 
51
#endif /* _MD5_H_ */