+ memcpy(dest, src, SHA1_HASH_SIZE);
+}
+
+static inline void
+random_hash(u8 hash[SHA1_HASH_SIZE])
+{
+ randomize_byte_array(hash, SHA1_HASH_SIZE);
+}
+
+static inline bool
+hashes_equal(const u8 h1[SHA1_HASH_SIZE], const u8 h2[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);
+}
+
+static inline void
+print_hash(const u8 hash[SHA1_HASH_SIZE], FILE *out)
+{
+ print_byte_field(hash, SHA1_HASH_SIZE, out);
+}
+
+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);