about summary refs log tree commit diff stats
path: root/src/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common.c')
-rw-r--r--src/common.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/common.c b/src/common.c
index 314e5440..260dec1a 100644
--- a/src/common.c
+++ b/src/common.c
@@ -31,6 +31,8 @@
 #include <curl/curl.h>
 #include <curl/easy.h>
 #include <glib.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/crypto.h>
 
 #include "log.h"
 #include "common.h"
@@ -388,6 +390,21 @@ generate_unique_id(char *prefix)
     return result;
 }
 
+char *
+sha1_hash(char *str)
+{
+    gnutls_hash_hd_t dig;
+    gnutls_digest_algorithm_t algorithm = GNUTLS_DIG_SHA1;
+
+    gnutls_hash_init(&dig, algorithm);
+    gnutls_hash(dig, str, strlen(str));
+
+    unsigned char output[20];
+    gnutls_hash_output(dig, output);
+
+    return g_base64_encode(output, sizeof(output));
+}
+
 int
 cmp_win_num(gconstpointer a, gconstpointer b)
 {