summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lasso/id-ff/server.c16
-rw-r--r--lasso/id-ff/server.h2
2 files changed, 18 insertions, 0 deletions
diff --git a/lasso/id-ff/server.c b/lasso/id-ff/server.c
index 29bada7c..66f182a1 100644
--- a/lasso/id-ff/server.c
+++ b/lasso/id-ff/server.c
@@ -33,6 +33,7 @@
struct _LassoServerPrivate
{
gboolean dispose_has_run;
+ xmlSecKey *encryption_private_key;
};
/*****************************************************************************/
@@ -121,6 +122,21 @@ lasso_server_destroy(LassoServer *server)
lasso_node_destroy(LASSO_NODE(server));
}
+gboolean
+lasso_set_encryption_private_key(LassoServer *server, gchar *file_name)
+{
+ LassoPemFileType file_type;
+
+ server->private_data->encryption_private_key = NULL;
+ file_type = lasso_get_pem_file_type(file_name);
+ if (file_type == LASSO_PEM_FILE_TYPE_PRIVATE_KEY) {
+ server->private_data->encryption_private_key = xmlSecCryptoAppKeyLoad(file_name,
+ xmlSecKeyDataFormatPem, NULL, NULL, NULL);
+ }
+
+ return (server->private_data->encryption_private_key != NULL);
+}
+
/*****************************************************************************/
/* private methods */
diff --git a/lasso/id-ff/server.h b/lasso/id-ff/server.h
index dee38269..da84d5ef 100644
--- a/lasso/id-ff/server.h
+++ b/lasso/id-ff/server.h
@@ -96,6 +96,8 @@ LASSO_EXPORT LassoProvider* lasso_server_get_provider(LassoServer *server, gchar
LASSO_EXPORT LassoDiscoServiceInstance* lasso_server_get_service(LassoServer *server,
gchar *serviceType);
+LASSO_EXPORT gboolean lasso_set_encryption_private_key(LassoServer *server, gchar *file_name);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */