ultimatepp/uppsrc/Core/Hash.h
cxl e30a5a0c08 OutStream, TeeStream, Md5Stream, Sha1Stream, Crc32Stream, MD5, SHA1, CRC32, optimized C++ parser, CodeEditor annotations
git-svn-id: svn://ultimatepp.org/upp/trunk@487 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2008-09-28 18:15:28 +00:00

58 lines
1.4 KiB
C++

#ifndef _Core_Hash_h_
#define _Core_Hash_h_
/* MD5 context. */
typedef struct {
dword state[4]; /* state (ABCD) */
dword count[2]; /* number of bits, modulo 2^64 (lsb first) */
unsigned char buffer[64]; /* input buffer */
} MD5_CTX;
class Md5Stream : public OutStream {
MD5_CTX context;
virtual void Out(const void *data, dword size);
public:
void Finish(byte *hash16);
String FinishString();
String FinishStringS();
Md5Stream();
~Md5Stream();
};
void MD5(byte *hash16, const void *data, dword size);
void MD5(byte *hash16, const String& data);
String MD5String(const void *data, dword size);
String MD5String(const String& data);
String MD5StringS(const void *data, dword size);
String MD5StringS(const String& data);
class Sha1Stream : public OutStream {
dword state[5];
byte buffer[64];
int pos;
dword size;
virtual void Out(const void *data, dword size);
void Cleanup();
public:
void Finish(byte *hash20);
String FinishString();
String FinishStringS();
Sha1Stream();
~Sha1Stream();
};
void SHA1(byte *hash20, const void *data, dword size);
void SHA1(byte *hash20, const String& s);
String SHA1String(const void *data, dword size);
String SHA1String(const String& data);
String SHA1StringS(const void *data, dword size);
String SHA1StringS(const String& data);
#endif