summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2011-05-17 13:42:44 +0200
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2011-05-19 17:54:16 +0200
commite14652e7a41332f954b72dd2fbc6f9962970e8c3 (patch)
treec493c80424b3d2c6e5bfdfe905228b5788b8f767
parent298e6a50e24ced200cb71707b7af423c50f961d0 (diff)
downloadlasso-e14652e7a41332f954b72dd2fbc6f9962970e8c3.tar.gz
lasso-e14652e7a41332f954b72dd2fbc6f9962970e8c3.tar.xz
lasso-e14652e7a41332f954b72dd2fbc6f9962970e8c3.zip
[utils] add macros to append to and release a list of xmlSecKey*
[core] make lasso_provider_verify_query_signature use lasso_provider_verify_signature
-rw-r--r--lasso/id-ff/provider.c20
-rw-r--r--lasso/utils.h9
2 files changed, 10 insertions, 19 deletions
diff --git a/lasso/id-ff/provider.c b/lasso/id-ff/provider.c
index 28763a8c..163d73bc 100644
--- a/lasso/id-ff/provider.c
+++ b/lasso/id-ff/provider.c
@@ -1543,25 +1543,7 @@ lasso_provider_get_encryption_sym_key_type(const LassoProvider *provider)
int
lasso_provider_verify_query_signature(LassoProvider *provider, const char *message)
{
- xmlSecKey *provider_public_key;
- int rc = 0;
-
- lasso_bad_param(PROVIDER, provider);
- lasso_check_good_rc(lasso_provider_try_loading_public_key(provider, &provider_public_key, TRUE));
- g_return_val_if_fail(provider_public_key, LASSO_PROVIDER_ERROR_MISSING_PUBLIC_KEY);
-
- switch (lasso_provider_get_protocol_conformance(provider)) {
- case LASSO_PROTOCOL_LIBERTY_1_0:
- case LASSO_PROTOCOL_LIBERTY_1_1:
- case LASSO_PROTOCOL_LIBERTY_1_2:
- return lasso_query_verify_signature(message, provider_public_key);
- case LASSO_PROTOCOL_SAML_2_0:
- return lasso_saml2_query_verify_signature(message, provider_public_key);
- default:
- return LASSO_ERROR_UNIMPLEMENTED;
- }
-cleanup:
- return rc;
+ return lasso_provider_verify_signature(provider, message, "", LASSO_MESSAGE_FORMAT_QUERY);
}
/**
diff --git a/lasso/utils.h b/lasso/utils.h
index 341a440e..17b4ba10 100644
--- a/lasso/utils.h
+++ b/lasso/utils.h
@@ -144,6 +144,9 @@
#define lasso_release_list_of_xml_node_list(dest) \
lasso_release_list_of_full(dest, xmlFreeNodeList)
+#define lasso_release_list_of_sec_key(dest) \
+ lasso_release_list_of_full(dest, xmlSecKeyDestroy)
+
#define lasso_release_xml_node(node) \
lasso_release_full2(node, xmlFreeNode, xmlNodePtr)
@@ -426,6 +429,12 @@
} \
}
+#define lasso_list_add_new_sec_key(dest, src) \
+ { \
+ xmlSecKey *__tmp_src = (src); \
+ lasso_list_add_non_null(dest, __tmp_src); \
+ }
+
/* List element removal */
#define lasso_list_remove_gobject(list, gobject) \
do { void *__tmp = gobject; GList **__tmp_list = &(list); \