libupnpp  0.16.0
A C++ wrapper for the Portable UPnP reference library
md5.h
1 /* $OpenBSD: md5.h,v 1.3 2014/11/16 17:39:09 tedu 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 #include <stddef.h>
19 #include <stdint.h>
20 
21 #define MD5_BLOCK_LENGTH 64
22 #define MD5_DIGEST_LENGTH 16
23 
24 typedef struct MD5Context {
25  uint32_t state[4]; /* state */
26  uint64_t count; /* number of bits, mod 2^64 */
27  uint8_t buffer[MD5_BLOCK_LENGTH]; /* input buffer */
28 } MD5_CTX;
29 
30 void MD5Init(MD5_CTX *);
31 void MD5Update(MD5_CTX *, const void *, size_t);
32 void MD5Final(uint8_t [MD5_DIGEST_LENGTH], MD5_CTX *);
33 void MD5Transform(uint32_t [4], const uint8_t [MD5_BLOCK_LENGTH]);
34 
36 #include <string>
37 extern void MD5Final(std::string& digest, MD5_CTX *);
38 extern std::string& MD5String(const std::string& data, std::string& digest);
39 extern std::string& MD5HexPrint(const std::string& digest, std::string& out);
40 extern std::string& MD5HexScan(const std::string& xdigest, std::string& digest);
41 
42 #endif /* _MD5_H_ */
Definition: md5.h:24