From: Michael Tremer Date: Tue, 11 Oct 2022 11:13:36 +0000 (+0000) Subject: packages: Use binary digest function in dump X-Git-Tag: 0.9.28~264 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e0b28592a899c8c858303408dd6962b3a84ef925;p=pakfire.git packages: Use binary digest function in dump Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/package.c b/src/libpakfire/package.c index 6b2335b51..25016a5c3 100644 --- a/src/libpakfire/package.c +++ b/src/libpakfire/package.c @@ -1024,6 +1024,16 @@ static void pakfire_package_dump_add_line_date(char** str, const char* key, time pakfire_package_dump_add_line(str, key, buffer); } +static void pakfire_package_dump_add_line_hex(char** str, + const char* key, const unsigned char* buffer, const size_t length) { + char* hex = __pakfire_hexlify(buffer, length); + if (!hex) + return; + + pakfire_package_dump_add_line(str, key, hex); + free(hex); +} + static void pakfire_package_dump_add_line_size(char** str, const char* key, size_t size) { char buffer[128]; @@ -1133,25 +1143,31 @@ PAKFIRE_EXPORT char* pakfire_package_dump(struct pakfire_package* pkg, int flags if (build_id) pakfire_package_dump_add_line(&string, _("Build ID"), build_id); - enum pakfire_digest_types digest = 0; + enum pakfire_digest_types digest_type = PAKFIRE_DIGEST_UNDEFINED; + size_t digest_length = 0; // Digest - const char* hexdigest = pakfire_package_get_hexdigest(pkg, &digest); - switch (digest) { - case PAKFIRE_DIGEST_SHA2_512: - pakfire_package_dump_add_line(&string, _("SHA512 Digest"), hexdigest); - break; - - case PAKFIRE_DIGEST_SHA2_256: - pakfire_package_dump_add_line(&string, _("SHA256 Digest"), hexdigest); - break; - - case PAKFIRE_DIGEST_SHA3_512: - case PAKFIRE_DIGEST_SHA3_256: - case PAKFIRE_DIGEST_BLAKE2B512: - case PAKFIRE_DIGEST_BLAKE2S256: - case PAKFIRE_DIGEST_UNDEFINED: - break; + const unsigned char* digest = pakfire_package_get_digest(pkg, + &digest_type, &digest_length); + if (digest) { + switch (digest_type) { + case PAKFIRE_DIGEST_SHA2_512: + pakfire_package_dump_add_line_hex(&string, + _("SHA2-512 Digest"), digest, digest_length); + break; + + case PAKFIRE_DIGEST_SHA2_256: + pakfire_package_dump_add_line_hex(&string, + _("SHA2-256 Digest"), digest, digest_length); + break; + + case PAKFIRE_DIGEST_SHA3_512: + case PAKFIRE_DIGEST_SHA3_256: + case PAKFIRE_DIGEST_BLAKE2B512: + case PAKFIRE_DIGEST_BLAKE2S256: + case PAKFIRE_DIGEST_UNDEFINED: + break; + } } // Source package