summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Laniel <dlaniel@entrouvert.com>2006-11-09 13:49:49 +0000
committerDamien Laniel <dlaniel@entrouvert.com>2006-11-09 13:49:49 +0000
commit59c70367cb340a213ccfd5b42ee46743418fe3da (patch)
treec0471a358599b4191d18d2e86aa9548e5c125d19
parent88e442ca1ee161a27ddc2dea54d9c1ba9ddd1b00 (diff)
downloadlasso-59c70367cb340a213ccfd5b42ee46743418fe3da.tar.gz
lasso-59c70367cb340a213ccfd5b42ee46743418fe3da.tar.xz
lasso-59c70367cb340a213ccfd5b42ee46743418fe3da.zip
changed prototype for lasso_server_set_encryption_private_key and added error handling
-rw-r--r--lasso/errors.c2
-rw-r--r--lasso/errors.h1
-rw-r--r--lasso/id-ff/server.c8
-rw-r--r--lasso/id-ff/server.h2
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
}