diff options
Diffstat (limited to 'src/common.c')
-rw-r--r-- | src/common.c | 17 |
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) { |