From 599d91629e8d8df8fe63dd81d8a492ab293adac2 Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Thu, 11 May 2017 20:28:22 +0200 Subject: wip Signed-off-by: Florian Pritz --- lib/libalpm/signing.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'lib/libalpm/signing.c') diff --git a/lib/libalpm/signing.c b/lib/libalpm/signing.c index b7587d1c..cf93fa2b 100644 --- a/lib/libalpm/signing.c +++ b/lib/libalpm/signing.c @@ -543,11 +543,30 @@ int _alpm_gpgme_checksig(alpm_handle_t *handle, const char *path, memset(&sigdata, 0, sizeof(sigdata)); memset(&filedata, 0, sizeof(filedata)); + char* filecontent; + struct stat statbuf; + + // TODO check return code + stat(path, &statbuf); + + size_t filesize = statbuf.st_size; + + filecontent = malloc(filesize); + if (filecontent == NULL) { + printf("Failed to allocate memory\n"); + goto error; + } + + if (fread(filecontent, filesize, 1, file) != 1) { + // TODO error handling + } + gpg_err = gpgme_new(&ctx); CHECK_ERR(); /* create our necessary data objects to verify the signature */ - gpg_err = gpgme_data_new_from_stream(&filedata, file); + //gpg_err = gpgme_data_new_from_stream(&filedata, file); + gpg_err = gpgme_data_new_from_mem(&filedata, filecontent, filesize, 1); CHECK_ERR(); /* next create data object for the signature */ -- cgit v1.2.3-24-g4f1b