00001
00005 #ifndef RAZORBACK_HASH_H
00006 #define RAZORBACK_HASH_H
00007
00008 #include <razorback/visibility.h>
00009 #include <razorback/types.h>
00010
00011 #ifdef __cplusplus
00012 extern "C" {
00013 #endif
00014
00020 SO_PUBLIC extern bool Hash_IsEqual (const struct Hash *p_pHashA,
00021 const struct Hash *p_pHashB);
00022
00027 SO_PUBLIC extern char * Hash_ToText (const struct Hash *p_pHash);
00028
00032 SO_PUBLIC extern struct Hash * Hash_Create (void);
00033 SO_PUBLIC extern struct Hash * Hash_Create_Type (uint32_t p_iType);
00034
00039 SO_PUBLIC extern uint32_t Hash_DigestLength (struct Hash *p_pHash);
00040 SO_PUBLIC extern uint32_t Hash_BinaryLength (struct Hash *p_pHash);
00041
00046 SO_PUBLIC extern uint32_t Hash_StringLength (struct Hash *p_pHash);
00047
00054 SO_PUBLIC extern bool Hash_Update (struct Hash *p_pHash, uint8_t * p_pData,
00055 uint32_t p_iLength);
00056 SO_PUBLIC extern bool
00057 Hash_Update_File (struct Hash * p_pHash, FILE *file);
00058
00063 SO_PUBLIC extern bool Hash_Finalize (struct Hash *p_pHash);
00064
00068 SO_PUBLIC extern void Hash_Destroy (struct Hash *p_pHash);
00069
00074 SO_PUBLIC extern struct Hash * Hash_Clone (const struct Hash *p_pSource);
00075 #ifdef __cplusplus
00076 }
00077 #endif
00078 #endif // RAZORBACK_HASH_H