]> git.ipfire.org Git - pakfire.git/commitdiff
digests: Move pakfire_digest_length() from util
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 24 Aug 2022 16:01:03 +0000 (16:01 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 24 Aug 2022 16:01:03 +0000 (16:01 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/digest.c
src/libpakfire/include/pakfire/digest.h
src/libpakfire/include/pakfire/util.h
src/libpakfire/util.c

index 02cee06e93c284f0f8390fce21d49ef0578252ac..2eb12818f9f0fc42f5cc68fb400a88438a4a4969 100644 (file)
 #include <pakfire/pakfire.h>
 #include <pakfire/private.h>
 
+size_t pakfire_digest_length(const enum pakfire_digest_types digest) {
+       switch (digest) {
+               case PAKFIRE_DIGEST_SHA512:
+                       return 64;
+
+               case PAKFIRE_DIGEST_SHA256:
+                       return 32;
+
+               case PAKFIRE_DIGEST_UNDEFINED:
+                       return 0;
+       }
+
+       return 0;
+}
+
+static int pakfire_digests_check_length(struct pakfire* pakfire,
+               const enum pakfire_digest_types type, const size_t length) {
+       const size_t l = pakfire_digest_length(type);
+
+       // Return if length matches
+       if (length == l)
+               return 0;
+
+       // Otherwise set an error
+       ERROR(pakfire, "Digest is of an unexpected length\n");
+       errno = ENOMSG;
+
+       return 1;
+}
+
 static EVP_MD_CTX* __pakfire_digest_setup(struct pakfire* pakfire, const EVP_MD* md) {
        EVP_MD_CTX* ctx = NULL;
        int r;
index df6a3b44652eba0b1a036682d5e765012ca86cba..1baee3be63de3150c2eee65a6b355bcb9766838d 100644 (file)
@@ -45,6 +45,8 @@ struct pakfire_digests {
        unsigned char sha256[SHA256_DIGEST_LENGTH];
 };
 
+size_t pakfire_digest_length(const enum pakfire_digest_types digest);
+
 int pakfire_digests_compute_from_file(struct pakfire* pakfire,
        struct pakfire_digests* digests, int flags, FILE* f);
 
index e7080dbb77fccf739d68de8e49570539fc903f8e..97d514ed2b335897c6ca341e53d30f1f207f4896 100644 (file)
@@ -73,10 +73,6 @@ char* pakfire_generate_uuid(void);
 
 int pakfire_tty_is_noninteractive(void);
 
-// Digests
-
-size_t pakfire_digest_length(enum pakfire_digest_types digest);
-
 // Archive Stuff
 
 int pakfire_archive_copy_data(struct pakfire* pakfire,
index 569de67cc7050168661fe0dcb17fb9c3a0180efd..640e027258832c7422fda247e58fb532cae03c08 100644 (file)
@@ -470,23 +470,6 @@ int pakfire_rmtree(const char* path, int flags) {
        return r;
 }
 
-// Digests
-
-size_t pakfire_digest_length(enum pakfire_digest_types digest) {
-       switch (digest) {
-               case PAKFIRE_DIGEST_SHA512:
-                       return 64;
-
-               case PAKFIRE_DIGEST_SHA256:
-                       return 32;
-
-               case PAKFIRE_DIGEST_UNDEFINED:
-                       return 0;
-       }
-
-       return 0;
-}
-
 // Archive Stuff
 
 int pakfire_archive_copy_data(struct pakfire* pakfire,