00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _WIZARDS_TOOLKIT_HASH_H
00019 #define _WIZARDS_TOOLKIT_HASH_H
00020
00021 #if defined(__cplusplus) || defined(c_plusplus)
00022 extern "C" {
00023 #endif
00024
00025 #include "wizard/string_.h"
00026
00027 typedef enum
00028 {
00029 UndefinedHash,
00030 NoHash,
00031 CRC64Hash,
00032 MD5Hash,
00033 SHA1Hash,
00034 SHA224Hash,
00035 SHA256Hash,
00036 SHA384Hash,
00037 SHA512Hash
00038 } HashType;
00039
00040 typedef struct _HashInfo
00041 HashInfo;
00042
00043 extern WizardExport char
00044 *GetHashHexDigest(const HashInfo *);
00045
00046 extern WizardExport const StringInfo
00047 *GetHashDigest(const HashInfo *);
00048
00049 extern WizardExport HashInfo
00050 *DestroyHashInfo(HashInfo *),
00051 *AcquireHashInfo(const HashType);
00052
00053 extern WizardExport unsigned long
00054 GetHashBlocksize(const HashInfo *),
00055 GetHashDigestsize(const HashInfo *);
00056
00057 extern WizardExport void
00058 InitializeHash(HashInfo *),
00059 FinalizeHash(HashInfo *),
00060 UpdateHash(HashInfo *,const StringInfo *);
00061
00062 #if defined(__cplusplus) || defined(c_plusplus)
00063 }
00064 #endif
00065
00066 #endif