X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=include%2Fwimlib%2Fsha1.h;h=76e6d5e1d7082136e7614e7f6b5e5ed678868f6c;hp=1f7c50f70b35112457eda3b8b6bed01897b3a2d6;hb=30ba1eb06caca0b20a47d8dd75a117c82d730da7;hpb=2e44f90c21db693058037f83f92ad136c818ce9d diff --git a/include/wimlib/sha1.h b/include/wimlib/sha1.h index 1f7c50f7..76e6d5e1 100644 --- a/include/wimlib/sha1.h +++ b/include/wimlib/sha1.h @@ -22,17 +22,16 @@ 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]) +static inline int +hashes_cmp(const u8 h1[SHA1_HASH_SIZE], const u8 h2[SHA1_HASH_SIZE]) { - return memcmp(h1, h2, SHA1_HASH_SIZE) == 0; + return memcmp(h1, h2, SHA1_HASH_SIZE); } -static inline int -hashes_cmp(const u8 h1[SHA1_HASH_SIZE], - const u8 h2[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); + return !hashes_cmp(h1, h2); } static inline void @@ -42,22 +41,19 @@ print_hash(const u8 hash[SHA1_HASH_SIZE], FILE *out) } static inline bool -is_zero_hash(const u8 hash[SHA1_HASH_SIZE]) +is_zero_hash(const u8 *hash) { - if (hash) - for (u8 i = 0; i < SHA1_HASH_SIZE / 4; i++) - if (((const u32*)hash)[i]) - return false; - return true; + if (!hash) + return true; + return hashes_equal(hash, zero_hash); } static inline void zero_out_hash(u8 hash[SHA1_HASH_SIZE]) { - memset(hash, 0, SHA1_HASH_SIZE); + copy_hash(hash, zero_hash); } - #ifdef WITH_LIBCRYPTO #include