On 06/14/2011 11:32 AM, Aurel Popirtac wrote:
---
configure.ac | 9 ++++
libaccounts-glib/Makefile.am | 4 +-
libaccounts-glib/ag-account.c | 107 ++++++++++++++++++++++++++++++++++-------
tests/check_ag.c | 24 +++++++--
4 files changed, 118 insertions(+), 26 deletions(-)
diff --git a/configure.ac b/configure.ac
index 913dbb5..ff2300f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,6 +18,15 @@ AC_SUBST(LIBACCOUNTS_LIBS)
PKG_CHECK_MODULES([CHECK], [check>= 0.9.4])
+dnl Check for aegis-crypto library.
+PKG_CHECK_MODULES(AEGISCRYPTO, aegis-crypto, have_aegiscrypto=yes)
+
+if test x$have_aegiscrypto = xyes; then
+ AC_DEFINE(HAVE_AEGISCRYPTO, 1, [Description])
Don't use tabs.
+ AC_SUBST(AEGISCRYPTO_CFLAGS)
+ AC_SUBST(AEGISCRYPTO_LIBS)
+fi
+
AC_ISC_POSIX
AC_PROG_CC
AM_PROG_CC_STDC
diff --git a/libaccounts-glib/Makefile.am b/libaccounts-glib/Makefile.am
index 9056620..f348e7b 100644
--- a/libaccounts-glib/Makefile.am
+++ b/libaccounts-glib/Makefile.am
@@ -1,8 +1,8 @@
lib_LTLIBRARIES = \
libaccounts-glib.la
-libaccounts_glib_la_CFLAGS = $(LIBACCOUNTS_CFLAGS) -Wall -Werror
-libaccounts_glib_la_LIBADD = $(LIBACCOUNTS_LIBS) -lrt
+libaccounts_glib_la_CFLAGS = $(LIBACCOUNTS_CFLAGS) $(AEGISCRYPTO_CFLAGS) -Wall
-Werror
Wrap lines at 80 characters.
+++ b/libaccounts-glib/ag-account.c
@@ -41,6 +41,10 @@
#include "ag-service.h"
#include "ag-util.h"
+#ifdef HAVE_AEGISCRYPTO
+ #include<aegis_crypto.h>
+#endif
For this to work, you also need to include config.h.
@@ -2192,26 +2207,42 @@ ag_account_sign (AgAccount *account, const gchar *key,
const gchar *token)
g_return_if_fail (data != NULL);
- /* TODO: sign data with token - depends on libmaemosec */
+ aegis_crypto_result result_sign =
+ aegis_crypto_sign (data,
+ strlen (data),
+ token,
+&signature);
+ g_free (data);
+ g_return_if_fail (result_sign == aegis_crypto_ok);
- priv = account->priv;
- sc = account_service_changes_get (priv, priv->service, TRUE);
+ aegis_crypto_signature_to_string (&signature,
+ aegis_as_base64,
+ token,
+&signature_string);
+ aegis_crypto_finish ();
No, you are using aegis_crypto just a few lines below.
sgn = g_slice_new (AgSignature);
- sgn->signature = data; //signed_data;
+ sgn->signature = g_strdup (signature_string);
+ aegis_crypto_free (signature_string);
sgn->token = g_strdup (token);
[...]
diff --git a/tests/check_ag.c b/tests/check_ag.c
index df02c0d..46de191 100644
--- a/tests/check_ag.c
+++ b/tests/check_ag.c
@@ -1427,11 +1427,11 @@ END_TEST
START_TEST(test_sign_verify_key)
{
- const gchar *key = "test_key/";
const gchar *key1 = "test_key/key1";
const gchar *key2 = "test_key/key2";
- const gchar *list_of_tokens[] = {"t", "tok", "token", NULL};
- const gchar *token = "token";
+ const gchar *list_of_tokens[] = {"libaccounts-glib0::t", "libaccounts-glib0::tok",
"libaccounts-glib0::accounts-glib-access", NULL};
Wrap at 80 chars.
@@ -1461,6 +1461,11 @@ START_TEST(test_sign_verify_key)
g_value_unset (&value);
ag_account_store (account, account_store_now_cb, TEST_STRING);
+ ok = ag_account_verify (account, key1,&reply_token);
Space after comma (also later).
Ciao,
Alberto
--
http://blog.mardy.it <-- geek in un lingua international!
_______________________________________________
MeeGo-dev mailing list
MeeGo-dev@meego.com
http://lists.meego.com/listinfo/meego-dev
http://wiki.meego.com/Mailing_list_guidelines