summaryrefslogtreecommitdiff
path: root/src/hash.h
blob: 571ae02f7d3c26629ecbbd21c10538d5a95677ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef _HASH_H_
#define _HASH_H_

#include <string>

namespace Multihash {
	namespace Hex {
		std::string hex(char* bin, int length);
		std::string hex(int bin);
	}
	
	class Hash {
		private:
			std::string digest_str;
			Hash* next;
		protected:
			virtual void hash_update(const char* data, int length);
			virtual std::string hash_digest();
		public:
			Hash(Hash* n = 0);
			void update(std::string data);
			void _update(const char* data, int length);
			std::string digest();
	};
	
	void _hash_file(int fileno, Hash* hash);
}

#endif // _HASH_H_