From 8b0605afac1bfe8e1e67af2936f4f6a315c539c3 Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Fri, 28 Aug 2015 13:20:56 +0200 Subject: [PATCH] add solv_chksum_cmp() To compare two checksums. --- src/chksum.c | 13 +++++++++++++ src/chksum.h | 1 + 2 files changed, 14 insertions(+) diff --git a/src/chksum.c b/src/chksum.c index 2f27621e0..935aea806 100644 --- a/src/chksum.c +++ b/src/chksum.c @@ -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; +} diff --git a/src/chksum.h b/src/chksum.h index 02f1504b4..479923a47 100644 --- a/src/chksum.h +++ b/src/chksum.h @@ -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