diff options
| -rw-r--r-- | lasso/id-ff/server.c | 35 | ||||
| -rw-r--r-- | lasso/id-ff/serverprivate.h | 2 |
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 } |
