From 984759ea671cc4fa2ed047c17777ea1dfaa65544 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Mon, 10 Oct 2011 17:26:09 +0200 Subject: [id-wsf discovery] provider can now contain multiple public keys, only consider the first key for id-wsf token generation ID-WSF never contemplated the fact that sometimes key roll-over happend (SubjectConfirmation can only containg on ds:KeyInfo), whatever... --- lasso/id-wsf/discovery.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lasso/id-wsf/discovery.c b/lasso/id-wsf/discovery.c index eb00e98c..9ff59fa8 100644 --- a/lasso/id-wsf/discovery.c +++ b/lasso/id-wsf/discovery.c @@ -917,12 +917,13 @@ lasso_discovery_build_key_info_node(LassoDiscovery *discovery, const gchar *prov LassoDsKeyValue *key_value = NULL; LassoProvider *provider = NULL; xmlSecKeyInfoCtx *ctx = NULL; - xmlSecKey *public_key = NULL; xmlDoc *doc = NULL; xmlNode *key_info_node = NULL; xmlNode *xmlnode = NULL; xmlXPathContext *xpathCtx = NULL; xmlXPathObject *xpathObj = NULL; + GList *public_keys = NULL; + xmlSecKey *public_key = NULL; lasso_return_val_if_invalid_param(DISCOVERY, discovery, NULL); g_return_val_if_fail(providerID != NULL, NULL); @@ -933,7 +934,11 @@ lasso_discovery_build_key_info_node(LassoDiscovery *discovery, const gchar *prov return NULL; } - public_key = lasso_provider_get_public_key(provider); + public_keys = lasso_provider_get_public_keys(provider); + if (public_keys == NULL) { + return NULL; + } + public_key = (xmlSecKey*)public_keys->data; if (public_key == NULL) { return NULL; } -- cgit