fixed logic/math bugs in set-time, still broken with GNOME tools
[systembsd.git] / 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) {