add get_file_sha256(path) to util.c
authorkremlin <ian@kremlin.cc>
Mon, 25 Aug 2014 17:05:40 +0000 (12:05 -0500)
committerkremlin <ian@kremlin.cc>
Mon, 25 Aug 2014 17:05:40 +0000 (12:05 -0500)
src/util.c

index bb5670a18d2ebcd8762197f60ab9769cae934d9e..aea6b8db35410fa6aa61f54a8479f48c2ea7d729 100644 (file)
 
 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) {