From: Michael Tremer Date: Fri, 24 Sep 2021 17:03:23 +0000 (+0000) Subject: archive: Make pakfire_archive_digest available internally X-Git-Tag: 0.9.28~931 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e32162cc2566434b1daa6d3e7534375f9a61066f;p=pakfire.git archive: Make pakfire_archive_digest available internally Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/archive.c b/src/libpakfire/archive.c index 62b47fd06..93f839ff5 100644 --- a/src/libpakfire/archive.c +++ b/src/libpakfire/archive.c @@ -1873,14 +1873,14 @@ PAKFIRE_EXPORT ssize_t pakfire_archive_get_size(struct pakfire_archive* archive) return buf.st_size; } -static int pakfire_archive_calculate_digest(struct pakfire_archive* archive, - enum pakfire_digests digest, unsigned char* output, size_t* length) { +int pakfire_archive_digest(struct pakfire_archive* archive, + enum pakfire_digests type, unsigned char* digest, size_t* length) { int r = 1; const EVP_MD* md = NULL; // Select hash function - switch (digest) { + switch (type) { case PAKFIRE_DIGEST_SHA512: md = EVP_sha512(); break; @@ -1930,7 +1930,7 @@ static int pakfire_archive_calculate_digest(struct pakfire_archive* archive, } // Finalise hash function - r = EVP_DigestFinal_ex(ctx, output, (unsigned int*)length); + r = EVP_DigestFinal_ex(ctx, digest, (unsigned int*)length); if (r != 1) { ERROR(archive->pakfire, "EVP_DigestFinal_ex failed: %s\n", ERR_error_string(ERR_get_error(), NULL)); @@ -1962,8 +1962,7 @@ PAKFIRE_EXPORT int pakfire_archive_make_package(struct pakfire_archive* archive, int r; // Calculate digest - r = pakfire_archive_calculate_digest(archive, PAKFIRE_DIGEST_SHA512, - digest, &digest_length); + r = pakfire_archive_digest(archive, PAKFIRE_DIGEST_SHA512, digest, &digest_length); if (r) { ERROR(archive->pakfire, "Could not calculate digest of %s: %m\n", archive->path); return r; diff --git a/src/libpakfire/include/pakfire/archive.h b/src/libpakfire/include/pakfire/archive.h index 957265ba2..7ac8783b7 100644 --- a/src/libpakfire/include/pakfire/archive.h +++ b/src/libpakfire/include/pakfire/archive.h @@ -70,8 +70,13 @@ int pakfire_archive_make_package(struct pakfire_archive* archive, #ifdef PAKFIRE_PRIVATE +#include + int pakfire_archive_copy(struct pakfire_archive* archive, const char* path); +int pakfire_archive_digest(struct pakfire_archive* archive, + enum pakfire_digests type, unsigned char* digest, size_t* length); + struct pakfire_scriptlet* pakfire_archive_get_scriptlet( struct pakfire_archive* archive, const char* type);