X-Git-Url: https://uglyman.kremlin.cc/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2Futil.c;h=aea6b8db35410fa6aa61f54a8479f48c2ea7d729;hb=5ef520164eac5ee8f2be263ea5caa962ec5503f3;hp=bb5670a18d2ebcd8762197f60ab9769cae934d9e;hpb=defc2e6786915f3e3a159dc994ef98f8364cbe21;p=systembsd.git diff --git a/src/util.c b/src/util.c index bb5670a..aea6b8d 100644 --- a/src/util.c +++ b/src/util.c @@ -26,6 +26,26 @@ const gint MAX_TOKENS = 20; +/* return must be g_free()'d */ +gchar *get_file_sha256(const gchar *path) { + + gchar *checksum; + GMappedFile *file; + GBytes *data; + GError *err = NULL; + + file = g_mapped_file_new(path, FALSE, &err); + + if(file) { + + data = g_mapped_file_get_bytes(file); + g_mapped_file_unref(file); + checksum = g_compute_checksum_for_bytes(G_CHECKSUM_SHA256, data); + return checksum; + } else + return NULL; +} + /* return must be g_free()'d */ gchar *config_get(const gchar *path, gchar *key) {