summaryrefslogtreecommitdiffstats
path: root/lasso/id-wsf/authentication.h
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2005-02-24 16:38:46 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2005-02-24 16:38:46 +0000
commitd5c84febbb9863fb833bf3a6f25ba1b5c105d75c (patch)
treeb08a4a7c4ea8df47990b72ff4c13469303694d13 /lasso/id-wsf/authentication.h
parent492e69a25a33c6acd51671ae934e734ff9148578 (diff)
downloadlasso-d5c84febbb9863fb833bf3a6f25ba1b5c105d75c.tar.gz
lasso-d5c84febbb9863fb833bf3a6f25ba1b5c105d75c.tar.xz
lasso-d5c84febbb9863fb833bf3a6f25ba1b5c105d75c.zip
Added support of cyrus libsasl in id-wsf authentication service.
Diffstat (limited to 'lasso/id-wsf/authentication.h')
-rw-r--r--lasso/id-wsf/authentication.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/lasso/id-wsf/authentication.h b/lasso/id-wsf/authentication.h
index dbc770a6..c99d7811 100644
--- a/lasso/id-wsf/authentication.h
+++ b/lasso/id-wsf/authentication.h
@@ -30,6 +30,8 @@ extern "C" {
#endif /* __cplusplus */
+#include <sasl.h>
+
#include <lasso/id-wsf/wsf_profile.h>
#include <lasso/xml/disco_description.h>
@@ -48,9 +50,19 @@ typedef struct _LassoAuthentication LassoAuthentication;
typedef struct _LassoAuthenticationClass LassoAuthenticationClass;
typedef struct _LassoAuthenticationPrivate LassoAuthenticationPrivate;
+typedef enum {
+ LASSO_SASL_OK = SASL_OK, /* 0 */
+ LASSO_SASL_CONTINUE = SASL_CONTINUE, /* 1 */
+ LASSO_SASL_INTERACT = SASL_INTERACT, /* 2 */
+} LassoSaslType;
+
struct _LassoAuthentication {
LassoWsfProfile parent;
+ /* The SASL context kept for the life of the connection */
+ sasl_conn_t *connection; /* FIXME : implement dispose method to release the connection */
+ sasl_interact_t **client_interact;
+
/*< private >*/
LassoAuthenticationPrivate *private_data;
};
@@ -63,9 +75,16 @@ LASSO_EXPORT GType lasso_authentication_get_type(void);
LASSO_EXPORT LassoAuthentication* lasso_authentication_new(LassoServer *server);
+LASSO_EXPORT gint lasso_authentication_client_start(LassoAuthentication *authentication);
+
+LASSO_EXPORT gint lasso_authentication_client_step(LassoAuthentication *authentication);
+
+LASSO_EXPORT char *lasso_authentication_get_mechanism_list(LassoAuthentication *authentication);
+
LASSO_EXPORT gint lasso_authentication_init_request(LassoAuthentication *authentication,
LassoDiscoDescription *description,
- const gchar *mechanism);
+ const char *mechanisms,
+ sasl_callback_t *callbacks);
LASSO_EXPORT gint lasso_authentication_process_request_msg(LassoAuthentication *authentication,
const gchar *soap_msg);
@@ -73,6 +92,10 @@ LASSO_EXPORT gint lasso_authentication_process_request_msg(LassoAuthentication *
LASSO_EXPORT gint lasso_authentication_process_response_msg(LassoAuthentication *authentication,
const gchar *soap_msg);
+LASSO_EXPORT gint lasso_authentication_server_start(LassoAuthentication *authentication);
+
+LASSO_EXPORT gint lasso_authentication_server_step(LassoAuthentication *authentication);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */