summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lasso/id-ff/server.c35
-rw-r--r--lasso/id-ff/serverprivate.h2
2 files changed, 37 insertions, 0 deletions
diff --git a/lasso/id-ff/server.c b/lasso/id-ff/server.c
index 3d38eaaa..f16bb8bd 100644
--- a/lasso/id-ff/server.c
+++ b/lasso/id-ff/server.c
@@ -652,3 +652,38 @@ lasso_server_dump(LassoServer *server)
return lasso_node_dump(LASSO_NODE(server));
}
+/**
+ * lasso_server_get_private_key:
+ * @server: a #LassoServer object
+ *
+ * Return value:(transfer full): a newly created #xmlSecKey object.
+ */
+xmlSecKey*
+lasso_server_get_private_key(LassoServer *server)
+{
+ if (! LASSO_IS_SERVER(server))
+ return NULL;
+
+ if (! server->private_key)
+ return NULL;
+
+ return lasso_xmlsec_load_private_key(server->private_key, server->private_key_password);
+}
+
+/**
+ * lasso_server_get_encryption_private_key:
+ * @server: a #LassoServer object
+ *
+ * Return:(transfer none): a xmlSecKey object, it is owned by the #LassoServer object, so do not free it.
+ */
+xmlSecKey*
+lasso_server_get_encryption_private_key(LassoServer *server)
+{
+ if (! LASSO_IS_SERVER(server))
+ return NULL;
+
+ if (! server->private_data)
+ return NULL;
+
+ return server->private_data->encryption_private_key;
+}
diff --git a/lasso/id-ff/serverprivate.h b/lasso/id-ff/serverprivate.h
index 1c4ef9db..b22247ac 100644
--- a/lasso/id-ff/serverprivate.h
+++ b/lasso/id-ff/serverprivate.h
@@ -38,6 +38,8 @@ struct _LassoServerPrivate
gchar* lasso_server_get_first_providerID(LassoServer *server);
gchar* lasso_server_get_providerID_from_hash(LassoServer *server, gchar *b64_hash);
+xmlSecKey* lasso_server_get_private_key(LassoServer *server);
+xmlSecKey* lasso_server_get_encryption_private_key(LassoServer *server);
#ifdef __cplusplus
}