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 <cstddef>
19#include <cstdint>
20#include <string>
21
22namespace MedocUtils {
23
24#define MD5_BLOCK_LENGTH 64
25#define MD5_DIGEST_LENGTH 16
26
27typedef struct MD5Context {
28 uint32_t state[4]; /* state */
29 uint64_t count; /* number of bits, mod 2^64 */
30 uint8_t buffer[MD5_BLOCK_LENGTH]; /* input buffer */
31} MD5_CTX;
32
33void MD5Init(MD5_CTX *);
34void MD5Update(MD5_CTX *, const void *, size_t);
35void MD5Final(uint8_t [MD5_DIGEST_LENGTH], MD5_CTX *);
36void MD5Transform(uint32_t [4], const uint8_t [MD5_BLOCK_LENGTH]);
37
39extern void MD5Final(std::string& digest, MD5_CTX *);
40extern std::string& MD5String(const std::string& data, std::string& digest);
41extern std::string& MD5HexPrint(const std::string& digest, std::string& out);
42extern std::string& MD5HexScan(const std::string& xdigest, std::string& digest);
43extern std::string MD5Hex(const std::string& data);
44
45} // End namespace MedocUtils
46
47using namespace MedocUtils;
48
49#endif /* _MD5_H_ */
Definition md5.h:27