]> git.ipfire.org Git - pakfire.git/commitdiff
archive: Make pakfire_archive_digest available internally
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 24 Sep 2021 17:03:23 +0000 (17:03 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 24 Sep 2021 17:03:23 +0000 (17:03 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/archive.c
src/libpakfire/include/pakfire/archive.h

index 62b47fd0637eaf255217de3bfddbfb91daeb29c8..93f839ff5347b4a552606bcedf6ea93c515e7518 100644 (file)
@@ -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;
index 957265ba2153f9a8eded47252f4ec5dcbdc95c54..7ac8783b711a949490c7b34a4f7402ca74b59f2c 100644 (file)
@@ -70,8 +70,13 @@ int pakfire_archive_make_package(struct pakfire_archive* archive,
 
 #ifdef PAKFIRE_PRIVATE
 
+#include <pakfire/pakfire.h>
+
 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);