]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
add solv_chksum_cmp()
authorMichael Schroeder <mls@suse.de>
Fri, 28 Aug 2015 11:20:56 +0000 (13:20 +0200)
committerMichael Schroeder <mls@suse.de>
Fri, 28 Aug 2015 11:20:56 +0000 (13:20 +0200)
To compare two checksums.

src/chksum.c
src/chksum.h

index 2f27621e03e54a4a6097674cec57230a3e6dcfba..935aea80690223f7037d854700c136ccd184b0c7 100644 (file)
@@ -259,3 +259,16 @@ solv_chksum_free(Chksum *chk, unsigned char *cp)
   return 0;
 }
 
+int
+solv_chksum_cmp(Chksum *chk, Chksum *chk2)
+{
+  int len;
+  const unsigned char *res1, *res2;
+  if (chk == chk2)
+    return 1;
+  if (!chk || !chk2 || chk->type != chk2->type)
+    return 0;
+  res1 = solv_chksum_get(chk, &len);
+  res2 = solv_chksum_get(chk2, 0);
+  return memcmp(res1, res2, len) == 0 ? 1 : 0;
+}
index 02f1504b4f71a75c0856331803967e3ffe809781..479923a476899206120221d597d45a5d0f3a25cf 100644 (file)
@@ -28,6 +28,7 @@ void *solv_chksum_free(Chksum *chk, unsigned char *cp);
 const char *solv_chksum_type2str(Id type);
 Id solv_chksum_str2type(const char *str);
 int solv_chksum_len(Id type);
+int solv_chksum_cmp(Chksum *chk, Chksum *chk2);
 
 #ifdef LIBSOLV_INTERNAL