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