From 59c70367cb340a213ccfd5b42ee46743418fe3da Mon Sep 17 00:00:00 2001 From: Damien Laniel Date: Thu, 9 Nov 2006 13:49:49 +0000 Subject: changed prototype for lasso_server_set_encryption_private_key and added error handling --- lasso/errors.c | 2 ++ lasso/errors.h | 1 + lasso/id-ff/server.c | 8 +++++--- lasso/id-ff/server.h | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lasso/errors.c b/lasso/errors.c index a32959a9..f6f1b00a 100644 --- a/lasso/errors.c +++ b/lasso/errors.c @@ -74,6 +74,8 @@ lasso_strerror(int error_code) return "Failed to add new provider."; case LASSO_SERVER_ERROR_ADD_PROVIDER_PROTOCOL_MISMATCH: return "Failed to add new provider (protocol mismatch)."; + case LASSO_SERVER_ERROR_SET_ENCRYPTION_PRIVATE_KEY_FAILED: + return "Failed to load encryption private key."; case LASSO_LOGOUT_ERROR_UNSUPPORTED_PROFILE: return "Unsupported protocol profile"; diff --git a/lasso/errors.h b/lasso/errors.h index af377f25..e2c3aa4a 100644 --- a/lasso/errors.h +++ b/lasso/errors.h @@ -56,6 +56,7 @@ #define LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND -201 #define LASSO_SERVER_ERROR_ADD_PROVIDER_FAILED -202 #define LASSO_SERVER_ERROR_ADD_PROVIDER_PROTOCOL_MISMATCH -203 +#define LASSO_SERVER_ERROR_SET_ENCRYPTION_PRIVATE_KEY_FAILED 204 /* Single Logout */ #define LASSO_LOGOUT_ERROR_UNSUPPORTED_PROFILE -301 diff --git a/lasso/id-ff/server.c b/lasso/id-ff/server.c index 66f182a1..6676cb50 100644 --- a/lasso/id-ff/server.c +++ b/lasso/id-ff/server.c @@ -122,8 +122,8 @@ lasso_server_destroy(LassoServer *server) lasso_node_destroy(LASSO_NODE(server)); } -gboolean -lasso_set_encryption_private_key(LassoServer *server, gchar *file_name) +int +lasso_server_set_encryption_private_key(LassoServer *server, gchar *file_name) { LassoPemFileType file_type; @@ -134,7 +134,9 @@ lasso_set_encryption_private_key(LassoServer *server, gchar *file_name) xmlSecKeyDataFormatPem, NULL, NULL, NULL); } - return (server->private_data->encryption_private_key != NULL); + if (server->private_data->encryption_private_key == NULL) + return LASSO_SERVER_ERROR_SET_ENCRYPTION_PRIVATE_KEY_FAILED; + return 0; } diff --git a/lasso/id-ff/server.h b/lasso/id-ff/server.h index da84d5ef..6798c890 100644 --- a/lasso/id-ff/server.h +++ b/lasso/id-ff/server.h @@ -96,7 +96,7 @@ 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); +LASSO_EXPORT int lasso_server_set_encryption_private_key(LassoServer *server, gchar *file_name); #ifdef __cplusplus } -- cgit