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;
}
// 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));
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;
#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);