]> git.ipfire.org Git - people/ms/pakfire.git/blobdiff - src/libpakfire/packager.c
packager: Add pakfire features for all used digests
[people/ms/pakfire.git] / src / libpakfire / packager.c
index 5c2287db4a39f2f7905538c1f7cd791e7cde5253..43ac98961c9ee48160e48522a8e0223e81c40ae4 100644 (file)
@@ -57,8 +57,12 @@ struct pakfire_packager {
        // Payload
        struct pakfire_filelist* filelist;
 
+       // Scriptlets
        struct pakfire_scriptlet** scriptlets;
        unsigned int num_scriptlets;
+
+       // Digests
+       unsigned int digests;
 };
 
 static void pakfire_packager_free(struct pakfire_packager* packager) {
@@ -99,6 +103,9 @@ int pakfire_packager_create(struct pakfire_packager** packager,
        // Store a reference to the package
        p->pkg = pakfire_package_ref(pkg);
 
+       // Use the default digests
+       p->digests = PAKFIRE_PACKAGER_DIGESTS;
+
        // Set build host
        pakfire_package_set_build_host(pkg, pakfire_hostname());
 
@@ -116,8 +123,18 @@ int pakfire_packager_create(struct pakfire_packager** packager,
                goto ERROR;
 
        // Add a requirement for the cryptographic algorithms we are using
-       pakfire_package_add_requires(p->pkg, "pakfire(Digest-SHA512)");
-       pakfire_package_add_requires(p->pkg, "pakfire(Digest-SHA256)");
+       if (p->digests & PAKFIRE_DIGEST_SHA3_512)
+               pakfire_package_add_requires(p->pkg, "pakfire(Digest-SHA3-512)");
+       if (p->digests & PAKFIRE_DIGEST_SHA3_256)
+               pakfire_package_add_requires(p->pkg, "pakfire(Digest-SHA3-256)");
+       if (p->digests & PAKFIRE_DIGEST_BLAKE2B512)
+               pakfire_package_add_requires(p->pkg, "pakfire(Digest-BLAKE2b512)");
+       if (p->digests & PAKFIRE_DIGEST_BLAKE2S256)
+               pakfire_package_add_requires(p->pkg, "pakfire(Digest-BLAKE2s256)");
+       if (p->digests & PAKFIRE_DIGEST_SHA2_512)
+               pakfire_package_add_requires(p->pkg, "pakfire(Digest-SHA2-512)");
+       if (p->digests & PAKFIRE_DIGEST_SHA2_256)
+               pakfire_package_add_requires(p->pkg, "pakfire(Digest-SHA2-256)");
 
        *packager = p;