#define SHA1_HASH_SIZE 20
+extern const u8 zero_hash[SHA1_HASH_SIZE];
+
static inline void copy_hash(u8 dest[SHA1_HASH_SIZE],
const u8 src[SHA1_HASH_SIZE])
{
{
return memcmp(h1, h2, SHA1_HASH_SIZE) == 0;
}
+static inline int hashes_cmp(const u8 h1[SHA1_HASH_SIZE],
+ const u8 h2[SHA1_HASH_SIZE])
+{
+ return memcmp(h1, h2, SHA1_HASH_SIZE);
+}
/* Prints a hash code field. */
-static inline void print_hash(const u8 hash[])
+static inline void print_hash(const u8 hash[SHA1_HASH_SIZE])
{
print_byte_field(hash, SHA1_HASH_SIZE);
}
+static inline bool is_zero_hash(const u8 hash[SHA1_HASH_SIZE])
+{
+ if (hash)
+ for (u8 i = 0; i < SHA1_HASH_SIZE / 4; i++)
+ if (((u32*)hash)[i])
+ return false;
+ return true;
+}
+
+static inline void zero_out_hash(u8 hash[SHA1_HASH_SIZE])
+{
+ memset(hash, 0, SHA1_HASH_SIZE);
+}
+
#ifdef WITH_LIBCRYPTO