summaryrefslogtreecommitdiff
path: root/openbsd-compat/md5.h
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2015-01-14 21:48:18 +1100
committerDamien Miller <djm@mindrot.org>2015-01-14 21:48:18 +1100
commit81bfbd0bd35683de5d7f2238b985e5f8150a9180 (patch)
tree7e025046e72e28902068704eb49e3ffa998c4375 /openbsd-compat/md5.h
parent54924b53af15ccdcbb9f89984512b5efef641a31 (diff)
support --without-openssl at configure time
Disables and removes dependency on OpenSSL. Many features don't work and the set of crypto options is greatly restricted. This will only work on system with native arc4random or /dev/urandom. Considered highly experimental for now.
Diffstat (limited to 'openbsd-compat/md5.h')
-rw-r--r--openbsd-compat/md5.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/openbsd-compat/md5.h b/openbsd-compat/md5.h
new file mode 100644
index 000000000..c83c19dca
--- /dev/null
+++ b/openbsd-compat/md5.h
@@ -0,0 +1,51 @@
1/* $OpenBSD: md5.h,v 1.17 2012/12/05 23:19:57 deraadt 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#ifndef WITH_OPENSSL
19
20#define MD5_BLOCK_LENGTH 64
21#define MD5_DIGEST_LENGTH 16
22#define MD5_DIGEST_STRING_LENGTH (MD5_DIGEST_LENGTH * 2 + 1)
23
24typedef struct MD5Context {
25 u_int32_t state[4]; /* state */
26 u_int64_t count; /* number of bits, mod 2^64 */
27 u_int8_t buffer[MD5_BLOCK_LENGTH]; /* input buffer */
28} MD5_CTX;
29
30void MD5Init(MD5_CTX *);
31void MD5Update(MD5_CTX *, const u_int8_t *, size_t)
32 __attribute__((__bounded__(__string__,2,3)));
33void MD5Pad(MD5_CTX *);
34void MD5Final(u_int8_t [MD5_DIGEST_LENGTH], MD5_CTX *)
35 __attribute__((__bounded__(__minbytes__,1,MD5_DIGEST_LENGTH)));
36void MD5Transform(u_int32_t [4], const u_int8_t [MD5_BLOCK_LENGTH])
37 __attribute__((__bounded__(__minbytes__,1,4)))
38 __attribute__((__bounded__(__minbytes__,2,MD5_BLOCK_LENGTH)));
39char *MD5End(MD5_CTX *, char *)
40 __attribute__((__bounded__(__minbytes__,2,MD5_DIGEST_STRING_LENGTH)));
41char *MD5File(const char *, char *)
42 __attribute__((__bounded__(__minbytes__,2,MD5_DIGEST_STRING_LENGTH)));
43char *MD5FileChunk(const char *, char *, off_t, off_t)
44 __attribute__((__bounded__(__minbytes__,2,MD5_DIGEST_STRING_LENGTH)));
45char *MD5Data(const u_int8_t *, size_t, char *)
46 __attribute__((__bounded__(__string__,1,2)))
47 __attribute__((__bounded__(__minbytes__,3,MD5_DIGEST_STRING_LENGTH)));
48
49#endif /* !WITH_OPENSSL */
50
51#endif /* _MD5_H_ */