summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2006-01-12 13:01:12 +0000
committerFrederic Peters <fpeters@entrouvert.com>2006-01-12 13:01:12 +0000
commit1660c51d505d8b30d7fbd99a19dc72477ebb83ae (patch)
tree3cbec1f3e791307c481925816a15f998cdeef76c
parent27655edc316acd1b3c95240836d0307705a5507e (diff)
duplicate key to fix consecutive calls to xmlsec
-rw-r--r--lasso/id-ff/provider.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/lasso/id-ff/provider.c b/lasso/id-ff/provider.c
index 291d0542..335a3268 100644
--- a/lasso/id-ff/provider.c
+++ b/lasso/id-ff/provider.c
@@ -348,7 +348,7 @@ static LassoNodeClass *parent_class = NULL;
xmlSecKey*
lasso_provider_get_public_key(LassoProvider *provider)
{
- return provider->private_data->public_key;
+ return xmlSecKeyDuplicate(provider->private_data->public_key);
}
static void
@@ -871,7 +871,8 @@ int lasso_provider_verify_signature(LassoProvider *provider,
return -2;
if (format == LASSO_MESSAGE_FORMAT_QUERY) {
- return lasso_query_verify_signature(message, provider->private_data->public_key);
+ return lasso_query_verify_signature(message,
+ lasso_provider_get_public_key(provider));
}
if (format == LASSO_MESSAGE_FORMAT_BASE64) {
@@ -941,7 +942,7 @@ int lasso_provider_verify_signature(LassoProvider *provider,
dsigCtx = xmlSecDSigCtxCreate(keys_mngr);
if (keys_mngr == NULL) {
- dsigCtx->signKey = provider->private_data->public_key;
+ dsigCtx->signKey = lasso_provider_get_public_key(provider);
if (dsigCtx->signKey == NULL) {
/* XXX: should this be detected on lasso_provider_new ? */
xmlSecDSigCtxDestroy(dsigCtx);