[Telepathy-commits] [telepathy-salut/master] caps_hash_compute: use GCheckSum instead of our own implementation of sha1

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Thu Feb 26 11:20:21 PST 2009


---
 src/salut-caps-hash.c |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/salut-caps-hash.c b/src/salut-caps-hash.c
index f0aca1f..9a8a598 100644
--- a/src/salut-caps-hash.c
+++ b/src/salut-caps-hash.c
@@ -35,7 +35,6 @@
 #include "salut-capabilities.h"
 #include "salut-caps-hash.h"
 #include "salut-self.h"
-#include "sha1/sha1-util.h"
 
 typedef struct _DataFormField DataFormField;
 
@@ -139,6 +138,8 @@ salut_presence_free_xep0115_hash (
   g_ptr_array_free (dataforms, TRUE);
 }
 
+#define SHA1_HASH_SIZE 20
+
 static gchar *
 caps_hash_compute (
     GPtrArray *features,
@@ -146,7 +147,9 @@ caps_hash_compute (
     GPtrArray *dataforms)
 {
   GString *s;
-  gchar sha1[SHA1_HASH_SIZE];
+  GChecksum *checksum;
+  guchar sha1[SHA1_HASH_SIZE];
+  gsize out_len = SHA1_HASH_SIZE;
   guint i;
   gchar *encoded;
 
@@ -198,10 +201,13 @@ caps_hash_compute (
         }
     }
 
-  sha1_bin (s->str, s->len, (guchar *) sha1);
+  checksum = g_checksum_new (G_CHECKSUM_SHA1);
+  g_checksum_update (checksum, (guchar *) s->str, s->len);
+  g_checksum_get_digest (checksum, sha1, &out_len);
   g_string_free (s, TRUE);
+  g_checksum_free (checksum);
 
-  encoded = g_base64_encode ((guchar *) sha1, SHA1_HASH_SIZE);
+  encoded = g_base64_encode (sha1, SHA1_HASH_SIZE);
 
   return encoded;
 }
-- 
1.5.6.5




More information about the telepathy-commits mailing list