From a4daec5c74ed5f9fc2f5af5c8cfbcc1c035d0a90 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Fri, 1 Aug 2008 14:09:33 +0000 Subject: add matching of Bearer authentication, support ID-WSF 1.1 security mechanisms URNs --- lasso/id-wsf/utils.c | 53 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 13 deletions(-) diff --git a/lasso/id-wsf/utils.c b/lasso/id-wsf/utils.c index 5bfe9c28..21b5a01a 100644 --- a/lasso/id-wsf/utils.c +++ b/lasso/id-wsf/utils.c @@ -44,7 +44,9 @@ lasso_security_mech_id_is_saml_authentication(const gchar *security_mech_id) if (strcmp(security_mech_id, LASSO_SECURITY_MECH_SAML) == 0 || strcmp(security_mech_id, LASSO_SECURITY_MECH_TLS_SAML) == 0 || - strcmp(security_mech_id, LASSO_SECURITY_MECH_CLIENT_TLS_SAML) == 0) + strcmp(security_mech_id, LASSO_SECURITY_MECH_CLIENT_TLS_SAML) == 0 || + strcmp(security_mech_id, LASSO_SECURITY11_MECH_SAML) == 0 || + strcmp(security_mech_id, LASSO_SECURITY11_MECH_TLS_SAML) == 0) return TRUE; return FALSE; @@ -62,12 +64,11 @@ lasso_security_mech_id_is_saml_authentication(const gchar *security_mech_id) gboolean lasso_security_mech_id_is_x509_authentication(const char *security_mech_id) { - if (strcmp(security_mech_id, - LASSO_SECURITY_MECH_CLIENT_TLS_X509) == 0 || - strcmp(security_mech_id, - LASSO_SECURITY_MECH_TLS_X509) == 0 || - strcmp(security_mech_id, - LASSO_SECURITY_MECH_X509) == 0) { + if (strcmp(security_mech_id, LASSO_SECURITY_MECH_CLIENT_TLS_X509) == 0 || + strcmp(security_mech_id, LASSO_SECURITY_MECH_TLS_X509) == 0 || + strcmp(security_mech_id, LASSO_SECURITY_MECH_X509) == 0 || + strcmp(security_mech_id, LASSO_SECURITY11_MECH_TLS_X509) == 0 || + strcmp(security_mech_id, LASSO_SECURITY11_MECH_X509) == 0) { return TRUE; } return FALSE; @@ -85,13 +86,39 @@ lasso_security_mech_id_is_x509_authentication(const char *security_mech_id) gboolean lasso_security_mech_id_is_null_authentication(const char *security_mech_id) { - if (strcmp(security_mech_id, - LASSO_SECURITY_MECH_CLIENT_TLS) == 0 || - strcmp(security_mech_id, - LASSO_SECURITY_MECH_TLS) == 0 || - strcmp(security_mech_id, - LASSO_SECURITY_MECH_NULL) == 0) { + if (strcmp(security_mech_id, LASSO_SECURITY_MECH_CLIENT_TLS) == 0 || + strcmp(security_mech_id, LASSO_SECURITY_MECH_TLS) == 0 || + strcmp(security_mech_id, LASSO_SECURITY_MECH_NULL) == 0) { return TRUE; } return FALSE; } + +/** + * lasso_security_mech_is_null_authentication: + * @security_mech_id: the URI of an authentication mechanism + * + * Return value: %TRUE if @security_mech_id is one of + * urn:liberty:security:2003-08:NULL:Bearer, + * urn:liberty:security:2003-08:TLS:Bearer or + * urn:liberty:security:2003-08:ClientTLS:Bearer, + * urn:liberty:security:2005-02:NULL:Bearer, + * urn:liberty:security:2005-02:TLS:Bearer or + * urn:liberty:security:2005-02:ClientTLS:Bearer, + * FALSE otherwise. + */ +gboolean +lasso_security_mech_id_is_bearer_authentication(const gchar *security_mech_id) +{ + if (!security_mech_id) + return FALSE; + + if (strcmp(security_mech_id, LASSO_SECURITY_MECH_BEARER) == 0 || + strcmp(security_mech_id, LASSO_SECURITY_MECH_TLS_BEARER) == 0 || + strcmp(security_mech_id, LASSO_SECURITY_MECH_CLIENT_TLS_BEARER) == 0 || + strcmp(security_mech_id, LASSO_SECURITY11_MECH_BEARER) == 0 || + strcmp(security_mech_id, LASSO_SECURITY11_MECH_TLS_BEARER) == 0) + return TRUE; + + return FALSE; +} -- cgit