diff --git a/NEWS b/NEWS index 91fb3b99..25b8d386 100644 --- a/NEWS +++ b/NEWS @@ -1,7 +1,40 @@ NEWS ==== -2.3.2 - Septembre 7th 2010 +2.3.3 - October 1st 2010 +------------------------ + +44 commits, 264 files changed, 858 insertions, 401 deletions + +Generic: + * Fixed a lot of memleaks thanks to valgrind, the greatest tool on earth (with + coccinelle). + * Add missing annotation creating memleaks in python binding (on lasso_*_dump king of methods). + * Fix bad inclusion of an ID-WSF include file when ID-WSF support is not enabled + * Benchmarking program was updated to measure each part of a WebSSO + independently (AuthnRequest generation/processing, AuthnResponse + generation/processing). + * Add new macro lasso_strisequal and lasso_strisnotequal to avoid errors with + strcmp. (Thanks to coccinelle semantic patches). + +SAMLv2: + * Add uniform support for LassoProfileVerifySignatureHint for other profiles + than WebSSO. + * Report signature errors in response to NameIDNanagement requests + * Fix wrong use of macro lasso_foreach breaking the mecanism for finding a + default assertion consumer. + * Behaviour of lasso_login_build_assertion was modified: + - when the NameIDPolicy lacks a Format attribute or the Format attribute is + the unspecified format (see the spec for the corresponding URN). Now it + results in a transient nameid being generated. If you want it to be + persistent you must change it before calling this method. + - the setting of the SubjectConfirmationData->NotOnOrAfter attribute was + restored as it is mandated by the WebSSO profile. It's the same value as + Conditions->NotOnOrAfter. + * Fix missing initialization of Destination attribute on Samlp2StatusResponse + object for synchronous bindings (Redirect & Post) + +2.3.2 - September 7th 2010 -------------------------- * Fix bug in increment of the libtool version info, increasing the SONAME diff --git a/bindings/bindings.py b/bindings/bindings.py index e60a5f33..1f8c6dc3 100644 --- a/bindings/bindings.py +++ b/bindings/bindings.py @@ -549,8 +549,8 @@ def parse_header(header_file): def parse_headers(srcdir): wsf_prefixes = ['disco_', 'dst_', 'is_', 'profile_service_', 'discovery_', - 'wsf_', 'interaction_', 'utility_', 'sa_', 'soap_', 'authentication_', - 'wsse_', 'sec_', 'idwsf2_', 'wsf2_', 'wsa_', 'wsu'] + 'wsf_', 'interaction_', 'utility_', 'sa_', 'authentication_', + 'wsse_', 'sec_', 'idwsf2_', 'wsf2_', 'wsa_', 'wsu', 'soap_binding'] srcdir = os.path.abspath(srcdir) parentdir = os.path.dirname(srcdir) diff --git a/bindings/java/wrapper_top.c b/bindings/java/wrapper_top.c index e83a2737..dfdec346 100644 --- a/bindings/java/wrapper_top.c +++ b/bindings/java/wrapper_top.c @@ -8,6 +8,7 @@ #include "../ghashtable.h" #include "../../lasso/utils.h" #include "../utils.c" +#include "../../lasso/backward_comp.h" #define LASSO_ROOT "com/entrouvert/lasso/" #define check_exception (*env)->ExceptionCheck(env) @@ -544,7 +545,7 @@ remove_from_list_of_strings(JNIEnv *env, GList **list, jstring jstr) { g_error_if_fail(env && list); lasso_return_val_if_fail(jstr, 1); lasso_return_val_if_fail(jstring_to_local_string(env, jstr, &local_string), 0); - found = g_list_find_custom(*list, local_string, (GCompareFunc)strcmp); + found = g_list_find_custom(*list, local_string, (GCompareFunc)g_strcmp0); if (found) { g_free(found->data); *list = g_list_delete_link(*list, found); diff --git a/configure.ac b/configure.ac index 7089136e..59c0a1f9 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,7 @@ dnl - Second number is the number of supported API versions where API version > dnl first number. dnl - Third number is the current API version implementation version number. dnl See libtool explanations about current, age and release, later in this file. -AC_INIT([lasso], 2.3.2, lasso-devel@lists.labs.libre-entreprise.org) +AC_INIT([lasso], 2.3.3, lasso-devel@lists.labs.libre-entreprise.org) dnl Check if autoconf ver > 2.53 AC_PREREQ(2.53) AC_CONFIG_MACRO_DIR([m4]) @@ -184,7 +184,7 @@ dnl - interfaces removed -> AGE = 0 # m = a # r = r current=`expr $VERSION_MAJOR + $VERSION_MINOR` -LASSO_VERSION_INFO="12:0:9" +LASSO_VERSION_INFO="12:1:9" AC_SUBST(LASSO_VERSION_INFO) dnl Compute the minimal supported ABI version for Win32 scripts and resources files. diff --git a/lasso.doap b/lasso.doap index 18323cbe..81d9fe85 100644 --- a/lasso.doap +++ b/lasso.doap @@ -61,6 +61,10 @@ + + 2010-10-01 + 2.3.3 + 2010-09-07 2.3.2 diff --git a/lasso/id-ff/identity.c b/lasso/id-ff/identity.c index 8582b5b4..872909c2 100644 --- a/lasso/id-ff/identity.c +++ b/lasso/id-ff/identity.c @@ -377,7 +377,7 @@ lasso_identity_new_from_dump(const gchar *dump) * * Dumps @identity content to an XML string. * - * Return value: the dump string. It must be freed by the caller. + * Return value:(transfer full): the dump string. It must be freed by the caller. **/ gchar* lasso_identity_dump(LassoIdentity *identity) diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c index b098dbfe..85deb368 100644 --- a/lasso/id-ff/login.c +++ b/lasso/id-ff/login.c @@ -2413,7 +2413,7 @@ lasso_login_new_from_dump(LassoServer *server, const gchar *dump) * * Dumps @login content to an XML string. * - * Return value: the dump string. It must be freed by the caller. + * Return value:(transfer full): the dump string. It must be freed by the caller. **/ gchar* lasso_login_dump(LassoLogin *login) diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c index 2e6a2d81..44555060 100644 --- a/lasso/id-ff/logout.c +++ b/lasso/id-ff/logout.c @@ -1405,7 +1405,7 @@ lasso_logout_new_from_dump(LassoServer *server, const char *dump) * * Dumps @logout content to an XML string. * - * Return value: the dump string. It must be freed by the caller. + * Return value:(transfer full): the dump string. It must be freed by the caller. **/ gchar* lasso_logout_dump(LassoLogout *logout) diff --git a/lasso/id-ff/name_registration.c b/lasso/id-ff/name_registration.c index 056d6295..c98ad63a 100644 --- a/lasso/id-ff/name_registration.c +++ b/lasso/id-ff/name_registration.c @@ -770,7 +770,7 @@ lasso_name_registration_new_from_dump(LassoServer *server, const char *dump) * * Dumps @name_registration content to an XML string. * - * Return value: the dump string. It must be freed by the caller. + * Return value:(transfer full): the dump string. It must be freed by the caller. **/ gchar * lasso_name_registration_dump(LassoNameRegistration *name_registration) diff --git a/lasso/id-ff/profile.c b/lasso/id-ff/profile.c index 549e803c..a0b24aa9 100644 --- a/lasso/id-ff/profile.c +++ b/lasso/id-ff/profile.c @@ -49,6 +49,10 @@ #include "../xml/soap-1.1/soap_fault.h" #include "../utils.h" #include "../debug.h" +#ifdef LASSO_WSF_ENABLED +#include "../xml/idwsf_strings.h" +#include "../xml/id-wsf-2.0/idwsf2_strings.h" +#endif /*****************************************************************************/ /* public functions */ @@ -201,6 +205,9 @@ lasso_profile_get_request_type_from_soap_msg(const gchar *soap) type = LASSO_REQUEST_TYPE_NAME_IDENTIFIER_MAPPING; } else if (strcmp(name, "AuthnRequest") == 0) { type = LASSO_REQUEST_TYPE_LECP; + } else if (strcmp(name, "ManageNameIDRequest") == 0) { + type = LASSO_REQUEST_TYPE_NAME_ID_MANAGEMENT; +#ifdef LASSO_WSF_ENABLED } else if (strcmp(name, "Query") == 0) { if (strcmp((char*)ns->href, LASSO_DISCO_HREF) == 0) { type = LASSO_REQUEST_TYPE_DISCO_QUERY; @@ -217,12 +224,11 @@ lasso_profile_get_request_type_from_soap_msg(const gchar *soap) } } else if (strcmp(name, "SASLRequest") == 0) { type = LASSO_REQUEST_TYPE_SASL_REQUEST; - } else if (strcmp(name, "ManageNameIDRequest") == 0) { - type = LASSO_REQUEST_TYPE_NAME_ID_MANAGEMENT; } else if (strcmp(name, "SvcMDRegister") == 0) { type = LASSO_REQUEST_TYPE_IDWSF2_DISCO_SVCMD_REGISTER; } else if (strcmp(name, "SvcMDAssociationAdd") == 0) { type = LASSO_REQUEST_TYPE_IDWSF2_DISCO_SVCMD_ASSOCIATION_ADD; +#endif } else { message(G_LOG_LEVEL_WARNING, "Unknown node name : %s", name); } @@ -743,7 +749,7 @@ LassoProviderRole lasso_profile_sso_role_with(LassoProfile *profile, const char return LASSO_PROVIDER_ROLE_NONE; /* coherency check */ - g_return_val_if_fail(g_strcmp0(federation->remote_providerID, remote_provider_id) == 0, + g_return_val_if_fail(lasso_strisequal(federation->remote_providerID,remote_provider_id), LASSO_PROVIDER_ROLE_NONE); if (LASSO_IS_SAML2_NAME_ID(federation->local_nameIdentifier)) { @@ -758,9 +764,9 @@ LassoProviderRole lasso_profile_sso_role_with(LassoProfile *profile, const char message(G_LOG_LEVEL_WARNING, "a federation without a NameID was found"); return LASSO_PROVIDER_ROLE_NONE; } - if (g_strcmp0(remote_provider_id, name_qualifier) == 0) { + if (lasso_strisequal(remote_provider_id,name_qualifier)) { return LASSO_PROVIDER_ROLE_SP; - } else if (g_strcmp0(provider_id, name_qualifier) == 0) { + } else if (lasso_strisequal(provider_id,name_qualifier)) { return LASSO_PROVIDER_ROLE_IDP; } return LASSO_PROVIDER_ROLE_NONE; diff --git a/lasso/id-ff/provider.c b/lasso/id-ff/provider.c index 91abebcc..fe3f42be 100644 --- a/lasso/id-ff/provider.c +++ b/lasso/id-ff/provider.c @@ -632,7 +632,7 @@ _lasso_provider_load_key_descriptor(LassoProvider *provider, xmlNode *key_descri private_data = provider->private_data; use = xmlGetProp(key_descriptor, (xmlChar*)"use"); - if (use == NULL || g_strcmp0((char*)use, "signing") == 0) { + if (use == NULL || lasso_strisequal((char *)use,"signing")) { lasso_assign_xml_node(private_data->signing_key_descriptor, key_descriptor); } if (use == NULL || strcmp((char*)use, "encryption") == 0) { @@ -789,6 +789,16 @@ free_list_strings(GList *list) lasso_release_list_of_strings(list); } +static void +lasso_endpoint_free(EndpointType *endpoint_type) { + g_free(endpoint_type->binding); + g_free(endpoint_type->url); + g_free(endpoint_type->kind); + g_free(endpoint_type->return_url); + g_free(endpoint_type); +} + + static void dispose(GObject *object) { @@ -840,6 +850,7 @@ dispose(GObject *object) provider->private_data->affiliation_id = NULL; lasso_release(provider->private_data->affiliation_owner_id); provider->private_data->affiliation_owner_id = NULL; + lasso_release_list_of_full(provider->private_data->endpoints, lasso_endpoint_free); G_OBJECT_CLASS(parent_class)->dispose(G_OBJECT(provider)); } @@ -859,15 +870,6 @@ finalize(GObject *object) /* instance and class init functions */ /*****************************************************************************/ -void -lasso_endpoint_free(EndpointType *endpoint_type) { - g_free(endpoint_type->binding); - g_free(endpoint_type->url); - g_free(endpoint_type->kind); - g_free(endpoint_type->return_url); - g_free(endpoint_type); -} - static void instance_init(LassoProvider *provider) { @@ -889,7 +891,6 @@ instance_init(LassoProvider *provider) provider->private_data->encryption_public_key = NULL; provider->private_data->encryption_mode = LASSO_ENCRYPTION_MODE_NONE; provider->private_data->encryption_sym_key_type = LASSO_ENCRYPTION_SYM_KEY_TYPE_AES_128; - lasso_release_list_of_full(provider->private_data->endpoints, lasso_endpoint_free); /* no value_destroy_func since it shouldn't destroy the GList on insert */ provider->private_data->Descriptors = g_hash_table_new_full( diff --git a/lasso/id-ff/server.c b/lasso/id-ff/server.c index b5d9a3a2..b40ee5b2 100644 --- a/lasso/id-ff/server.c +++ b/lasso/id-ff/server.c @@ -703,7 +703,7 @@ lasso_server_new_from_dump(const gchar *dump) * * Dumps @server content to an XML string. * - * Return value: the dump string. It must be freed by the caller. + * Return value:(transfer full): the dump string. It must be freed by the caller. **/ gchar* lasso_server_dump(LassoServer *server) diff --git a/lasso/id-ff/session.c b/lasso/id-ff/session.c index 2625818a..3e60c015 100644 --- a/lasso/id-ff/session.c +++ b/lasso/id-ff/session.c @@ -376,7 +376,7 @@ lasso_session_is_dirty(LassoSession *session) gint lasso_session_remove_assertion(LassoSession *session, const gchar *providerID) { - if (! LASSO_IS_SESSION(session) || lasso_is_empty_string(providerID)) { + if (! LASSO_IS_SESSION(session) || lasso_strisempty(providerID)) { return LASSO_PARAM_ERROR_INVALID_VALUE; } @@ -756,7 +756,7 @@ lasso_session_new_from_dump(const gchar *dump) * * Dumps @session content to an XML string. * - * Return value: the dump string. It must be freed by the caller. + * Return value:(transfer full): the dump string. It must be freed by the caller. **/ gchar* lasso_session_dump(LassoSession *session) diff --git a/lasso/id-wsf-2.0/data_service.c b/lasso/id-wsf-2.0/data_service.c index c024008e..8f4012e6 100644 --- a/lasso/id-wsf-2.0/data_service.c +++ b/lasso/id-wsf-2.0/data_service.c @@ -35,6 +35,7 @@ #include #include "./data_service.h" +#include "../xml/id-wsf-2.0/idwsf2_strings.h" #include "../xml/id-wsf-2.0/disco_service_type.h" #include "../xml/id-wsf-2.0/dstref_query.h" @@ -99,8 +100,8 @@ gint lasso_idwsf2_data_service_set_service_type(LassoIdWsf2DataService *service, const char *prefix, const char *service_type) { - if (!LASSO_IS_IDWSF2_DATA_SERVICE(service) || lasso_is_empty_string(prefix) - || lasso_is_empty_string(service_type)) + if (!LASSO_IS_IDWSF2_DATA_SERVICE(service) || lasso_strisempty(prefix) + || lasso_strisempty(service_type)) return LASSO_PARAM_ERROR_INVALID_VALUE; lasso_assign_string(service->private_data->service_type_prefix, prefix); lasso_assign_string(service->private_data->service_type, service_type); @@ -258,7 +259,7 @@ lasso_idwsf2_data_service_add_query_item(LassoIdWsf2DataService *service, const /* Check duplicates */ lasso_foreach(i, service->private_data->query_items) { LassoIdWsf2DstRefQueryItem *old_item = (LassoIdWsf2DstRefQueryItem *)i->data; - if (g_strcmp0(old_item->parent.parent.itemID, item_id) == 0) { + if (lasso_strisequal(old_item->parent.parent.itemID,item_id)) { return LASSO_IDWSF2_DST_ERROR_DUPLICATE_ITEM; } } @@ -297,7 +298,7 @@ lasso_idwsf2_data_service_add_modify_item(LassoIdWsf2DataService *service, const } lasso_foreach(i, service->private_data->modify_items) { LassoIdWsf2DstRefModifyItem *old_item = (LassoIdWsf2DstRefModifyItem *)i->data; - if (g_strcmp0(old_item->id, item_id) == 0) { + if (lasso_strisequal(old_item->id,item_id)) { return LASSO_IDWSF2_DST_ERROR_DUPLICATE_ITEM; } } @@ -390,7 +391,7 @@ lasso_idwsf2_data_service_get_item(LassoIdWsf2DataService *service, } lasso_foreach(i, service->private_data->query_items) { LassoIdWsf2DstRefQueryItem *old_item = (LassoIdWsf2DstRefQueryItem *)i->data; - if (g_strcmp0(old_item->parent.parent.itemID, item_id) == 0) { + if (lasso_strisequal(old_item->parent.parent.itemID,item_id)) { return (LassoNode*)old_item; } } @@ -404,7 +405,7 @@ lasso_idwsf2_data_service_get_item(LassoIdWsf2DataService *service, } lasso_foreach(i, service->private_data->modify_items) { LassoIdWsf2DstRefModifyItem *old_item = (LassoIdWsf2DstRefModifyItem *)i->data; - if (g_strcmp0(old_item->id, item_id) == 0) { + if (lasso_strisequal(old_item->id,item_id)) { return (LassoNode*)old_item; } } @@ -427,12 +428,12 @@ gint lasso_idwsf2_data_service_add_namespace(LassoIdWsf2DataService *service, const char *prefix, const char *href) { - if (xmlValidateNCName(BAD_CAST prefix, 0) && ! lasso_is_empty_string(href)) + if (xmlValidateNCName(BAD_CAST prefix, 0) && ! lasso_strisempty(href)) return LASSO_PARAM_ERROR_INVALID_VALUE; if (g_hash_table_lookup(service->private_data->namespaces, prefix) != NULL || - g_strcmp0(service->private_data->service_type_prefix, prefix) == 0 || - g_strcmp0(prefix, LASSO_IDWSF2_DSTREF_PREFIX) == 0) { + lasso_strisequal(service->private_data->service_type_prefix,prefix) || + lasso_strisequal(prefix,LASSO_IDWSF2_DSTREF_PREFIX)) { return LASSO_PARAM_ERROR_INVALID_VALUE; } @@ -832,13 +833,13 @@ lasso_idwsf2_data_service_process_response_msg( if (! status || ! status->code) { goto_cleanup_with_rc(LASSO_PROFILE_ERROR_MISSING_STATUS_CODE); } - if (g_strcmp0(status->code, LASSO_DST2_STATUS_CODE1_FAILED) == 0) { + if (lasso_strisequal(status->code,LASSO_DST2_STATUS_CODE1_FAILED)) { goto_cleanup_with_rc(LASSO_PROFILE_ERROR_STATUS_NOT_SUCCESS); } - if (g_strcmp0(status->code, LASSO_DST2_STATUS_CODE1_PARTIAL) == 0) { + if (lasso_strisequal(status->code,LASSO_DST2_STATUS_CODE1_PARTIAL)) { rc = LASSO_IDWSF2_DST_ERROR_PARTIAL_FAILURE; } - if (g_strcmp0(status->code, LASSO_DST2_STATUS_CODE1_OK) != 0) { + if (lasso_strisnotequal(status->code,LASSO_DST2_STATUS_CODE1_OK)) { rc = LASSO_IDWSF2_DST_ERROR_UNKNOWN_STATUS_CODE; } @@ -909,7 +910,7 @@ lasso_idwsf2_data_service_get_query_item_result(LassoIdWsf2DataService *service, } lasso_foreach(i, service->private_data->query_datas) { LassoIdWsf2DstRefData *data = (LassoIdWsf2DstRefData*)i->data; - if (g_strcmp0(data->parent.itemIDRef, item_id) == 0) { + if (lasso_strisequal(data->parent.itemIDRef,item_id)) { return data; } } diff --git a/lasso/id-wsf-2.0/discovery.c b/lasso/id-wsf-2.0/discovery.c index 4b9eb0c1..bc8e58fe 100644 --- a/lasso/id-wsf-2.0/discovery.c +++ b/lasso/id-wsf-2.0/discovery.c @@ -83,6 +83,7 @@ #include "../id-ff/providerprivate.h" #include "./discovery.h" +#include "../xml/id-wsf-2.0/idwsf2_strings.h" #include "./soap_binding.h" #include "./idwsf2_helper.h" #include "./saml2_login.h" @@ -226,7 +227,7 @@ lasso_idwsf2_discovery_status2rc(LassoIdWsf2UtilStatus *status) return LASSO_PROFILE_ERROR_MISSING_STATUS_CODE; for (i = 0; i < G_N_ELEMENTS(code2rc); ++i) { - if (g_strcmp0(status->code, code2rc[i].code) == 0) { + if (lasso_strisequal(status->code,code2rc[i].code)) { rc = code2rc[i].rc; } } @@ -571,7 +572,7 @@ lasso_idwsf2_discovery_build_request_msg(LassoIdWsf2Discovery *discovery, GList *i; lasso_foreach(i, discovery->private_data->metadatas) { LassoIdWsf2DiscoSvcMetadata *metadata = (LassoIdWsf2DiscoSvcMetadata *)i->data; - if (lasso_is_empty_string(metadata->svcMDID)) { + if (lasso_strisempty(metadata->svcMDID)) { message(G_LOG_LEVEL_WARNING, "disco:MetadataReplace method called with " \ "non registered metadatas " \ "(svcMDID attribute is missing)"); @@ -826,7 +827,7 @@ _string_list_intersect(GList *a, GList *b) lasso_foreach(i, a) { lasso_foreach(j, b) - if (g_strcmp0(i->data, j->data) == 0) { + if (lasso_strisequal(i->data,j->data)) { return TRUE; } } @@ -841,7 +842,7 @@ _string_list_contains(GList *a, const char *str) if (a == NULL) return TRUE; lasso_foreach(i, a) - if (g_strcmp0(i->data, str) == 0) { + if (lasso_strisequal(i->data,str)) { return TRUE; } return FALSE; @@ -916,7 +917,7 @@ lasso_idwsf2_discovery_match_request_service_and_metadata2( gboolean has20 = FALSE; lasso_foreach (k, endpoint_context->Framework) { LassoIdWsf2SbfFramework *framework = k->data; - if (LASSO_IS_IDWSF2_SBF_FRAMEWORK(framework) && g_strcmp0(framework->version, "2.0") == 0) + if (LASSO_IS_IDWSF2_SBF_FRAMEWORK(framework) && lasso_strisequal(framework->version,"2.0")) has20 = TRUE; } result = result && has20; @@ -1033,7 +1034,7 @@ lasso_idwsf2_discovery_validate_md_register(LassoIdWsf2Discovery *discovery) response = lasso_idwsf2_disco_svc_md_register_response_new(); response->Status = - lasso_idwsf2_util_status_new_with_code(LASSO_DISCO_STATUS_CODE_OK, NULL); + lasso_idwsf2_util_status_new_with_code(LASSO_IDWSF2_DISCOVERY_STATUS_CODE_OK, NULL); for (SvcMDs = discovery->private_data->metadatas; SvcMDs != NULL; SvcMDs = g_list_next(SvcMDs)) { lasso_list_add_string(response->SvcMDID, LASSO_IDWSF2_DISCO_SVC_METADATA(SvcMDs->data)->svcMDID); diff --git a/lasso/id-wsf-2.0/identity.c b/lasso/id-wsf-2.0/identity.c index 6133bf5f..dadbff8d 100644 --- a/lasso/id-wsf-2.0/identity.c +++ b/lasso/id-wsf-2.0/identity.c @@ -23,6 +23,7 @@ */ #include "identity.h" +#include "../xml/id-wsf-2.0/idwsf2_strings.h" #include "../utils.h" #include "../id-ff/identity.h" #include "../id-ff/identityprivate.h" diff --git a/lasso/id-wsf-2.0/idwsf2_helper.c b/lasso/id-wsf-2.0/idwsf2_helper.c index e7b4a2a0..f8577ed9 100644 --- a/lasso/id-wsf-2.0/idwsf2_helper.c +++ b/lasso/id-wsf-2.0/idwsf2_helper.c @@ -23,6 +23,7 @@ */ #include "./idwsf2_helper.h" +#include "../xml/id-wsf-2.0/idwsf2_strings.h" #include "../xml/id-wsf-2.0/disco_abstract.h" #include "../xml/id-wsf-2.0/disco_service_type.h" #include "../xml/id-wsf-2.0/disco_provider_id.h" @@ -114,7 +115,7 @@ lasso_wsa_endpoint_reference_get_idwsf2_security_context_for_security_mechanism( lasso_foreach_full_begin(LassoIdWsf2DiscoSecurityContext*, context, it1, epr->Metadata->any); if (LASSO_IS_IDWSF2_DISCO_SECURITY_CONTEXT (context)) { lasso_foreach_full_begin(char*, textnode, it2, context->SecurityMechID); - if (g_strcmp0 (textnode, security_mech_id) == 0 || sech_mech_predicate(textnode)) { + if (lasso_strisequal(textnode,security_mech_id) || sech_mech_predicate(textnode)) { return context; } lasso_foreach_full_end() @@ -164,7 +165,7 @@ lasso_wsa_endpoint_reference_get_token_by_usage( epr, sec_mech_predicate, security_mech_id, TRUE); lasso_foreach_full_begin (LassoIdWsf2SecToken*, token, iter, security_context->Token); if (LASSO_IS_IDWSF2_SEC_TOKEN (token)) { - if (usage && g_strcmp0(token->usage, usage) == 0) { + if (usage && lasso_strisequal(token->usage,usage)) { if (LASSO_IS_NODE(token->any)) { return (LassoNode*)token->any; } else if (token->ref) { diff --git a/lasso/id-wsf-2.0/profile.c b/lasso/id-wsf-2.0/profile.c index d1c96436..489c5899 100644 --- a/lasso/id-wsf-2.0/profile.c +++ b/lasso/id-wsf-2.0/profile.c @@ -38,6 +38,8 @@ #include "../saml-2.0/profileprivate.h" #include "profile.h" +#include "../xml/id-wsf-2.0/idwsf2_strings.h" +#include "../xml/idwsf_strings.h" #include "session.h" #include "../xml/soap-1.1/soap_fault.h" @@ -433,7 +435,7 @@ lasso_idwsf2_profile_check_security_mechanism(LassoIdWsf2Profile *profile, name_qualifier = assertion->Subject->NameID->NameQualifier; sp_name_qualifier = assertion->Subject->NameID->SPNameQualifier; } - if (! name_qualifier || g_strcmp0(name_qualifier, issuer->ProviderID) != 0) + if (! name_qualifier || lasso_strisnotequal(name_qualifier,issuer->ProviderID)) goto_cleanup_with_rc(LASSO_PROFILE_ERROR_INVALID_ASSERTION); /* There is two cases for the NameID of the security assertion: * - we are the IdP and the Wsp, so the NameQualifier is us and the SPNameQualifier is the @@ -447,10 +449,10 @@ lasso_idwsf2_profile_check_security_mechanism(LassoIdWsf2Profile *profile, sender_id = lasso_soap_envelope_sb2_get_provider_id(envelope); if (! sender_id) goto_cleanup_with_rc(LASSO_WSF_PROFILE_ERROR_MISSING_SENDER_ID); - if (local_service_id && g_strcmp0(local_service_id, name_qualifier) == 0 && - sp_name_qualifier && g_strcmp0(sp_name_qualifier, sender_id) == 0) { + if (local_service_id && lasso_strisequal(local_service_id,name_qualifier) && + sp_name_qualifier && lasso_strisequal(sp_name_qualifier,sender_id)) { /* Ok. */ - } else if (sp_name_qualifier && g_strcmp0(sp_name_qualifier, local_service_id) == 0) { + } else if (sp_name_qualifier && lasso_strisequal(sp_name_qualifier,local_service_id)) { /* Ok. */ } else { goto_cleanup_with_rc(LASSO_PROFILE_ERROR_INVALID_ASSERTION); diff --git a/lasso/id-wsf-2.0/saml2_login.c b/lasso/id-wsf-2.0/saml2_login.c index 49e81287..fc0f074b 100644 --- a/lasso/id-wsf-2.0/saml2_login.c +++ b/lasso/id-wsf-2.0/saml2_login.c @@ -23,6 +23,7 @@ */ #include "./saml2_login.h" +#include "../xml/id-wsf-2.0/idwsf2_strings.h" #include "identity.h" #include "server.h" #include "session.h" @@ -240,7 +241,7 @@ lasso_saml2_assertion_idwsf2_get_discovery_bootstrap_epr(LassoSaml2Assertion *as continue; attribute = LASSO_SAML2_ATTRIBUTE(j->data); - if (g_strcmp0(attribute->Name, LASSO_SAML2_ATTRIBUTE_NAME_EPR) != 0) + if (lasso_strisnotequal(attribute->Name,LASSO_SAML2_ATTRIBUTE_NAME_EPR)) continue; /* There should only one attribute value, and the EPR should be the first * contained node */ diff --git a/lasso/id-wsf-2.0/server.c b/lasso/id-wsf-2.0/server.c index b0d9b817..dbe04d12 100644 --- a/lasso/id-wsf-2.0/server.c +++ b/lasso/id-wsf-2.0/server.c @@ -23,6 +23,7 @@ */ #include "server.h" +#include "../xml/id-wsf-2.0/idwsf2_strings.h" #include "../id-ff/server.h" #include "../id-ff/serverprivate.h" #include "../xml/id-wsf-2.0/disco_svc_metadata.h" diff --git a/lasso/id-wsf-2.0/session.c b/lasso/id-wsf-2.0/session.c index 0b0756a4..d226cabc 100644 --- a/lasso/id-wsf-2.0/session.c +++ b/lasso/id-wsf-2.0/session.c @@ -26,6 +26,7 @@ * SECTION:idwsf2-session-extension */ #include "session.h" +#include "../xml/id-wsf-2.0/idwsf2_strings.h" #include "../utils.h" #include "../id-ff/session.h" #include "../id-ff/sessionprivate.h" diff --git a/lasso/id-wsf-2.0/soap_binding.c b/lasso/id-wsf-2.0/soap_binding.c index b9c7bb96..347a1513 100644 --- a/lasso/id-wsf-2.0/soap_binding.c +++ b/lasso/id-wsf-2.0/soap_binding.c @@ -23,6 +23,8 @@ */ #include "./soap_binding.h" +#include "../xml/idwsf_strings.h" +#include "../xml/id-wsf-2.0/idwsf2_strings.h" #include "../xml/id-wsf-2.0/sb2_sender.h" #include "../xml/id-wsf-2.0/sb2_redirect_request.h" #include "../xml/id-wsf-2.0/sb2_user_interaction_header.h" @@ -238,7 +240,7 @@ lasso_soap_envelope_get_action(LassoSoapEnvelope *soap_envelope) lasso_foreach(i, soap_envelope->Header->Other) { if (LASSO_IS_WSA_ATTRIBUTED_URI(i->data) - && g_strcmp0(lasso_node_get_name((LassoNode*)i->data), "Action")) { + && lasso_strisequal(lasso_node_get_name((LassoNode *)i->data),"Action")) { return ((LassoWsAddrAttributedURI*)i->data)->content; } } @@ -271,9 +273,9 @@ _get_node(GList **list, GType node_type, const char *node_name, const char *node if (LASSO_IS_NODE(node) && (! node_type || ( G_IS_OBJECT(node) && G_OBJECT_TYPE(node) == node_type)) && - (! node_name || g_strcmp0(lasso_node_get_name(node), node_name) == 0) && + (! node_name || lasso_strisequal(lasso_node_get_name(node),node_name)) && (! node_namespace || - g_strcmp0(lasso_node_get_namespace(node), node_namespace) == 0)) { + lasso_strisequal(lasso_node_get_namespace(node),node_namespace))) { return node; } } @@ -282,10 +284,10 @@ _get_node(GList **list, GType node_type, const char *node_name, const char *node if (! node) { return NULL; } - if (g_strcmp0(lasso_node_get_name(node), node_name) != 0) { + if (lasso_strisnotequal(lasso_node_get_name(node),node_name)) { lasso_node_set_custom_nodename(node, node_name); } - if (g_strcmp0(lasso_node_get_namespace(node), node_namespace) == 0) { + if (lasso_strisequal(lasso_node_get_namespace(node),node_namespace)) { lasso_node_set_custom_namespace(node, node_namespace, node_prefix); } lasso_list_add_new_gobject(*list, node); @@ -435,11 +437,11 @@ lasso_soap_envelope_get_sb2_user_interaction_hint(LassoSoapEnvelope *soap_envelo header = lasso_soap_envelope_get_sb2_user_interaction_header(soap_envelope, FALSE); if (header) { hint = header->interact; - if (g_strcmp0(hint, LASSO_SB2_USER_INTERACTION_INTERACT_IF_NEEDED) == 0) + if (lasso_strisequal(hint,LASSO_SB2_USER_INTERACTION_INTERACT_IF_NEEDED)) return LASSO_IDWSF2_SB2_USER_INTERACTION_HINT_INTERACT_IF_NEEDED; - if (g_strcmp0(hint, LASSO_SB2_USER_INTERACTION_DO_NOT_INTERACT) == 0) + if (lasso_strisequal(hint,LASSO_SB2_USER_INTERACTION_DO_NOT_INTERACT)) return LASSO_IDWSF2_SB2_USER_INTERACTION_HINT_DO_NOT_INTERACT; - if (g_strcmp0(hint, LASSO_SB2_USER_INTERACTION_DO_NOT_INTERACT_FOR_DATA) == 0) + if (lasso_strisequal(hint,LASSO_SB2_USER_INTERACTION_DO_NOT_INTERACT_FOR_DATA)) return LASSO_IDWSF2_SB2_USER_INTERACTION_HINT_DO_NOT_INTERACT_FOR_DATA; } diff --git a/lasso/id-wsf/authentication.c b/lasso/id-wsf/authentication.c index 0dee1e29..c922f368 100644 --- a/lasso/id-wsf/authentication.c +++ b/lasso/id-wsf/authentication.c @@ -24,6 +24,7 @@ #include "../utils.h" #include "./authentication.h" +#include "../xml/idwsf_strings.h" #include "../xml/private.h" #include "../xml/sa_sasl_request.h" #include "../xml/sa_sasl_response.h" diff --git a/lasso/id-wsf/data_service.c b/lasso/id-wsf/data_service.c index 37d71287..3a404e03 100644 --- a/lasso/id-wsf/data_service.c +++ b/lasso/id-wsf/data_service.c @@ -63,6 +63,7 @@ #include "./discovery.h" #include "./data_service.h" +#include "../xml/idwsf_strings.h" #include "../xml/dst_query.h" #include "../xml/dst_query_response.h" #include "../xml/dst_modify.h" @@ -236,8 +237,8 @@ lasso_data_service_get_query_item(LassoDataService *service, { LassoDstQueryItem *query_item = NULL; lasso_extract_node_or_fail(query_item, query_items->data, DST_QUERY_ITEM, LASSO_ERROR_CAST_FAILED); - if ((select && g_strcmp0(select, query_item->Select) == 0) || - (item_id && g_strcmp0(item_id, query_item->itemID) == 0)) + if ((select && lasso_strisequal(select,query_item->Select)) || + (item_id && lasso_strisequal(item_id,query_item->itemID))) { if (output) { lasso_assign_new_gobject(*output, query_item); @@ -430,7 +431,7 @@ lasso_data_service_get_answers_by_select(LassoDataService *service, const char * if (datas) { lasso_extract_node_or_fail(data, datas->data, DST_DATA, LASSO_ERROR_CAST_FAILED); - if (g_strcmp0(select, query_item->Select) != 0) { + if (lasso_strisnotequal(select,query_item->Select)) { data = NULL; rc = LASSO_DST_ERROR_QUERY_NOT_FOUND; } @@ -443,7 +444,7 @@ lasso_data_service_get_answers_by_select(LassoDataService *service, const char * while (iter) { lasso_extract_node_or_fail(query_item, iter->data, DST_QUERY_ITEM, LASSO_ERROR_CAST_FAILED); - if (g_strcmp0(query_item->Select, select) == 0) { + if (lasso_strisequal(query_item->Select,select)) { break; } query_item = NULL; @@ -456,7 +457,7 @@ lasso_data_service_get_answers_by_select(LassoDataService *service, const char * while (datas) { lasso_extract_node_or_fail(data, datas->data, DST_DATA, LASSO_ERROR_CAST_FAILED); - if (g_strcmp0(data->itemIDRef, query_item->itemID) == 0) { + if (lasso_strisequal(data->itemIDRef,query_item->itemID)) { break; } data = NULL; @@ -509,7 +510,7 @@ lasso_data_service_get_answers_by_item_id(LassoDataService *service, const char datas = query_response->Data; while (datas) { lasso_extract_node_or_fail(data, datas->data, DST_DATA, LASSO_ERROR_CAST_FAILED); - if (g_strcmp0(data->itemIDRef, item_id) == 0) { + if (lasso_strisequal(data->itemIDRef,item_id)) { break; } data = NULL; @@ -1039,6 +1040,7 @@ lasso_data_service_apply_queries(LassoDataService *service, LassoDstQueryRespons LassoWsfProfile *wsf_profile = NULL; xmlDoc *doc = NULL; xmlXPathContext *xpathCtx = NULL; + GList *query = NULL; lasso_bad_param(DATA_SERVICE, service); g_return_val_if_fail(service->private_data, LASSO_PARAM_ERROR_NON_INITIALIZED_OBJECT); @@ -1066,8 +1068,8 @@ lasso_data_service_apply_queries(LassoDataService *service, LassoDstQueryRespons xpathCtx = xmlXPathNewContext(doc); lasso_register_idwsf_xpath_namespaces(xpathCtx); - lasso_foreach (queries, queries) { - LassoDstQueryItem *item = queries->data; + lasso_foreach (query, queries) { + LassoDstQueryItem *item = query->data; goto_cleanup_if_fail_with_rc(lasso_data_service_apply_query(service, query_response, xpathCtx, item) == 0, query_response->Data ? diff --git a/lasso/id-wsf/discovery.c b/lasso/id-wsf/discovery.c index 7f5102e6..eb00e98c 100644 --- a/lasso/id-wsf/discovery.c +++ b/lasso/id-wsf/discovery.c @@ -75,6 +75,7 @@ #include "../xml/saml_attribute_value.h" #include "../xml/disco_modify.h" #include "../xml/saml_assertion.h" +#include "../xml/idwsf_strings.h" #include "../id-ff/server.h" #include "../id-ff/provider.h" @@ -85,6 +86,7 @@ #include "./wsf_profile_private.h" #include "./wsf_utils.h" #include "../utils.h" +#include "./discovery.h" struct _LassoDiscoveryPrivate { diff --git a/lasso/id-wsf/id_ff_extensions.c b/lasso/id-wsf/id_ff_extensions.c index 4d2acc29..503cc409 100644 --- a/lasso/id-wsf/id_ff_extensions.c +++ b/lasso/id-wsf/id_ff_extensions.c @@ -25,6 +25,7 @@ */ #include "id_ff_extensions.h" +#include "../xml/idwsf_strings.h" #include "id_ff_extensions_private.h" #include "../xml/disco_description.h" #include "../xml/disco_resource_offering.h" diff --git a/lasso/id-wsf/interaction_profile_service.c b/lasso/id-wsf/interaction_profile_service.c index c390de94..206bc7ab 100644 --- a/lasso/id-wsf/interaction_profile_service.c +++ b/lasso/id-wsf/interaction_profile_service.c @@ -23,6 +23,7 @@ */ #include "./interaction_profile_service.h" +#include "../xml/idwsf_strings.h" #include "./wsf_profile.h" #include "../xml/soap-1.1/soap_detail.h" #include "../xml/soap-1.1/soap_fault.h" diff --git a/lasso/id-wsf/personal_profile_service.c b/lasso/id-wsf/personal_profile_service.c index 6970c108..3aa558c8 100644 --- a/lasso/id-wsf/personal_profile_service.c +++ b/lasso/id-wsf/personal_profile_service.c @@ -24,6 +24,7 @@ #include "../xml/private.h" #include "./personal_profile_service.h" +#include "../xml/idwsf_strings.h" #include "./data_service.h" #include "./wsf_profile_private.h" #include "./discovery.h" @@ -45,7 +46,7 @@ lasso_personal_profile_service_get_email(LassoPersonalProfileService *service) xmlNode *xmlnode, *child; xmlChar *msgAccount = NULL, *msgProvider = NULL; char *email; - GList *answers = NULL; + GList *answers = NULL, *answer = NULL; gint rc = 0; g_return_val_if_fail(LASSO_IS_PERSONAL_PROFILE_SERVICE(service) == TRUE, NULL); @@ -53,9 +54,9 @@ lasso_personal_profile_service_get_email(LassoPersonalProfileService *service) rc = lasso_data_service_get_answers_by_select(LASSO_DATA_SERVICE(service), "/pp:PP/pp:MsgContact", &answers); - lasso_foreach(answers, answers) + lasso_foreach(answer, answers) { - xmlnode = (xmlNode*)answers->data; + xmlnode = (xmlNode*)answer->data; child = xmlnode->children; while (child != NULL) { if (child->type != XML_ELEMENT_NODE) { diff --git a/lasso/id-wsf/wsf_profile.c b/lasso/id-wsf/wsf_profile.c index 79075ff8..f1840bb7 100644 --- a/lasso/id-wsf/wsf_profile.c +++ b/lasso/id-wsf/wsf_profile.c @@ -35,6 +35,7 @@ #include "../utils.h" #include "./wsf_profile.h" +#include "../xml/idwsf_strings.h" #include "./wsf_profile_private.h" #include "./discovery.h" #include "./wsf_utils.h" @@ -989,12 +990,14 @@ lasso_wsf_profile_process_soap_response_msg(LassoWsfProfile *profile, const gcha LASSO_WSF_PROFILE_ERROR_MISSING_CORRELATION); /* Check message ID */ - goto_cleanup_if_fail_with_rc( - g_strcmp0(lasso_wsf_profile_utils_get_message_id( - profile->soap_envelope_request), - lasso_wsf_profile_utils_get_ref_message_id( - profile->soap_envelope_response)) == 0, - LASSO_WSF_PROFILE_ERROR_INVALID_OR_MISSING_REFERENCE_TO_MESSAGE_ID); + { + const char *message_id = + lasso_wsf_profile_utils_get_message_id(profile->soap_envelope_request); + const char *ref_message_id = + lasso_wsf_profile_utils_get_ref_message_id(profile->soap_envelope_response); + goto_cleanup_if_fail_with_rc(lasso_strisequal(message_id, ref_message_id), + LASSO_WSF_PROFILE_ERROR_INVALID_OR_MISSING_REFERENCE_TO_MESSAGE_ID); + } /* Signal soap fault specifically, * find soap redirects. */ diff --git a/lasso/id-wsf/wsf_utils.c b/lasso/id-wsf/wsf_utils.c index e3594be4..efa88995 100644 --- a/lasso/id-wsf/wsf_utils.c +++ b/lasso/id-wsf/wsf_utils.c @@ -44,6 +44,7 @@ #include #include "../xml/strings.h" +#include "../xml/idwsf_strings.h" /** * lasso_security_mech_id_is_null_authentication: diff --git a/lasso/lasso.c b/lasso/lasso.c index d35e072d..28e60fb6 100644 --- a/lasso/lasso.c +++ b/lasso/lasso.c @@ -286,23 +286,23 @@ void lasso_set_flag(char *flag) { } do { - if (g_strcmp0(flag, "verify-signature") == 0) { + if (lasso_strisequal(flag,"verify-signature")) { lasso_flag_verify_signature = value; continue; } - if (g_strcmp0(flag,"memory-debug") == 0) { + if (lasso_strisequal(flag,"memory-debug")) { lasso_flag_memory_debug = value; continue; } - if (g_strcmp0(flag,"strict-checking") == 0) { + if (lasso_strisequal(flag,"strict-checking")) { lasso_flag_strict_checking = value; continue; } - if (g_strcmp0(flag,"add-signature") == 0) { + if (lasso_strisequal(flag,"add-signature")) { lasso_flag_add_signature = value; continue; } - if (g_strcmp0(flag, "sign-messages") == 0) { + if (lasso_strisequal(flag,"sign-messages")) { lasso_flag_sign_messages = value; continue; } diff --git a/lasso/registry.c b/lasso/registry.c index 9b3f338c..0816c0c1 100644 --- a/lasso/registry.c +++ b/lasso/registry.c @@ -96,7 +96,8 @@ void lasso_registry_default_shutdown() * * Return value: TRUE if all field of record1 are equal to record2. */ -gboolean lasso_registry_direct_mapping_equal(LassoRegistryDirectMappingRecord *record1, LassoRegistryDirectMappingRecord *record2) +gboolean lasso_registry_direct_mapping_equal(LassoRegistryDirectMappingRecord *record1, + LassoRegistryDirectMappingRecord *record2) { return record1->from_namespace == record2->from_namespace && record1->from_name == record2->from_name @@ -113,7 +114,8 @@ gboolean lasso_registry_direct_mapping_equal(LassoRegistryDirectMappingRecord *r * * Return value: TRUE if record1 is equal to record2 */ -gboolean lasso_registry_functional_mapping_equal(LassoRegistryFunctionalMappingRecord *record1, LassoRegistryFunctionalMappingRecord *record2) +gboolean lasso_registry_functional_mapping_equal(LassoRegistryFunctionalMappingRecord *record1, + LassoRegistryFunctionalMappingRecord *record2) { return record1->from_namespace == record2->from_namespace && record1->to_namespace == record2->to_namespace; diff --git a/lasso/saml-2.0/assertion_query.c b/lasso/saml-2.0/assertion_query.c index 3b15d484..3e08d5bc 100644 --- a/lasso/saml-2.0/assertion_query.c +++ b/lasso/saml-2.0/assertion_query.c @@ -270,28 +270,20 @@ lasso_assertion_query_process_request_msg(LassoAssertionQuery *assertion_query, LassoProfile *profile = NULL; LassoSamlp2SubjectQueryAbstract *subject_query = NULL; LassoSaml2Subject *subject = NULL; - int rc = 0, rc1 = 0, rc2 = 0; + int rc = 0; g_return_val_if_fail(LASSO_IS_ASSERTION_QUERY(assertion_query), LASSO_PARAM_ERROR_INVALID_VALUE); profile = LASSO_PROFILE(assertion_query); - rc1 = lasso_saml20_profile_process_soap_request(profile, request_msg); - + lasso_check_good_rc(lasso_saml20_profile_process_soap_request(profile, request_msg)); lasso_extract_node_or_fail(subject_query, profile->request, SAMLP2_SUBJECT_QUERY_ABSTRACT, LASSO_PROFILE_ERROR_INVALID_MSG); lasso_extract_node_or_fail(subject, subject_query->Subject, SAML2_SUBJECT, LASSO_PROFILE_ERROR_MISSING_SUBJECT); + lasso_check_good_rc(lasso_saml20_profile_process_name_identifier_decryption(profile, &subject->NameID, &subject->EncryptedID)); - rc2 = lasso_saml20_profile_process_name_identifier_decryption(profile, &subject->NameID, &subject->EncryptedID); - - rc = rc1; - if (rc == 0) - rc = rc2; - if (rc == 0) - rc = profile->signature_status; cleanup: - return rc; } @@ -384,16 +376,15 @@ lasso_assertion_query_process_response_msg( LassoAssertionQuery *assertion_query, gchar *response_msg) { - LassoProfile *profile; - LassoSamlp2StatusResponse *response; + LassoProfile *profile = NULL; + LassoSamlp2StatusResponse *response = NULL; int rc = 0; lasso_bad_param(ASSERTION_QUERY, assertion_query); profile = &assertion_query->parent; - response = (LassoSamlp2StatusResponse*)lasso_samlp2_response_new(); - lasso_check_good_rc(lasso_saml20_profile_process_any_response(profile, - response, NULL, response_msg)); + lasso_check_good_rc(lasso_saml20_profile_process_soap_response(profile, + response_msg)); cleanup: lasso_release_gobject(response); @@ -415,8 +406,8 @@ lasso_assertion_query_lookup_attribute(LassoAssertionQuery *assertion_query, cha lasso_foreach_full_begin(LassoSaml2Attribute*, attribute, it, query->Attribute) { if (LASSO_IS_SAML2_ATTRIBUTE(attribute) && - g_strcmp0(attribute->NameFormat, format) == 0 && - g_strcmp0(attribute->Name, name) == 0) + lasso_strisequal(attribute->NameFormat,format) && + lasso_strisequal(attribute->Name,name)) { result = attribute; break; diff --git a/lasso/saml-2.0/login.c b/lasso/saml-2.0/login.c index 80b98131..aa892315 100644 --- a/lasso/saml-2.0/login.c +++ b/lasso/saml-2.0/login.c @@ -112,24 +112,28 @@ cleanup: static gboolean want_authn_request_signed(LassoProvider *provider) { char *s; + gboolean rc = TRUE; s = lasso_provider_get_metadata_one_for_role(provider, LASSO_PROVIDER_ROLE_IDP, LASSO_SAML2_METADATA_ATTRIBUTE_WANT_AUTHN_REQUEST_SIGNED); - if (g_strcmp0(s, "false") == 0) { - return FALSE; + if (lasso_strisequal(s,"false")) { + rc = FALSE; } - return TRUE; + lasso_release_string(s); + return rc; } static gboolean authn_request_signed(LassoProvider *provider) { char *s; + gboolean rc = FALSE; s = lasso_provider_get_metadata_one_for_role(provider, LASSO_PROVIDER_ROLE_SP, LASSO_SAML2_METADATA_ATTRIBUTE_AUTHN_REQUEST_SIGNED); - if (g_strcmp0(s, "true") == 0) { - return TRUE; + if (lasso_strisequal(s,"true")) { + rc = TRUE; } - return FALSE; + lasso_release_string(s); + return rc; } static gboolean @@ -243,8 +247,7 @@ lasso_saml20_login_build_authn_request_msg(LassoLogin *login) /* support old way of doing PAOS */ if (login->http_method == LASSO_HTTP_METHOD_SOAP - && g_strcmp0(authn_request->ProtocolBinding, - LASSO_SAML2_METADATA_BINDING_PAOS) == 0) { + && lasso_strisequal(authn_request->ProtocolBinding,LASSO_SAML2_METADATA_BINDING_PAOS)) { login->http_method = LASSO_HTTP_METHOD_PAOS; /* PAOS is special, the url passed to build_request is the AssertionConsumerServiceURL of * this SP, not the destination. */ @@ -279,7 +282,7 @@ lasso_saml20_login_process_authn_request_msg(LassoLogin *login, const char *auth /* AuthnRequest already set by .._init_idp_initiated_authn_request, or from a * previously failed call to process_authn_request that we retry. */ - request = profile->request; + request = lasso_ref(profile->request); } else { request = lasso_samlp2_authn_request_new(); lasso_check_good_rc(lasso_saml20_profile_process_any_request(profile, request, authn_request_msg)); @@ -332,15 +335,15 @@ lasso_saml20_login_process_authn_request_msg(LassoLogin *login, const char *auth if (binding == NULL) { if (service_index == -1) return LASSO_LOGIN_ERROR_NO_DEFAULT_ENDPOINT; - } else if (g_strcmp0(binding, "HTTP-Artifact") == 0) { + } else if (lasso_strisequal(binding,"HTTP-Artifact")) { login->protocolProfile = LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_ART; - } else if (g_strcmp0(binding, "HTTP-POST") == 0) { + } else if (lasso_strisequal(binding,"HTTP-POST")) { login->protocolProfile = LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_POST; - } else if (g_strcmp0(binding, "HTTP-Redirect") == 0) { + } else if (lasso_strisequal(binding,"HTTP-Redirect")) { login->protocolProfile = LASSO_LOGIN_PROTOCOL_PROFILE_REDIRECT; - } else if (g_strcmp0(binding, "SOAP") == 0) { + } else if (lasso_strisequal(binding,"SOAP")) { login->protocolProfile = LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_LECP; - } else if (g_strcmp0(binding, "PAOS") == 0) { + } else if (lasso_strisequal(binding,"PAOS")) { login->protocolProfile = LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_LECP; } lasso_release_string(binding); @@ -352,17 +355,16 @@ lasso_saml20_login_process_authn_request_msg(LassoLogin *login, const char *auth remote_provider, authn_request->AssertionConsumerServiceURL); } - if (g_strcmp0(protocol_binding, LASSO_SAML2_METADATA_BINDING_ARTIFACT) == 0) { + if (lasso_strisequal(protocol_binding,LASSO_SAML2_METADATA_BINDING_ARTIFACT)) { login->protocolProfile = LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_ART; - } else if (g_strcmp0(protocol_binding, LASSO_SAML2_METADATA_BINDING_POST) == 0) { + } else if (lasso_strisequal(protocol_binding,LASSO_SAML2_METADATA_BINDING_POST)) { login->protocolProfile = LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_POST; - } else if (g_strcmp0(protocol_binding, LASSO_SAML2_METADATA_BINDING_SOAP) == 0) { + } else if (lasso_strisequal(protocol_binding,LASSO_SAML2_METADATA_BINDING_SOAP)) { login->protocolProfile = LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_LECP; - } else if (g_strcmp0(protocol_binding, - LASSO_SAML2_METADATA_BINDING_REDIRECT) == 0) { + } else if (lasso_strisequal(protocol_binding,LASSO_SAML2_METADATA_BINDING_REDIRECT)) { login->protocolProfile = LASSO_LOGIN_PROTOCOL_PROFILE_REDIRECT; goto_cleanup_with_rc(LASSO_PROFILE_ERROR_INVALID_PROTOCOLPROFILE); - } else if (g_strcmp0(protocol_binding, LASSO_SAML2_METADATA_BINDING_PAOS) == 0) { + } else if (lasso_strisequal(protocol_binding,LASSO_SAML2_METADATA_BINDING_PAOS)) { login->protocolProfile = LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_LECP; } else { rc = LASSO_PROFILE_ERROR_INVALID_PROTOCOLPROFILE; @@ -383,6 +385,7 @@ lasso_saml20_login_process_authn_request_msg(LassoLogin *login, const char *auth lasso_saml20_profile_init_response(profile, response, status1, status2); cleanup: + lasso_release_gobject(request); lasso_release_gobject(response); return rc; } @@ -410,15 +413,15 @@ lasso_saml20_login_must_authenticate(LassoLogin *login) GList *t1, *t2; int compa; - if (comparison == NULL || g_strcmp0(comparison, "exact") == 0) { + if (comparison == NULL || lasso_strisequal(comparison,"exact")) { compa = 0; - } else if (g_strcmp0(comparison, "minimum") == 0) { + } else if (lasso_strisequal(comparison,"minimum")) { message(G_LOG_LEVEL_CRITICAL, "'minimum' comparison is not implemented"); compa = 0; - } else if (g_strcmp0(comparison, "better") == 0) { + } else if (lasso_strisequal(comparison,"better")) { message(G_LOG_LEVEL_CRITICAL, "'better' comparison is not implemented"); compa = 0; - } else if (g_strcmp0(comparison, "maximum") == 0) { + } else if (lasso_strisequal(comparison,"maximum")) { message(G_LOG_LEVEL_CRITICAL, "'maximum' comparison is not implemented"); compa = 0; } @@ -458,7 +461,7 @@ lasso_saml20_login_must_authenticate(LassoLogin *login) method = as->AuthnContext->AuthnContextClassRef; if (compa == 0) { /* exact */ - if (g_strcmp0(method, class_ref) == 0) { + if (lasso_strisequal(method,class_ref)) { matched = TRUE; break; } @@ -506,7 +509,7 @@ lasso_saml20_login_must_ask_for_consent_private(LassoLogin *login) if (name_id_policy) { char *format = name_id_policy->Format; - if (g_strcmp0(format, LASSO_SAML2_NAME_IDENTIFIER_FORMAT_TRANSIENT) == 0) { + if (lasso_strisequal(format,LASSO_SAML2_NAME_IDENTIFIER_FORMAT_TRANSIENT)) { goto_cleanup_with_rc (FALSE) } if (name_id_policy->AllowCreate == FALSE) { @@ -533,22 +536,22 @@ lasso_saml20_login_must_ask_for_consent_private(LassoLogin *login) if (consent == NULL) goto_cleanup_with_rc (FALSE) - if (g_strcmp0(consent, LASSO_SAML2_CONSENT_OBTAINED) == 0) + if (lasso_strisequal(consent,LASSO_SAML2_CONSENT_OBTAINED)) goto_cleanup_with_rc (FALSE) - if (g_strcmp0(consent, LASSO_SAML2_CONSENT_PRIOR) == 0) + if (lasso_strisequal(consent,LASSO_SAML2_CONSENT_PRIOR)) goto_cleanup_with_rc (FALSE) - if (g_strcmp0(consent, LASSO_SAML2_CONSENT_IMPLICIT) == 0) + if (lasso_strisequal(consent,LASSO_SAML2_CONSENT_IMPLICIT)) goto_cleanup_with_rc (FALSE) - if (g_strcmp0(consent, LASSO_SAML2_CONSENT_EXPLICIT) == 0) + if (lasso_strisequal(consent,LASSO_SAML2_CONSENT_EXPLICIT)) goto_cleanup_with_rc (FALSE) - if (g_strcmp0(consent, LASSO_SAML2_CONSENT_UNAVAILABLE) == 0) + if (lasso_strisequal(consent,LASSO_SAML2_CONSENT_UNAVAILABLE)) goto_cleanup_with_rc (TRUE) - if (g_strcmp0(consent, LASSO_SAML2_CONSENT_INAPPLICABLE) == 0) + if (lasso_strisequal(consent,LASSO_SAML2_CONSENT_INAPPLICABLE)) goto_cleanup_with_rc (TRUE) cleanup: @@ -651,8 +654,7 @@ lasso_saml20_login_process_federation(LassoLogin *login, gboolean is_consent_obt if (lasso_saml20_login_must_ask_for_consent_private(login) && !is_consent_obtained) { goto_cleanup_with_rc (LASSO_LOGIN_ERROR_CONSENT_NOT_OBTAINED) } - if (g_strcmp0(name_id_policy_format, - LASSO_SAML2_NAME_IDENTIFIER_FORMAT_PERSISTENT) != 0) { + if (lasso_strisnotequal(name_id_policy_format,LASSO_SAML2_NAME_IDENTIFIER_FORMAT_PERSISTENT)) { /* non persistent case, TRANSIENT is handled by lasso_login_build_assertion() and * other format are the sole responsibility of the caller */ goto_cleanup_with_rc (0) @@ -760,6 +762,12 @@ lasso_saml20_login_build_assertion(LassoLogin *login, assertion->Subject->SubjectConfirmation->SubjectConfirmationData = LASSO_SAML2_SUBJECT_CONFIRMATION_DATA( lasso_saml2_subject_confirmation_data_new()); + lasso_assign_string( + assertion->Subject->SubjectConfirmation->SubjectConfirmationData->NotBefore, + notBefore); + lasso_assign_string( + assertion->Subject->SubjectConfirmation->SubjectConfirmationData->NotOnOrAfter, + notOnOrAfter); /* If request is present, refer to it in the response */ if (authn_request) { @@ -776,8 +784,9 @@ lasso_saml20_login_build_assertion(LassoLogin *login, name_id_policy = authn_request->NameIDPolicy; } /* TRANSIENT */ - if (!name_id_policy || g_strcmp0(name_id_policy->Format, - LASSO_SAML2_NAME_IDENTIFIER_FORMAT_TRANSIENT) == 0) { + if (!name_id_policy || name_id_policy->Format == NULL || + lasso_strisequal(name_id_policy->Format,LASSO_SAML2_NAME_IDENTIFIER_FORMAT_UNSPECIFIED) || + lasso_strisequal(name_id_policy->Format,LASSO_SAML2_NAME_IDENTIFIER_FORMAT_TRANSIENT)) { char *id = lasso_build_unique_id(32); name_id = (LassoSaml2NameID*)lasso_saml2_name_id_new_with_string(id); @@ -787,18 +796,18 @@ lasso_saml20_login_build_assertion(LassoLogin *login, lasso_assign_string(name_id->Format, LASSO_SAML2_NAME_IDENTIFIER_FORMAT_TRANSIENT); assertion->Subject->NameID = name_id; /* FEDERATED */ - } else if (g_strcmp0(name_id_policy->Format, - LASSO_SAML2_NAME_IDENTIFIER_FORMAT_PERSISTENT) == 0 || - g_strcmp0(name_id_policy->Format, - LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENCRYPTED) == 0) { + } else if (lasso_strisequal(name_id_policy->Format, + LASSO_SAML2_NAME_IDENTIFIER_FORMAT_PERSISTENT) || + lasso_strisequal(name_id_policy->Format, + LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENCRYPTED)) + { LassoFederation *federation; federation = _lasso_login_saml20_get_federation(login); goto_cleanup_if_fail_with_rc(federation != NULL, LASSO_PROFILE_ERROR_FEDERATION_NOT_FOUND); - if (g_strcmp0(name_id_policy->Format, - LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENCRYPTED) == 0) { + if (lasso_strisequal(name_id_policy->Format,LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENCRYPTED)) { do_encrypt_nameid = TRUE; } lasso_assign_gobject(assertion->Subject->NameID, @@ -1106,7 +1115,7 @@ lasso_saml20_login_check_assertion_signature(LassoLogin *login, if (! Issuer || /* No issuer */ ! Issuer->content || /* No issuer content */ (Issuer->Format && - g_strcmp0(Issuer->Format, LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENTITY) != 0)) + lasso_strisnotequal(Issuer->Format,LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENTITY))) /* Issuer format is not entity */ { rc = LASSO_PROFILE_ERROR_MISSING_ISSUER; @@ -1154,7 +1163,7 @@ _lasso_check_assertion_issuer(LassoSaml2Assertion *assertion, const gchar *provi if (! assertion->Issuer || ! assertion->Issuer->content) return FALSE; - return g_strcmp0(assertion->Issuer->content, provider_id) == 0; + return lasso_strisequal(assertion->Issuer->content,provider_id); } static gint @@ -1235,21 +1244,19 @@ lasso_saml20_login_process_response_status_and_assertion(LassoLogin *login) } status_value = response->Status->StatusCode->Value; - if (status_value && g_strcmp0(status_value, LASSO_SAML2_STATUS_CODE_SUCCESS) != 0) { - if (g_strcmp0(status_value, LASSO_SAML2_STATUS_CODE_REQUEST_DENIED) == 0) + if (status_value && lasso_strisnotequal(status_value,LASSO_SAML2_STATUS_CODE_SUCCESS)) { + if (lasso_strisequal(status_value,LASSO_SAML2_STATUS_CODE_REQUEST_DENIED)) return LASSO_LOGIN_ERROR_REQUEST_DENIED; - if (g_strcmp0(status_value, LASSO_SAML2_STATUS_CODE_RESPONDER) == 0 || - g_strcmp0(status_value, LASSO_SAML2_STATUS_CODE_REQUESTER)) { + if (lasso_strisequal(status_value,LASSO_SAML2_STATUS_CODE_RESPONDER) || + lasso_strisequal(status_value,LASSO_SAML2_STATUS_CODE_REQUESTER)) { /* samlp:Responder */ if (response->Status->StatusCode->StatusCode && response->Status->StatusCode->StatusCode->Value) { status_value = response->Status->StatusCode->StatusCode->Value; - if (g_strcmp0(status_value, - LASSO_LIB_STATUS_CODE_FEDERATION_DOES_NOT_EXIST) == 0) { + if (lasso_strisequal(status_value,LASSO_LIB_STATUS_CODE_FEDERATION_DOES_NOT_EXIST)) { return LASSO_LOGIN_ERROR_FEDERATION_NOT_FOUND; } - if (g_strcmp0(status_value, - LASSO_LIB_STATUS_CODE_UNKNOWN_PRINCIPAL) == 0) { + if (lasso_strisequal(status_value,LASSO_LIB_STATUS_CODE_UNKNOWN_PRINCIPAL)) { return LASSO_LOGIN_ERROR_UNKNOWN_PRINCIPAL; } } @@ -1292,7 +1299,7 @@ lasso_saml20_login_process_response_status_and_assertion(LassoLogin *login) if (login->private_data->request_id) { const char *in_response_to = lasso_saml2_assertion_get_in_response_to(assertion); - if (g_strcmp0(in_response_to, login->private_data->request_id) != 0) { + if (lasso_strisnotequal(in_response_to,login->private_data->request_id)) { rc = LASSO_LOGIN_ERROR_ASSERTION_DOES_NOT_MATCH_REQUEST_ID; goto cleanup; } @@ -1349,7 +1356,7 @@ lasso_saml20_login_accept_sso(LassoLogin *login) ta = t->data; - if (g_strcmp0(ta->ID, assertion->ID) == 0) { + if (lasso_strisequal(ta->ID,assertion->ID)) { lasso_release_list(previous_assertions); return LASSO_LOGIN_ERROR_ASSERTION_REPLAY; } @@ -1367,8 +1374,7 @@ lasso_saml20_login_accept_sso(LassoLogin *login) /* create federation, only if nameidentifier format is Federated */ if (ni && ni->Format - && g_strcmp0(ni->Format, - LASSO_SAML2_NAME_IDENTIFIER_FORMAT_PERSISTENT) == 0) { + && lasso_strisequal(ni->Format,LASSO_SAML2_NAME_IDENTIFIER_FORMAT_PERSISTENT)) { federation = lasso_federation_new(LASSO_PROFILE(login)->remote_providerID); lasso_assign_gobject(federation->local_nameIdentifier, ni); diff --git a/lasso/saml-2.0/logout.c b/lasso/saml-2.0/logout.c index fd7f5335..7f677aa2 100644 --- a/lasso/saml-2.0/logout.c +++ b/lasso/saml-2.0/logout.c @@ -121,7 +121,7 @@ lasso_saml20_logout_process_request_msg(LassoLogout *logout, char *request_msg) { LassoProfile *profile = NULL; LassoSamlp2LogoutRequest *logout_request = NULL; - int rc1 = 0, rc2 = 0; + int rc1 = 0, rc2 = 0, rc = 0; lasso_bad_param(LOGOUT, logout); lasso_null_param(request_msg); @@ -130,26 +130,19 @@ lasso_saml20_logout_process_request_msg(LassoLogout *logout, char *request_msg) logout_request = (LassoSamlp2LogoutRequest*) lasso_samlp2_logout_request_new(); rc1 = lasso_saml20_profile_process_any_request(profile, (LassoNode*)logout_request, request_msg); + goto_cleanup_if_fail_with_rc(rc1 == 0, rc1); - logout_request = (LassoSamlp2LogoutRequest*)profile->request; - if (rc1 && ! logout_request) { - return rc1; - } /* remember initial request method, for setting it for generating response */ logout->initial_http_request_method = profile->http_request_method; - rc2 = lasso_saml20_profile_process_name_identifier_decryption(profile, &logout_request->NameID, &logout_request->EncryptedID); + goto_cleanup_if_fail_with_rc(rc2 == 0, rc2); + lasso_check_good_rc(lasso_saml20_profile_check_signature_status(profile)); +cleanup: lasso_release_gobject(logout_request); - if (profile->signature_status) { - return profile->signature_status; - } - if (rc1) { - return rc1; - } - return rc2; + return rc; } int @@ -182,13 +175,6 @@ lasso_saml20_logout_validate_request(LassoLogout *logout) lasso_check_good_rc(lasso_saml20_profile_init_response(profile, response, LASSO_SAML2_STATUS_CODE_SUCCESS, NULL)); - /* verify signature status */ - if (profile->signature_status != 0) { - lasso_saml20_profile_set_response_status_requester(profile, - LASSO_LIB_STATUS_CODE_INVALID_SIGNATURE); - return profile->signature_status; - } - /* Get the name identifier */ name_id = LASSO_SAMLP2_LOGOUT_REQUEST(profile->request)->NameID; if (name_id == NULL) { @@ -236,7 +222,7 @@ lasso_saml20_logout_validate_request(LassoLogout *logout) } assertion_SessionIndex = ((LassoSaml2AuthnStatement*)assertion->AuthnStatement->data)->SessionIndex; - if (g_strcmp0(logout_request->SessionIndex, assertion_SessionIndex) != 0) { + if (lasso_strisnotequal(logout_request->SessionIndex,assertion_SessionIndex)) { lasso_saml20_profile_set_response_status_responder(profile, LASSO_SAML2_STATUS_CODE_REQUEST_DENIED); return LASSO_LOGOUT_ERROR_UNKNOWN_PRINCIPAL; @@ -346,9 +332,16 @@ lasso_saml20_logout_build_response_msg(LassoLogout *logout) if (! LASSO_IS_SAMLP2_STATUS_RESPONSE(profile->response)) { /* no response set here means request denied */ response = (LassoSamlp2StatusResponse*) lasso_samlp2_logout_response_new(); - lasso_check_good_rc(lasso_saml20_profile_init_response(profile, response, - LASSO_SAML2_STATUS_CODE_RESPONDER, - LASSO_SAML2_STATUS_CODE_REQUEST_DENIED)); + /* verify signature status */ + if (lasso_saml20_profile_check_signature_status(profile) != 0) { + lasso_check_good_rc(lasso_saml20_profile_init_response(profile, response, + LASSO_SAML2_STATUS_CODE_REQUESTER, + LASSO_LIB_STATUS_CODE_INVALID_SIGNATURE)); + } else { + lasso_check_good_rc(lasso_saml20_profile_init_response(profile, response, + LASSO_SAML2_STATUS_CODE_RESPONDER, + LASSO_SAML2_STATUS_CODE_REQUEST_DENIED)); + } } /* build logout response message */ @@ -375,6 +368,13 @@ lasso_saml20_logout_process_response_msg(LassoLogout *logout, const char *respon lasso_check_good_rc(lasso_saml20_profile_process_any_response(profile, response, &response_method, response_msg)); + /* only if asked we report, otherwise we do not care */ + if (profile->signature_status && lasso_profile_get_signature_verify_hint(profile) == + LASSO_PROFILE_SIGNATURE_HINT_FORCE) + { + goto_cleanup_with_rc(profile->signature_status); + } + remote_provider = lasso_server_get_provider(logout->parent.server, logout->parent.remote_providerID); goto_cleanup_if_fail_with_rc(LASSO_IS_PROVIDER(remote_provider), @@ -392,11 +392,11 @@ cleanup: value = sub_status_code->Value; - if (g_strcmp0(value, LASSO_SAML2_STATUS_CODE_REQUEST_DENIED) == 0) { + if (lasso_strisequal(value,LASSO_SAML2_STATUS_CODE_REQUEST_DENIED)) { rc = LASSO_LOGOUT_ERROR_REQUEST_DENIED; break; } - if (g_strcmp0(value, LASSO_SAML2_STATUS_CODE_UNKNOWN_PRINCIPAL) == 0) { + if (lasso_strisequal(value,LASSO_SAML2_STATUS_CODE_UNKNOWN_PRINCIPAL)) { rc = LASSO_LOGOUT_ERROR_UNKNOWN_PRINCIPAL; break; } diff --git a/lasso/saml-2.0/name_id_management.c b/lasso/saml-2.0/name_id_management.c index 2fdb6754..0c28106a 100644 --- a/lasso/saml-2.0/name_id_management.c +++ b/lasso/saml-2.0/name_id_management.c @@ -159,38 +159,25 @@ gint lasso_name_id_management_process_request_msg(LassoNameIdManagement *name_id_management, char *request_msg) { - int rc1 = 0, rc2 = 0; LassoProfile *profile = NULL; LassoSamlp2ManageNameIDRequest *request = NULL; + int rc = 0; lasso_bad_param(NAME_ID_MANAGEMENT, name_id_management); lasso_null_param(request_msg); - /* Parsing */ profile = LASSO_PROFILE(name_id_management); request = (LassoSamlp2ManageNameIDRequest*)lasso_samlp2_manage_name_id_request_new(); - rc1 = lasso_saml20_profile_process_any_request(profile, + lasso_check_good_rc(lasso_saml20_profile_process_any_request(profile, (LassoNode*)request, - request_msg); - - if (! LASSO_IS_SAMLP2_MANAGE_NAME_ID_REQUEST(profile->request)) { - return LASSO_PROFILE_ERROR_MISSING_REQUEST; - } - - /* NameID treatment */ - rc2 = lasso_saml20_profile_process_name_identifier_decryption(profile, - &request->NameID, &request->EncryptedID); + request_msg)); + lasso_check_good_rc(lasso_saml20_profile_process_name_identifier_decryption(profile, + &request->NameID, &request->EncryptedID)); + lasso_check_good_rc(lasso_saml20_profile_check_signature_status(profile)); +cleanup: lasso_release_gobject(request); - if (profile->signature_status) { - return profile->signature_status; - } - if (rc1) - return rc1; - if (rc2) - return rc2; - - return 0; + return rc; } @@ -303,6 +290,7 @@ lasso_name_id_management_build_response_msg(LassoNameIdManagement *name_id_manag { LassoProfile *profile = NULL; LassoSamlp2StatusResponse *response; + int rc = 0; lasso_bad_param(NAME_ID_MANAGEMENT, name_id_management); profile = &name_id_management->parent; @@ -310,13 +298,22 @@ lasso_name_id_management_build_response_msg(LassoNameIdManagement *name_id_manag /* no response set here means request denied */ if (! LASSO_IS_SAMLP2_STATUS_RESPONSE(profile->response)) { response = (LassoSamlp2StatusResponse*)lasso_samlp2_manage_name_id_response_new(); - lasso_saml20_profile_init_response(profile, response, LASSO_SAML2_STATUS_CODE_RESPONDER, - LASSO_SAML2_STATUS_CODE_REQUEST_DENIED); + if (lasso_saml20_profile_check_signature_status(profile)) { + lasso_check_good_rc(lasso_saml20_profile_init_response(profile, response, + LASSO_SAML2_STATUS_CODE_REQUESTER, + LASSO_LIB_STATUS_CODE_INVALID_SIGNATURE)); + } else { + lasso_check_good_rc(lasso_saml20_profile_init_response(profile, response, + LASSO_SAML2_STATUS_CODE_RESPONDER, + LASSO_SAML2_STATUS_CODE_REQUEST_DENIED)); + } lasso_release_gobject(response); } /* use the same binding as for the request */ - return lasso_saml20_profile_build_response_msg(profile, "ManageNameIDService", profile->http_request_method, NULL); + rc = lasso_saml20_profile_build_response_msg(profile, "ManageNameIDService", profile->http_request_method, NULL); +cleanup: + return rc; } @@ -348,7 +345,7 @@ lasso_name_id_management_process_response_msg( lasso_check_good_rc(lasso_saml20_profile_process_any_response(profile, response, NULL, response_msg)); /* Stop here if signature validation failed. */ - goto_cleanup_if_fail_with_rc(profile->signature_status == 0, profile->signature_status); + lasso_check_good_rc(lasso_saml20_profile_check_signature_status(profile)); if (LASSO_SAMLP2_MANAGE_NAME_ID_REQUEST(profile->request)->Terminate) { lasso_identity_remove_federation(profile->identity, profile->remote_providerID); @@ -530,7 +527,7 @@ lasso_name_id_management_new_from_dump(LassoServer *server, const char *dump) * * Dumps @name_id_management content to an XML string. * - * Return value: the dump string. It must be freed by the caller. + * Return value:(transfer full): the dump string. It must be freed by the caller. **/ gchar* lasso_name_id_management_dump(LassoNameIdManagement *name_id_management) diff --git a/lasso/saml-2.0/profile.c b/lasso/saml-2.0/profile.c index 083d05ac..18f7d64c 100644 --- a/lasso/saml-2.0/profile.c +++ b/lasso/saml-2.0/profile.c @@ -605,8 +605,9 @@ cleanup: * validation fails no error code will be returned, you must explicitely verify the * profile->signature_status code. * - * Return value: 0 if parsing is successful (even if signature validation fails), and error code - * otherwise. + * Return value: 0 if parsing is successful (even if signature validation fails), and otherwise, + * LASSO_PROFILE_ERROR_INVALID_MSG, LASSO_PROFILE_ERROR_UNSUPPORTED_PROFILE, * + * LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND. */ int lasso_saml20_profile_process_any_request(LassoProfile *profile, @@ -704,13 +705,15 @@ lasso_saml20_profile_process_soap_request(LassoProfile *profile, remote_provider, request_msg, "ID", LASSO_MESSAGE_FORMAT_SOAP); switch (lasso_profile_get_signature_verify_hint(profile)) { + case LASSO_PROFILE_SIGNATURE_VERIFY_HINT_FORCE: case LASSO_PROFILE_SIGNATURE_VERIFY_HINT_MAYBE: rc = profile->signature_status; break; case LASSO_PROFILE_SIGNATURE_VERIFY_HINT_IGNORE: break; - default: - g_assert(0); + case LASSO_PROFILE_SIGNATURE_VERIFY_HINT_LAST: + g_assert_not_reached(); + break; } cleanup: @@ -1245,6 +1248,11 @@ lasso_saml20_profile_build_response_msg(LassoProfile *profile, char *service, } } + if (url) { + lasso_assign_string(((LassoSamlp2StatusResponse*)profile->response)->Destination, + url); + } + switch (method) { case LASSO_HTTP_METHOD_POST: rc = lasso_saml20_profile_build_post_response_msg(profile, url); @@ -1276,7 +1284,9 @@ _lasso_saml20_is_valid_issuer(LassoSaml2NameID *name_id) { if (! LASSO_IS_SAML2_NAME_ID(name_id)) return FALSE; - if (name_id->Format && g_strcmp0(name_id->Format, LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENTITY) != 0) { + if (name_id->Format && + lasso_strisnotequal(name_id->Format,LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENTITY)) + { return FALSE; } return TRUE; @@ -1377,8 +1387,7 @@ lasso_saml20_profile_process_any_response(LassoProfile *profile, LASSO_PROFILE_ERROR_MISSING_STATUS_CODE); lasso_extract_node_or_fail(status_code1, status->StatusCode, SAMLP2_STATUS_CODE, LASSO_PROFILE_ERROR_MISSING_STATUS_CODE); - if (g_strcmp0(status_code1->Value, - LASSO_SAML2_STATUS_CODE_SUCCESS) != 0) + if (lasso_strisnotequal(status_code1->Value,LASSO_SAML2_STATUS_CODE_SUCCESS)) { LassoSamlp2StatusCode *status_code2 = status_code1->StatusCode; rc = LASSO_PROFILE_ERROR_STATUS_NOT_SUCCESS; @@ -1604,3 +1613,28 @@ lasso_saml20_profile_setup_encrypted_node(LassoProvider *provider, lasso_release_gobject(*node_to_encrypt); return 0; } + +/** + * Check the profile->signature_status flag, if signature validation is activated, report it as an + * error, if not not return 0. + */ +int +lasso_saml20_profile_check_signature_status(LassoProfile *profile) { + int rc = 0; + + if (profile->signature_status) { + switch (lasso_profile_get_signature_verify_hint(profile)) { + case LASSO_PROFILE_SIGNATURE_VERIFY_HINT_MAYBE: + case LASSO_PROFILE_SIGNATURE_VERIFY_HINT_FORCE: + rc = profile->signature_status; + break; + case LASSO_PROFILE_SIGNATURE_VERIFY_HINT_IGNORE: + break; + case LASSO_PROFILE_SIGNATURE_VERIFY_HINT_LAST: + g_assert_not_reached(); + break; + } + } + + return rc; +} diff --git a/lasso/saml-2.0/profileprivate.h b/lasso/saml-2.0/profileprivate.h index 54e3a336..c5b9047c 100644 --- a/lasso/saml-2.0/profileprivate.h +++ b/lasso/saml-2.0/profileprivate.h @@ -78,6 +78,7 @@ gint lasso_profile_saml20_setup_message_signature(LassoProfile *profile, gint lasso_saml20_profile_setup_encrypted_node(LassoProvider *provider, LassoNode **node_to_encrypt, LassoNode **node_destination); int lasso_saml20_profile_setup_subject(LassoProfile *profile, LassoSaml2Subject *subject); +int lasso_saml20_profile_check_signature_status(LassoProfile *profile); #ifdef __cplusplus } diff --git a/lasso/saml-2.0/provider.c b/lasso/saml-2.0/provider.c index 064fe24e..bc9e70f1 100644 --- a/lasso/saml-2.0/provider.c +++ b/lasso/saml-2.0/provider.c @@ -186,10 +186,10 @@ compare_endpoint_type(const EndpointType *a, const EndpointType *b) { return -1; if (a->role > b->role) return +1; - c = g_strcmp0(a->kind, b->kind); + c = g_strcmp0(a->kind,b->kind); if (c != 0) return c; - c = g_strcmp0(a->binding, b->binding); + c = g_strcmp0(a->binding,b->binding); if (c != 0) return c; if (a->is_default && ! b->is_default) @@ -347,7 +347,7 @@ load_descriptor(xmlNode *xmlnode, LassoProvider *provider, LassoProviderRole rol break; token = strtok_r(NULL, " ", &saveptr); } - if (g_strcmp0(token, LASSO_SAML2_PROTOCOL_HREF) != 0) { + if (lasso_strisnotequal(token,LASSO_SAML2_PROTOCOL_HREF)) { lasso_release_xml_string(value); return FALSE; } @@ -507,7 +507,7 @@ lasso_saml20_provider_get_first_http_method(G_GNUC_UNUSED LassoProvider *provide lasso_foreach(t, remote_provider->private_data->endpoints) { EndpointType *endpoint_type = (EndpointType*)t->data; - if (endpoint_type && g_strcmp0(endpoint_type->kind, kind) == 0) { + if (endpoint_type && lasso_strisequal(endpoint_type->kind, kind)) { result = binding_uri_to_http_method(endpoint_type->binding); if (result) break; } @@ -535,7 +535,7 @@ lasso_saml20_provider_accept_http_method(G_GNUC_UNUSED LassoProvider *provider, lasso_foreach(t, remote_provider->private_data->endpoints) { EndpointType *endpoint_type = (EndpointType*)t->data; if (endpoint_type && endpoint_type->role == remote_provider->role && - g_strcmp0(endpoint_type->kind, kind) == 0) { + lasso_strisequal(endpoint_type->kind, kind)) { if (binding_uri_to_http_method(endpoint_type->binding) == http_method) { return TRUE; } @@ -550,11 +550,11 @@ lasso_saml20_provider_check_assertion_consumer_service_url(LassoProvider *provid { GList *t = NULL; - lasso_foreach (provider->private_data->endpoints, t) { + lasso_foreach (t, provider->private_data->endpoints) { EndpointType *endpoint_type = (EndpointType*) t->data; if (endpoint_type && endpoint_type->role == LASSO_PROVIDER_ROLE_SP - && g_strcmp0(endpoint_type->url, url) == 0 - && g_strcmp0(endpoint_type->binding, binding) == 0) + && lasso_strisequal(endpoint_type->url,url) + && lasso_strisequal(endpoint_type->binding,binding)) { return TRUE; } @@ -569,7 +569,7 @@ static gboolean match_any(const char *key, const char *array[]) { const char **t = array; while (*t) { - if (g_strcmp0(key, *t) == 0) { + if (lasso_strisequal(key,*t)) { return TRUE; } t++; @@ -590,7 +590,7 @@ lasso_saml20_provider_get_assertion_consumer_service(LassoProvider *provider, in if (! endpoint_type) continue; if (endpoint_type->role == LASSO_PROVIDER_ROLE_SP && - g_strcmp0(endpoint_type->kind, kind) == 0 && + lasso_strisequal(endpoint_type->kind,kind) && endpoint_type->index == service_id) { result = endpoint_type; @@ -603,7 +603,7 @@ lasso_saml20_provider_get_assertion_consumer_service(LassoProvider *provider, in if (! endpoint_type) continue; if (endpoint_type->role == LASSO_PROVIDER_ROLE_SP && - g_strcmp0(endpoint_type->kind, kind) == 0 && + lasso_strisequal(endpoint_type->kind,kind) && match_any(endpoint_type->binding, supported_assertion_consumer_bindings)) { @@ -651,8 +651,8 @@ lasso_saml20_provider_get_assertion_consumer_service_binding_by_url(LassoProvide if (! endpoint_type) continue; if (endpoint_type->role == LASSO_PROVIDER_ROLE_SP && - g_strcmp0(endpoint_type->kind, kind) == 0 && - g_strcmp0(endpoint_type->url, url) == 0) + lasso_strisequal(endpoint_type->kind,kind) && + lasso_strisequal(endpoint_type->url,url)) { return endpoint_type->binding; } @@ -672,8 +672,8 @@ lasso_saml20_provider_get_assertion_consumer_service_url_by_binding(LassoProvide if (! endpoint_type) continue; if (endpoint_type->role == LASSO_PROVIDER_ROLE_SP && - g_strcmp0(endpoint_type->kind, kind) == 0 && - g_strcmp0(endpoint_type->binding, binding) == 0) + lasso_strisequal(endpoint_type->kind,kind) && + lasso_strisequal(endpoint_type->binding,binding)) { return endpoint_type->url; } diff --git a/lasso/saml-2.0/saml2_helper.c b/lasso/saml-2.0/saml2_helper.c index cccc293c..3d835962 100644 --- a/lasso/saml-2.0/saml2_helper.c +++ b/lasso/saml-2.0/saml2_helper.c @@ -87,7 +87,7 @@ lasso_saml2_assertion_is_audience_restricted(LassoSaml2Assertion *saml2_assertio if (LASSO_IS_SAML2_AUDIENCE_RESTRICTION(it->data)) { LassoSaml2AudienceRestriction *saml2_audience_restriction; saml2_audience_restriction = (LassoSaml2AudienceRestriction*)it->data; - if (g_strcmp0(saml2_audience_restriction->Audience, providerID) == 0) + if (lasso_strisequal(saml2_audience_restriction->Audience,providerID)) return TRUE; } } @@ -564,7 +564,7 @@ lasso_saml2_assertion_allows_proxying_to(LassoSaml2Assertion *saml2_assertion, c return LASSO_SAML2_ASSERTION_VALID; /* FIXME: Change saml2:ProxyRestriction class */ - if (g_strcmp0(proxy_restriction->Audience, audience) != 0) { + if (lasso_strisnotequal(proxy_restriction->Audience,audience)) { return LASSO_SAML2_ASSERTION_INVALID; } @@ -597,7 +597,7 @@ lasso_saml2_assertion_validate_audience(LassoSaml2Assertion *saml2_assertion, lasso_foreach_full_begin (LassoSaml2AudienceRestriction*, saml2_audience_restriction, it, saml2_conditions->AudienceRestriction) did_audience = TRUE; - if (g_strcmp0(saml2_audience_restriction->Audience, audience) == 0) { + if (lasso_strisequal(saml2_audience_restriction->Audience,audience)) { found_audience = TRUE; } lasso_foreach_full_end() @@ -654,10 +654,11 @@ lasso_saml2_assertion_get_issuer_provider(const LassoSaml2Assertion *saml2_asser g_return_val_if_fail (LASSO_IS_SAML2_ASSERTION (saml2_assertion), NULL); issuer = saml2_assertion->Issuer; g_return_val_if_fail (LASSO_IS_SAML2_NAME_ID (issuer), NULL); - g_return_val_if_fail (issuer->Format == NULL || g_strcmp0(issuer->Format, - LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENTITY) == 0, NULL); + g_return_val_if_fail (issuer->Format == NULL || + lasso_strisequal(issuer->Format,LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENTITY), + NULL); g_return_val_if_fail (LASSO_IS_SERVER(server), NULL); - if (g_strcmp0(server->parent.ProviderID, issuer->content) == 0) { + if (lasso_strisequal(server->parent.ProviderID,issuer->content)) { return (LassoProvider*)&server->parent; } return lasso_server_get_provider (server, issuer->content); diff --git a/lasso/utils.h b/lasso/utils.h index aa84e77f..3c840963 100644 --- a/lasso/utils.h +++ b/lasso/utils.h @@ -477,11 +477,6 @@ #define lasso_null_param(name) \ g_return_val_if_fail(name != NULL, LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); -inline static gboolean -lasso_is_empty_string(const char *str) { - return ((str) == NULL || (str)[0] == '\0'); -} - /** * lasso_check_non_empty_string: * @str: a char pointer @@ -490,7 +485,7 @@ lasso_is_empty_string(const char *str) { * LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ. */ #define lasso_check_non_empty_string(str) \ - goto_cleanup_if_fail_with_rc(! lasso_is_empty_string(str), \ + goto_cleanup_if_fail_with_rc(! lasso_strisempty(str), \ LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); /* @@ -659,4 +654,22 @@ GObject * lasso_extract_gtype_from_list_or_new(GType type, GList **list, gboolea fprintf(stderr, ## args); \ } +/* Lasso string data helpers */ +inline static gboolean +lasso_strisequal(const char *a, const char *b) { + return (g_strcmp0(a,b) == 0); +} +inline static gboolean +lasso_strisnotequal(const char *a, const char *b) { + return ! lasso_strisequal(a,b); +} +inline static gboolean +lasso_strisempty(const char *str) { + return ((str) == NULL || (str)[0] == '\0'); +} +inline static gboolean +lasso_xmlstrisnotequal(const xmlChar *a, const xmlChar *b) { + return lasso_strisnotequal((char*)a, (char*)b); +} + #endif /* __LASSO_UTILS_H__ */ diff --git a/lasso/xml/Makefile.am b/lasso/xml/Makefile.am index c8513620..bcf0d77d 100644 --- a/lasso/xml/Makefile.am +++ b/lasso/xml/Makefile.am @@ -76,6 +76,7 @@ WSF_C_FILES = \ utility_status.c WSF_H_FILES = \ + idwsf_strings.h \ disco_authenticate_requester.h \ disco_authenticate_session_context.h \ disco_authorize_requester.h \ @@ -193,7 +194,6 @@ liblasso_xml_la_SOURCES = \ liblassoinclude_HEADERS = \ strings.h \ - idwsf_strings.h \ xml.h \ ds_key_info.h \ ds_key_value.h \ diff --git a/lasso/xml/disco_authenticate_requester.c b/lasso/xml/disco_authenticate_requester.c index bde9215e..4455e3d2 100644 --- a/lasso/xml/disco_authenticate_requester.c +++ b/lasso/xml/disco_authenticate_requester.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_authenticate_requester.h" +#include "./idwsf_strings.h" /** * SECTION:disco_authenticate_requester diff --git a/lasso/xml/disco_authenticate_session_context.c b/lasso/xml/disco_authenticate_session_context.c index d71c0cd6..0013f200 100644 --- a/lasso/xml/disco_authenticate_session_context.c +++ b/lasso/xml/disco_authenticate_session_context.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_authenticate_session_context.h" +#include "./idwsf_strings.h" /** * SECTION:disco_authenticate_session_context diff --git a/lasso/xml/disco_authorize_requester.c b/lasso/xml/disco_authorize_requester.c index ef1d05ad..098fe33f 100644 --- a/lasso/xml/disco_authorize_requester.c +++ b/lasso/xml/disco_authorize_requester.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_authorize_requester.h" +#include "./idwsf_strings.h" /** * SECTION:disco_authorize_requester diff --git a/lasso/xml/disco_credentials.c b/lasso/xml/disco_credentials.c index b244c27e..89dd0017 100644 --- a/lasso/xml/disco_credentials.c +++ b/lasso/xml/disco_credentials.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_credentials.h" +#include "./idwsf_strings.h" /** * SECTION:disco_credentials diff --git a/lasso/xml/disco_description.c b/lasso/xml/disco_description.c index 151e202d..37f3410c 100644 --- a/lasso/xml/disco_description.c +++ b/lasso/xml/disco_description.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_description.h" +#include "./idwsf_strings.h" #include "../id-wsf/wsf_utils.h" #include "../utils.h" diff --git a/lasso/xml/disco_encrypt_resource_id.c b/lasso/xml/disco_encrypt_resource_id.c index 5e06c687..f0409a09 100644 --- a/lasso/xml/disco_encrypt_resource_id.c +++ b/lasso/xml/disco_encrypt_resource_id.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_encrypt_resource_id.h" +#include "./idwsf_strings.h" /** * SECTION:disco_encrypt_resource_id diff --git a/lasso/xml/disco_encrypted_resource_id.c b/lasso/xml/disco_encrypted_resource_id.c index b4747d0e..025a951c 100644 --- a/lasso/xml/disco_encrypted_resource_id.c +++ b/lasso/xml/disco_encrypted_resource_id.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_encrypted_resource_id.h" +#include "./idwsf_strings.h" /** * SECTION:disco_encrypted_resource_id diff --git a/lasso/xml/disco_generate_bearer_token.c b/lasso/xml/disco_generate_bearer_token.c index 927ede51..b35e9600 100644 --- a/lasso/xml/disco_generate_bearer_token.c +++ b/lasso/xml/disco_generate_bearer_token.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_generate_bearer_token.h" +#include "./idwsf_strings.h" /** * SECTION:disco_generate_bearer_token diff --git a/lasso/xml/disco_insert_entry.c b/lasso/xml/disco_insert_entry.c index 3fe5adc8..acd861fd 100644 --- a/lasso/xml/disco_insert_entry.c +++ b/lasso/xml/disco_insert_entry.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_insert_entry.h" +#include "./idwsf_strings.h" #include "../utils.h" /** diff --git a/lasso/xml/disco_modify.c b/lasso/xml/disco_modify.c index 7951ec19..a7b2d1a3 100644 --- a/lasso/xml/disco_modify.c +++ b/lasso/xml/disco_modify.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_modify.h" +#include "./idwsf_strings.h" /** * SECTION:disco_modify diff --git a/lasso/xml/disco_modify_response.c b/lasso/xml/disco_modify_response.c index 80c140eb..15d5b015 100644 --- a/lasso/xml/disco_modify_response.c +++ b/lasso/xml/disco_modify_response.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_modify_response.h" +#include "./idwsf_strings.h" /** * SECTION:disco_modify_response diff --git a/lasso/xml/disco_options.c b/lasso/xml/disco_options.c index bfae9526..23d04d6d 100644 --- a/lasso/xml/disco_options.c +++ b/lasso/xml/disco_options.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_options.h" +#include "./idwsf_strings.h" /** * SECTION:disco_options diff --git a/lasso/xml/disco_query.c b/lasso/xml/disco_query.c index 303bd39b..c364ce45 100644 --- a/lasso/xml/disco_query.c +++ b/lasso/xml/disco_query.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_query.h" +#include "./idwsf_strings.h" /** * SECTION:disco_query diff --git a/lasso/xml/disco_query_response.c b/lasso/xml/disco_query_response.c index 945c7f5c..e11eeccc 100644 --- a/lasso/xml/disco_query_response.c +++ b/lasso/xml/disco_query_response.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_query_response.h" +#include "./idwsf_strings.h" /** * SECTION:disco_query_response diff --git a/lasso/xml/disco_remove_entry.c b/lasso/xml/disco_remove_entry.c index 0c34f039..f833c8af 100644 --- a/lasso/xml/disco_remove_entry.c +++ b/lasso/xml/disco_remove_entry.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_remove_entry.h" +#include "./idwsf_strings.h" /** * SECTION:disco_remove_entry diff --git a/lasso/xml/disco_requested_service_type.c b/lasso/xml/disco_requested_service_type.c index c0a077bf..054793cb 100644 --- a/lasso/xml/disco_requested_service_type.c +++ b/lasso/xml/disco_requested_service_type.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_requested_service_type.h" +#include "./idwsf_strings.h" /** * SECTION:disco_requested_service_type diff --git a/lasso/xml/disco_resource_id.c b/lasso/xml/disco_resource_id.c index 48534acf..61e89e8f 100644 --- a/lasso/xml/disco_resource_id.c +++ b/lasso/xml/disco_resource_id.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_resource_id.h" +#include "./idwsf_strings.h" /** * SECTION:disco_resource_id diff --git a/lasso/xml/disco_resource_offering.c b/lasso/xml/disco_resource_offering.c index 3d0402da..c46f953c 100644 --- a/lasso/xml/disco_resource_offering.c +++ b/lasso/xml/disco_resource_offering.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_resource_offering.h" +#include "./idwsf_strings.h" #include "../utils.h" /** diff --git a/lasso/xml/disco_send_single_logout.c b/lasso/xml/disco_send_single_logout.c index 8113777b..155c5939 100644 --- a/lasso/xml/disco_send_single_logout.c +++ b/lasso/xml/disco_send_single_logout.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_send_single_logout.h" +#include "./idwsf_strings.h" #include "../registry.h" /** diff --git a/lasso/xml/disco_service_instance.c b/lasso/xml/disco_service_instance.c index 8351cd49..9dddb8f3 100644 --- a/lasso/xml/disco_service_instance.c +++ b/lasso/xml/disco_service_instance.c @@ -24,6 +24,7 @@ #include "private.h" #include "disco_service_instance.h" +#include "./idwsf_strings.h" /** * SECTION:disco_service_instance diff --git a/lasso/xml/dst_data.c b/lasso/xml/dst_data.c index 0fe42c09..a8af8762 100644 --- a/lasso/xml/dst_data.c +++ b/lasso/xml/dst_data.c @@ -24,6 +24,7 @@ #include "private.h" #include "dst_data.h" +#include "./idwsf_strings.h" /** * SECTION:dst_data diff --git a/lasso/xml/dst_modification.c b/lasso/xml/dst_modification.c index 1a89ecd0..9329b3c4 100644 --- a/lasso/xml/dst_modification.c +++ b/lasso/xml/dst_modification.c @@ -24,6 +24,7 @@ #include "private.h" #include "dst_modification.h" +#include "./idwsf_strings.h" /** * SECTION:dst_modification diff --git a/lasso/xml/dst_modify.c b/lasso/xml/dst_modify.c index 7e8c64ff..46d26dab 100644 --- a/lasso/xml/dst_modify.c +++ b/lasso/xml/dst_modify.c @@ -24,6 +24,7 @@ #include "private.h" #include "dst_modify.h" +#include "./idwsf_strings.h" /** * SECTION:dst_modify diff --git a/lasso/xml/dst_modify_response.c b/lasso/xml/dst_modify_response.c index d0af68bc..2d060c52 100644 --- a/lasso/xml/dst_modify_response.c +++ b/lasso/xml/dst_modify_response.c @@ -24,6 +24,7 @@ #include "private.h" #include "dst_modify_response.h" +#include "./idwsf_strings.h" /** * SECTION:dst_modify_response diff --git a/lasso/xml/dst_new_data.c b/lasso/xml/dst_new_data.c index 92ee96a1..da264bda 100644 --- a/lasso/xml/dst_new_data.c +++ b/lasso/xml/dst_new_data.c @@ -24,6 +24,7 @@ #include "private.h" #include "dst_new_data.h" +#include "./idwsf_strings.h" /** * SECTION:dst_new_data diff --git a/lasso/xml/dst_query.c b/lasso/xml/dst_query.c index 3a7c0724..e77b04cf 100644 --- a/lasso/xml/dst_query.c +++ b/lasso/xml/dst_query.c @@ -24,6 +24,7 @@ #include "private.h" #include "dst_query.h" +#include "./idwsf_strings.h" /** * SECTION:dst_query diff --git a/lasso/xml/dst_query_item.c b/lasso/xml/dst_query_item.c index 66e2014d..8aee38dd 100644 --- a/lasso/xml/dst_query_item.c +++ b/lasso/xml/dst_query_item.c @@ -24,6 +24,7 @@ #include "private.h" #include "dst_query_item.h" +#include "./idwsf_strings.h" /** * SECTION:dst_query_item diff --git a/lasso/xml/dst_query_response.c b/lasso/xml/dst_query_response.c index f1ac4b5c..d1a80781 100644 --- a/lasso/xml/dst_query_response.c +++ b/lasso/xml/dst_query_response.c @@ -24,6 +24,7 @@ #include "private.h" #include "dst_query_response.h" +#include "./idwsf_strings.h" /** * SECTION:dst_query_response diff --git a/lasso/xml/id-wsf-2.0/disco_abstract.c b/lasso/xml/id-wsf-2.0/disco_abstract.c index 3011a987..268f231f 100644 --- a/lasso/xml/id-wsf-2.0/disco_abstract.c +++ b/lasso/xml/id-wsf-2.0/disco_abstract.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_abstract.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_abstract diff --git a/lasso/xml/id-wsf-2.0/disco_endpoint_context.c b/lasso/xml/id-wsf-2.0/disco_endpoint_context.c index b4d33a30..ed6aa27c 100644 --- a/lasso/xml/id-wsf-2.0/disco_endpoint_context.c +++ b/lasso/xml/id-wsf-2.0/disco_endpoint_context.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_endpoint_context.h" +#include "./idwsf2_strings.h" #include "sbf_framework.h" /** diff --git a/lasso/xml/id-wsf-2.0/disco_keys.c b/lasso/xml/id-wsf-2.0/disco_keys.c index 9c7ba5b2..2f809a06 100644 --- a/lasso/xml/id-wsf-2.0/disco_keys.c +++ b/lasso/xml/id-wsf-2.0/disco_keys.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_keys.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_keys diff --git a/lasso/xml/id-wsf-2.0/disco_options.c b/lasso/xml/id-wsf-2.0/disco_options.c index bff87685..f0eb1f3b 100644 --- a/lasso/xml/id-wsf-2.0/disco_options.c +++ b/lasso/xml/id-wsf-2.0/disco_options.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_options.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_options diff --git a/lasso/xml/id-wsf-2.0/disco_provider_id.c b/lasso/xml/id-wsf-2.0/disco_provider_id.c index 66a8e0e4..30cc1211 100644 --- a/lasso/xml/id-wsf-2.0/disco_provider_id.c +++ b/lasso/xml/id-wsf-2.0/disco_provider_id.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_provider_id.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_provider_id diff --git a/lasso/xml/id-wsf-2.0/disco_query.c b/lasso/xml/id-wsf-2.0/disco_query.c index 5f502b71..3cc347fe 100644 --- a/lasso/xml/id-wsf-2.0/disco_query.c +++ b/lasso/xml/id-wsf-2.0/disco_query.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_query.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_query diff --git a/lasso/xml/id-wsf-2.0/disco_query_response.c b/lasso/xml/id-wsf-2.0/disco_query_response.c index 402ad0e4..7c6d50ae 100644 --- a/lasso/xml/id-wsf-2.0/disco_query_response.c +++ b/lasso/xml/id-wsf-2.0/disco_query_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_query_response.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_query_response diff --git a/lasso/xml/id-wsf-2.0/disco_requested_service.c b/lasso/xml/id-wsf-2.0/disco_requested_service.c index 562590ff..e49d84ca 100644 --- a/lasso/xml/id-wsf-2.0/disco_requested_service.c +++ b/lasso/xml/id-wsf-2.0/disco_requested_service.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_requested_service.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_requested_service diff --git a/lasso/xml/id-wsf-2.0/disco_security_context.c b/lasso/xml/id-wsf-2.0/disco_security_context.c index fb89493a..1a7f3829 100644 --- a/lasso/xml/id-wsf-2.0/disco_security_context.c +++ b/lasso/xml/id-wsf-2.0/disco_security_context.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_security_context.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_security_context diff --git a/lasso/xml/id-wsf-2.0/disco_service_context.c b/lasso/xml/id-wsf-2.0/disco_service_context.c index 8ccf85e6..2515618a 100644 --- a/lasso/xml/id-wsf-2.0/disco_service_context.c +++ b/lasso/xml/id-wsf-2.0/disco_service_context.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_service_context.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_service_context diff --git a/lasso/xml/id-wsf-2.0/disco_service_type.c b/lasso/xml/id-wsf-2.0/disco_service_type.c index 6e611b26..1c789bb0 100644 --- a/lasso/xml/id-wsf-2.0/disco_service_type.c +++ b/lasso/xml/id-wsf-2.0/disco_service_type.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_service_type.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_service_type diff --git a/lasso/xml/id-wsf-2.0/disco_svc_md_association_add.c b/lasso/xml/id-wsf-2.0/disco_svc_md_association_add.c index 1a880ac0..9b9707b5 100644 --- a/lasso/xml/id-wsf-2.0/disco_svc_md_association_add.c +++ b/lasso/xml/id-wsf-2.0/disco_svc_md_association_add.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_svc_md_association_add.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_svc_md_association_add diff --git a/lasso/xml/id-wsf-2.0/disco_svc_md_association_add_response.c b/lasso/xml/id-wsf-2.0/disco_svc_md_association_add_response.c index 0285a973..41407a56 100644 --- a/lasso/xml/id-wsf-2.0/disco_svc_md_association_add_response.c +++ b/lasso/xml/id-wsf-2.0/disco_svc_md_association_add_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_svc_md_association_add_response.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_svc_md_association_add_response diff --git a/lasso/xml/id-wsf-2.0/disco_svc_md_association_delete.c b/lasso/xml/id-wsf-2.0/disco_svc_md_association_delete.c index f5a179f7..33328100 100644 --- a/lasso/xml/id-wsf-2.0/disco_svc_md_association_delete.c +++ b/lasso/xml/id-wsf-2.0/disco_svc_md_association_delete.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_svc_md_association_delete.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_svc_md_association_delete diff --git a/lasso/xml/id-wsf-2.0/disco_svc_md_association_delete_response.c b/lasso/xml/id-wsf-2.0/disco_svc_md_association_delete_response.c index 05f875aa..c82ba12b 100644 --- a/lasso/xml/id-wsf-2.0/disco_svc_md_association_delete_response.c +++ b/lasso/xml/id-wsf-2.0/disco_svc_md_association_delete_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_svc_md_association_delete_response.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_svc_md_association_delete_response diff --git a/lasso/xml/id-wsf-2.0/disco_svc_md_association_query.c b/lasso/xml/id-wsf-2.0/disco_svc_md_association_query.c index 9b00bcb5..6236b37c 100644 --- a/lasso/xml/id-wsf-2.0/disco_svc_md_association_query.c +++ b/lasso/xml/id-wsf-2.0/disco_svc_md_association_query.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_svc_md_association_query.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_svc_md_association_query diff --git a/lasso/xml/id-wsf-2.0/disco_svc_md_association_query_response.c b/lasso/xml/id-wsf-2.0/disco_svc_md_association_query_response.c index ab750355..c38f9cf2 100644 --- a/lasso/xml/id-wsf-2.0/disco_svc_md_association_query_response.c +++ b/lasso/xml/id-wsf-2.0/disco_svc_md_association_query_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_svc_md_association_query_response.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_svc_md_association_query_response diff --git a/lasso/xml/id-wsf-2.0/disco_svc_md_delete.c b/lasso/xml/id-wsf-2.0/disco_svc_md_delete.c index 97dcb794..dbe6883d 100644 --- a/lasso/xml/id-wsf-2.0/disco_svc_md_delete.c +++ b/lasso/xml/id-wsf-2.0/disco_svc_md_delete.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_svc_md_delete.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_svc_md_delete diff --git a/lasso/xml/id-wsf-2.0/disco_svc_md_delete_response.c b/lasso/xml/id-wsf-2.0/disco_svc_md_delete_response.c index 95018dc3..9e9e52ec 100644 --- a/lasso/xml/id-wsf-2.0/disco_svc_md_delete_response.c +++ b/lasso/xml/id-wsf-2.0/disco_svc_md_delete_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_svc_md_delete_response.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_svc_md_delete_response diff --git a/lasso/xml/id-wsf-2.0/disco_svc_md_query.c b/lasso/xml/id-wsf-2.0/disco_svc_md_query.c index 824a6c9a..7b607ac2 100644 --- a/lasso/xml/id-wsf-2.0/disco_svc_md_query.c +++ b/lasso/xml/id-wsf-2.0/disco_svc_md_query.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_svc_md_query.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_svc_md_query diff --git a/lasso/xml/id-wsf-2.0/disco_svc_md_query_response.c b/lasso/xml/id-wsf-2.0/disco_svc_md_query_response.c index c1def88b..e09d9dd9 100644 --- a/lasso/xml/id-wsf-2.0/disco_svc_md_query_response.c +++ b/lasso/xml/id-wsf-2.0/disco_svc_md_query_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_svc_md_query_response.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_svc_md_query_response diff --git a/lasso/xml/id-wsf-2.0/disco_svc_md_register.c b/lasso/xml/id-wsf-2.0/disco_svc_md_register.c index 5f67c19d..da02327c 100644 --- a/lasso/xml/id-wsf-2.0/disco_svc_md_register.c +++ b/lasso/xml/id-wsf-2.0/disco_svc_md_register.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_svc_md_register.h" +#include "./idwsf2_strings.h" #include "disco_svc_metadata.h" /** diff --git a/lasso/xml/id-wsf-2.0/disco_svc_md_register_response.c b/lasso/xml/id-wsf-2.0/disco_svc_md_register_response.c index 0e05d852..3f4b8a7e 100644 --- a/lasso/xml/id-wsf-2.0/disco_svc_md_register_response.c +++ b/lasso/xml/id-wsf-2.0/disco_svc_md_register_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_svc_md_register_response.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_svc_md_register_response diff --git a/lasso/xml/id-wsf-2.0/disco_svc_md_replace.c b/lasso/xml/id-wsf-2.0/disco_svc_md_replace.c index 97d5309e..197bbf7d 100644 --- a/lasso/xml/id-wsf-2.0/disco_svc_md_replace.c +++ b/lasso/xml/id-wsf-2.0/disco_svc_md_replace.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_svc_md_replace.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_svc_md_replace diff --git a/lasso/xml/id-wsf-2.0/disco_svc_md_replace_response.c b/lasso/xml/id-wsf-2.0/disco_svc_md_replace_response.c index d0c5e5ff..24aa97dc 100644 --- a/lasso/xml/id-wsf-2.0/disco_svc_md_replace_response.c +++ b/lasso/xml/id-wsf-2.0/disco_svc_md_replace_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_svc_md_replace_response.h" +#include "./idwsf2_strings.h" /** * SECTION:disco_svc_md_replace_response diff --git a/lasso/xml/id-wsf-2.0/disco_svc_metadata.c b/lasso/xml/id-wsf-2.0/disco_svc_metadata.c index cc8117e9..cb2be49c 100644 --- a/lasso/xml/id-wsf-2.0/disco_svc_metadata.c +++ b/lasso/xml/id-wsf-2.0/disco_svc_metadata.c @@ -24,6 +24,7 @@ #include "../private.h" #include "disco_svc_metadata.h" +#include "./idwsf2_strings.h" #include "disco_endpoint_context.h" #include "disco_service_context.h" diff --git a/lasso/xml/id-wsf-2.0/dst_data_response_base.c b/lasso/xml/id-wsf-2.0/dst_data_response_base.c index ddb58df6..c0be1c9e 100644 --- a/lasso/xml/id-wsf-2.0/dst_data_response_base.c +++ b/lasso/xml/id-wsf-2.0/dst_data_response_base.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dst_data_response_base.h" +#include "./idwsf2_strings.h" /** * SECTION:dst_data_response_base diff --git a/lasso/xml/id-wsf-2.0/dst_delete_item_base.c b/lasso/xml/id-wsf-2.0/dst_delete_item_base.c index cef97647..853857d3 100644 --- a/lasso/xml/id-wsf-2.0/dst_delete_item_base.c +++ b/lasso/xml/id-wsf-2.0/dst_delete_item_base.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dst_delete_item_base.h" +#include "./idwsf2_strings.h" /** * SECTION:dst_delete_item_base diff --git a/lasso/xml/id-wsf-2.0/dst_delete_response.c b/lasso/xml/id-wsf-2.0/dst_delete_response.c index 7910c547..1a75b324 100644 --- a/lasso/xml/id-wsf-2.0/dst_delete_response.c +++ b/lasso/xml/id-wsf-2.0/dst_delete_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dst_delete_response.h" +#include "./idwsf2_strings.h" /** * SECTION:dst_delete_response diff --git a/lasso/xml/id-wsf-2.0/dst_request.c b/lasso/xml/id-wsf-2.0/dst_request.c index 473bfd53..6980dd0b 100644 --- a/lasso/xml/id-wsf-2.0/dst_request.c +++ b/lasso/xml/id-wsf-2.0/dst_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dst_request.h" +#include "./idwsf2_strings.h" /** * SECTION:dst_request diff --git a/lasso/xml/id-wsf-2.0/dst_result_query_base.c b/lasso/xml/id-wsf-2.0/dst_result_query_base.c index f640379a..8c423654 100644 --- a/lasso/xml/id-wsf-2.0/dst_result_query_base.c +++ b/lasso/xml/id-wsf-2.0/dst_result_query_base.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dst_result_query_base.h" +#include "./idwsf2_strings.h" /** * SECTION:dst_result_query_base diff --git a/lasso/xml/id-wsf-2.0/dst_test_item_base.c b/lasso/xml/id-wsf-2.0/dst_test_item_base.c index 3816c974..1e0c856c 100644 --- a/lasso/xml/id-wsf-2.0/dst_test_item_base.c +++ b/lasso/xml/id-wsf-2.0/dst_test_item_base.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dst_test_item_base.h" +#include "./idwsf2_strings.h" /** * SECTION:dst_test_item_base diff --git a/lasso/xml/id-wsf-2.0/dstref_app_data.c b/lasso/xml/id-wsf-2.0/dstref_app_data.c index 310e4b8b..39e88306 100644 --- a/lasso/xml/id-wsf-2.0/dstref_app_data.c +++ b/lasso/xml/id-wsf-2.0/dstref_app_data.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_app_data.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_app_data diff --git a/lasso/xml/id-wsf-2.0/dstref_create.c b/lasso/xml/id-wsf-2.0/dstref_create.c index 39b8899a..f1524c8d 100644 --- a/lasso/xml/id-wsf-2.0/dstref_create.c +++ b/lasso/xml/id-wsf-2.0/dstref_create.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_create.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_create diff --git a/lasso/xml/id-wsf-2.0/dstref_create_item.c b/lasso/xml/id-wsf-2.0/dstref_create_item.c index 50fffbaa..d0f8fca5 100644 --- a/lasso/xml/id-wsf-2.0/dstref_create_item.c +++ b/lasso/xml/id-wsf-2.0/dstref_create_item.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_create_item.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_create_item diff --git a/lasso/xml/id-wsf-2.0/dstref_create_response.c b/lasso/xml/id-wsf-2.0/dstref_create_response.c index 6dfc740e..d5709257 100644 --- a/lasso/xml/id-wsf-2.0/dstref_create_response.c +++ b/lasso/xml/id-wsf-2.0/dstref_create_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_create_response.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_create_response diff --git a/lasso/xml/id-wsf-2.0/dstref_data.c b/lasso/xml/id-wsf-2.0/dstref_data.c index afa13556..56c55a46 100644 --- a/lasso/xml/id-wsf-2.0/dstref_data.c +++ b/lasso/xml/id-wsf-2.0/dstref_data.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_data.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_data diff --git a/lasso/xml/id-wsf-2.0/dstref_data_response.c b/lasso/xml/id-wsf-2.0/dstref_data_response.c index 2aefadec..c93d3630 100644 --- a/lasso/xml/id-wsf-2.0/dstref_data_response.c +++ b/lasso/xml/id-wsf-2.0/dstref_data_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_data_response.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_data_response diff --git a/lasso/xml/id-wsf-2.0/dstref_delete.c b/lasso/xml/id-wsf-2.0/dstref_delete.c index d93bb31d..50e54d28 100644 --- a/lasso/xml/id-wsf-2.0/dstref_delete.c +++ b/lasso/xml/id-wsf-2.0/dstref_delete.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_delete.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_delete diff --git a/lasso/xml/id-wsf-2.0/dstref_delete_item.c b/lasso/xml/id-wsf-2.0/dstref_delete_item.c index 2a222e52..6eb7099e 100644 --- a/lasso/xml/id-wsf-2.0/dstref_delete_item.c +++ b/lasso/xml/id-wsf-2.0/dstref_delete_item.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_delete_item.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_delete_item diff --git a/lasso/xml/id-wsf-2.0/dstref_delete_response.c b/lasso/xml/id-wsf-2.0/dstref_delete_response.c index 78d581c3..76d99b4a 100644 --- a/lasso/xml/id-wsf-2.0/dstref_delete_response.c +++ b/lasso/xml/id-wsf-2.0/dstref_delete_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_delete_response.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_delete_response diff --git a/lasso/xml/id-wsf-2.0/dstref_item_data.c b/lasso/xml/id-wsf-2.0/dstref_item_data.c index f2deb087..112f35c3 100644 --- a/lasso/xml/id-wsf-2.0/dstref_item_data.c +++ b/lasso/xml/id-wsf-2.0/dstref_item_data.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_item_data.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_item_data diff --git a/lasso/xml/id-wsf-2.0/dstref_modify.c b/lasso/xml/id-wsf-2.0/dstref_modify.c index 49fc4c09..0e74d2cf 100644 --- a/lasso/xml/id-wsf-2.0/dstref_modify.c +++ b/lasso/xml/id-wsf-2.0/dstref_modify.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_modify.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_modify diff --git a/lasso/xml/id-wsf-2.0/dstref_modify_item.c b/lasso/xml/id-wsf-2.0/dstref_modify_item.c index 7e445311..77b62f16 100644 --- a/lasso/xml/id-wsf-2.0/dstref_modify_item.c +++ b/lasso/xml/id-wsf-2.0/dstref_modify_item.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_modify_item.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_modify_item diff --git a/lasso/xml/id-wsf-2.0/dstref_modify_response.c b/lasso/xml/id-wsf-2.0/dstref_modify_response.c index ad7b014c..93c02e3a 100644 --- a/lasso/xml/id-wsf-2.0/dstref_modify_response.c +++ b/lasso/xml/id-wsf-2.0/dstref_modify_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_modify_response.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_modify_response diff --git a/lasso/xml/id-wsf-2.0/dstref_query.c b/lasso/xml/id-wsf-2.0/dstref_query.c index ead6bbb0..5fef25d4 100644 --- a/lasso/xml/id-wsf-2.0/dstref_query.c +++ b/lasso/xml/id-wsf-2.0/dstref_query.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_query.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_query diff --git a/lasso/xml/id-wsf-2.0/dstref_query_item.c b/lasso/xml/id-wsf-2.0/dstref_query_item.c index f067d3ff..7e680e9a 100644 --- a/lasso/xml/id-wsf-2.0/dstref_query_item.c +++ b/lasso/xml/id-wsf-2.0/dstref_query_item.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_query_item.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_query_item diff --git a/lasso/xml/id-wsf-2.0/dstref_query_response.c b/lasso/xml/id-wsf-2.0/dstref_query_response.c index fccb4c5a..26eb0e75 100644 --- a/lasso/xml/id-wsf-2.0/dstref_query_response.c +++ b/lasso/xml/id-wsf-2.0/dstref_query_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_query_response.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_query_response diff --git a/lasso/xml/id-wsf-2.0/dstref_result_query.c b/lasso/xml/id-wsf-2.0/dstref_result_query.c index a0bafcdc..a2703e17 100644 --- a/lasso/xml/id-wsf-2.0/dstref_result_query.c +++ b/lasso/xml/id-wsf-2.0/dstref_result_query.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_result_query.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_result_query diff --git a/lasso/xml/id-wsf-2.0/dstref_test_item.c b/lasso/xml/id-wsf-2.0/dstref_test_item.c index 8a62d413..5302397a 100644 --- a/lasso/xml/id-wsf-2.0/dstref_test_item.c +++ b/lasso/xml/id-wsf-2.0/dstref_test_item.c @@ -24,6 +24,7 @@ #include "../private.h" #include "dstref_test_item.h" +#include "./idwsf2_strings.h" /** * SECTION:dstref_test_item diff --git a/lasso/xml/id-wsf-2.0/ims_identity_mapping_request.c b/lasso/xml/id-wsf-2.0/ims_identity_mapping_request.c index e29ae42f..09950d0c 100644 --- a/lasso/xml/id-wsf-2.0/ims_identity_mapping_request.c +++ b/lasso/xml/id-wsf-2.0/ims_identity_mapping_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ims_identity_mapping_request.h" +#include "./idwsf2_strings.h" /** * SECTION:ims_identity_mapping_request diff --git a/lasso/xml/id-wsf-2.0/ims_identity_mapping_response.c b/lasso/xml/id-wsf-2.0/ims_identity_mapping_response.c index c51e88c4..5393ff2c 100644 --- a/lasso/xml/id-wsf-2.0/ims_identity_mapping_response.c +++ b/lasso/xml/id-wsf-2.0/ims_identity_mapping_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ims_identity_mapping_response.h" +#include "./idwsf2_strings.h" /** * SECTION:ims_identity_mapping_response diff --git a/lasso/xml/id-wsf-2.0/ims_mapping_input.c b/lasso/xml/id-wsf-2.0/ims_mapping_input.c index 4a6856f0..d32b9ea6 100644 --- a/lasso/xml/id-wsf-2.0/ims_mapping_input.c +++ b/lasso/xml/id-wsf-2.0/ims_mapping_input.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ims_mapping_input.h" +#include "./idwsf2_strings.h" /** * SECTION:ims_mapping_input diff --git a/lasso/xml/id-wsf-2.0/ims_mapping_output.c b/lasso/xml/id-wsf-2.0/ims_mapping_output.c index ac6e6d75..22c533e9 100644 --- a/lasso/xml/id-wsf-2.0/ims_mapping_output.c +++ b/lasso/xml/id-wsf-2.0/ims_mapping_output.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ims_mapping_output.h" +#include "./idwsf2_strings.h" /** * SECTION:ims_mapping_output diff --git a/lasso/xml/id-wsf-2.0/is_help.c b/lasso/xml/id-wsf-2.0/is_help.c index 4f562521..60b1e8b4 100644 --- a/lasso/xml/id-wsf-2.0/is_help.c +++ b/lasso/xml/id-wsf-2.0/is_help.c @@ -24,6 +24,7 @@ #include "../private.h" #include "is_help.h" +#include "./idwsf2_strings.h" /** * SECTION:is_help diff --git a/lasso/xml/id-wsf-2.0/is_inquiry.c b/lasso/xml/id-wsf-2.0/is_inquiry.c index ecd842e9..5e841abc 100644 --- a/lasso/xml/id-wsf-2.0/is_inquiry.c +++ b/lasso/xml/id-wsf-2.0/is_inquiry.c @@ -24,6 +24,7 @@ #include "../private.h" #include "is_inquiry.h" +#include "./idwsf2_strings.h" /** * SECTION:is_inquiry diff --git a/lasso/xml/id-wsf-2.0/is_inquiry_element.c b/lasso/xml/id-wsf-2.0/is_inquiry_element.c index ac5e3f71..bf2a7b0e 100644 --- a/lasso/xml/id-wsf-2.0/is_inquiry_element.c +++ b/lasso/xml/id-wsf-2.0/is_inquiry_element.c @@ -24,6 +24,7 @@ #include "../private.h" #include "is_inquiry_element.h" +#include "./idwsf2_strings.h" /** * SECTION:is_inquiry_element diff --git a/lasso/xml/id-wsf-2.0/is_interaction_request.c b/lasso/xml/id-wsf-2.0/is_interaction_request.c index 11595bcd..26236aef 100644 --- a/lasso/xml/id-wsf-2.0/is_interaction_request.c +++ b/lasso/xml/id-wsf-2.0/is_interaction_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "is_interaction_request.h" +#include "./idwsf2_strings.h" /** * SECTION:is_interaction_request diff --git a/lasso/xml/id-wsf-2.0/is_interaction_response.c b/lasso/xml/id-wsf-2.0/is_interaction_response.c index 25e0ae1d..2158fdd6 100644 --- a/lasso/xml/id-wsf-2.0/is_interaction_response.c +++ b/lasso/xml/id-wsf-2.0/is_interaction_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "is_interaction_response.h" +#include "./idwsf2_strings.h" /** * SECTION:is_interaction_response diff --git a/lasso/xml/id-wsf-2.0/is_interaction_statement.c b/lasso/xml/id-wsf-2.0/is_interaction_statement.c index 4c499537..3142b882 100644 --- a/lasso/xml/id-wsf-2.0/is_interaction_statement.c +++ b/lasso/xml/id-wsf-2.0/is_interaction_statement.c @@ -28,6 +28,7 @@ #include #include "is_interaction_statement.h" +#include "./idwsf2_strings.h" /** * SECTION:is_interaction_statement diff --git a/lasso/xml/id-wsf-2.0/is_item.c b/lasso/xml/id-wsf-2.0/is_item.c index 128499b8..6dc0eba7 100644 --- a/lasso/xml/id-wsf-2.0/is_item.c +++ b/lasso/xml/id-wsf-2.0/is_item.c @@ -24,6 +24,7 @@ #include "../private.h" #include "is_item.h" +#include "./idwsf2_strings.h" /** * SECTION:is_item diff --git a/lasso/xml/id-wsf-2.0/is_parameter.c b/lasso/xml/id-wsf-2.0/is_parameter.c index 144b9a89..4146fd4c 100644 --- a/lasso/xml/id-wsf-2.0/is_parameter.c +++ b/lasso/xml/id-wsf-2.0/is_parameter.c @@ -24,6 +24,7 @@ #include "../private.h" #include "is_parameter.h" +#include "./idwsf2_strings.h" /** * SECTION:is_parameter diff --git a/lasso/xml/id-wsf-2.0/is_select.c b/lasso/xml/id-wsf-2.0/is_select.c index dd8f605c..bf0120e8 100644 --- a/lasso/xml/id-wsf-2.0/is_select.c +++ b/lasso/xml/id-wsf-2.0/is_select.c @@ -24,6 +24,7 @@ #include "../private.h" #include "is_select.h" +#include "./idwsf2_strings.h" /** * SECTION:is_select diff --git a/lasso/xml/id-wsf-2.0/is_text.c b/lasso/xml/id-wsf-2.0/is_text.c index 01f2c40b..a514ec85 100644 --- a/lasso/xml/id-wsf-2.0/is_text.c +++ b/lasso/xml/id-wsf-2.0/is_text.c @@ -24,6 +24,7 @@ #include "../private.h" #include "is_text.h" +#include "./idwsf2_strings.h" /** * SECTION:is_text diff --git a/lasso/xml/id-wsf-2.0/ps_add_collection_request.c b/lasso/xml/id-wsf-2.0/ps_add_collection_request.c index 935b5dea..ebaaba22 100644 --- a/lasso/xml/id-wsf-2.0/ps_add_collection_request.c +++ b/lasso/xml/id-wsf-2.0/ps_add_collection_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_add_collection_request.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_add_collection_request diff --git a/lasso/xml/id-wsf-2.0/ps_add_collection_response.c b/lasso/xml/id-wsf-2.0/ps_add_collection_response.c index f6e4b030..0c6f7649 100644 --- a/lasso/xml/id-wsf-2.0/ps_add_collection_response.c +++ b/lasso/xml/id-wsf-2.0/ps_add_collection_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_add_collection_response.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_add_collection_response diff --git a/lasso/xml/id-wsf-2.0/ps_add_entity_request.c b/lasso/xml/id-wsf-2.0/ps_add_entity_request.c index 8bc65eda..a6d4f5ee 100644 --- a/lasso/xml/id-wsf-2.0/ps_add_entity_request.c +++ b/lasso/xml/id-wsf-2.0/ps_add_entity_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_add_entity_request.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_add_entity_request diff --git a/lasso/xml/id-wsf-2.0/ps_add_entity_response.c b/lasso/xml/id-wsf-2.0/ps_add_entity_response.c index f0c62b65..490455b8 100644 --- a/lasso/xml/id-wsf-2.0/ps_add_entity_response.c +++ b/lasso/xml/id-wsf-2.0/ps_add_entity_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_add_entity_response.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_add_entity_response diff --git a/lasso/xml/id-wsf-2.0/ps_add_known_entity_request.c b/lasso/xml/id-wsf-2.0/ps_add_known_entity_request.c index bb22ae19..3b651508 100644 --- a/lasso/xml/id-wsf-2.0/ps_add_known_entity_request.c +++ b/lasso/xml/id-wsf-2.0/ps_add_known_entity_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_add_known_entity_request.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_add_known_entity_request diff --git a/lasso/xml/id-wsf-2.0/ps_add_known_entity_response.c b/lasso/xml/id-wsf-2.0/ps_add_known_entity_response.c index 0ef7b74e..e586dac7 100644 --- a/lasso/xml/id-wsf-2.0/ps_add_known_entity_response.c +++ b/lasso/xml/id-wsf-2.0/ps_add_known_entity_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_add_known_entity_response.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_add_known_entity_response diff --git a/lasso/xml/id-wsf-2.0/ps_add_to_collection_request.c b/lasso/xml/id-wsf-2.0/ps_add_to_collection_request.c index 78c17604..e0f7b8c1 100644 --- a/lasso/xml/id-wsf-2.0/ps_add_to_collection_request.c +++ b/lasso/xml/id-wsf-2.0/ps_add_to_collection_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_add_to_collection_request.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_add_to_collection_request diff --git a/lasso/xml/id-wsf-2.0/ps_get_object_info_request.c b/lasso/xml/id-wsf-2.0/ps_get_object_info_request.c index 3539135e..e7b5eaee 100644 --- a/lasso/xml/id-wsf-2.0/ps_get_object_info_request.c +++ b/lasso/xml/id-wsf-2.0/ps_get_object_info_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_get_object_info_request.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_get_object_info_request diff --git a/lasso/xml/id-wsf-2.0/ps_get_object_info_response.c b/lasso/xml/id-wsf-2.0/ps_get_object_info_response.c index ea8bd3b9..17321d21 100644 --- a/lasso/xml/id-wsf-2.0/ps_get_object_info_response.c +++ b/lasso/xml/id-wsf-2.0/ps_get_object_info_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_get_object_info_response.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_get_object_info_response diff --git a/lasso/xml/id-wsf-2.0/ps_item_data.c b/lasso/xml/id-wsf-2.0/ps_item_data.c index 31f80fd8..c7e8903f 100644 --- a/lasso/xml/id-wsf-2.0/ps_item_data.c +++ b/lasso/xml/id-wsf-2.0/ps_item_data.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_item_data.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_item_data diff --git a/lasso/xml/id-wsf-2.0/ps_list_members_request.c b/lasso/xml/id-wsf-2.0/ps_list_members_request.c index b1a6ec24..83be47c1 100644 --- a/lasso/xml/id-wsf-2.0/ps_list_members_request.c +++ b/lasso/xml/id-wsf-2.0/ps_list_members_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_list_members_request.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_list_members_request diff --git a/lasso/xml/id-wsf-2.0/ps_list_members_response.c b/lasso/xml/id-wsf-2.0/ps_list_members_response.c index 67f5e84b..1a2618d0 100644 --- a/lasso/xml/id-wsf-2.0/ps_list_members_response.c +++ b/lasso/xml/id-wsf-2.0/ps_list_members_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_list_members_response.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_list_members_response diff --git a/lasso/xml/id-wsf-2.0/ps_notification.c b/lasso/xml/id-wsf-2.0/ps_notification.c index 2de0af96..fbb4b718 100644 --- a/lasso/xml/id-wsf-2.0/ps_notification.c +++ b/lasso/xml/id-wsf-2.0/ps_notification.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_notification.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_notification diff --git a/lasso/xml/id-wsf-2.0/ps_notify.c b/lasso/xml/id-wsf-2.0/ps_notify.c index 259018ac..623a7ede 100644 --- a/lasso/xml/id-wsf-2.0/ps_notify.c +++ b/lasso/xml/id-wsf-2.0/ps_notify.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_notify.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_notify diff --git a/lasso/xml/id-wsf-2.0/ps_object.c b/lasso/xml/id-wsf-2.0/ps_object.c index 2301db99..c0f9c6d9 100644 --- a/lasso/xml/id-wsf-2.0/ps_object.c +++ b/lasso/xml/id-wsf-2.0/ps_object.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_object.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_object diff --git a/lasso/xml/id-wsf-2.0/ps_query_objects_request.c b/lasso/xml/id-wsf-2.0/ps_query_objects_request.c index 27efab22..017a1110 100644 --- a/lasso/xml/id-wsf-2.0/ps_query_objects_request.c +++ b/lasso/xml/id-wsf-2.0/ps_query_objects_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_query_objects_request.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_query_objects_request diff --git a/lasso/xml/id-wsf-2.0/ps_query_objects_response.c b/lasso/xml/id-wsf-2.0/ps_query_objects_response.c index 970d47d1..42d7efb6 100644 --- a/lasso/xml/id-wsf-2.0/ps_query_objects_response.c +++ b/lasso/xml/id-wsf-2.0/ps_query_objects_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_query_objects_response.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_query_objects_response diff --git a/lasso/xml/id-wsf-2.0/ps_remove_collection_request.c b/lasso/xml/id-wsf-2.0/ps_remove_collection_request.c index 8631a246..05b88305 100644 --- a/lasso/xml/id-wsf-2.0/ps_remove_collection_request.c +++ b/lasso/xml/id-wsf-2.0/ps_remove_collection_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_remove_collection_request.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_remove_collection_request diff --git a/lasso/xml/id-wsf-2.0/ps_remove_entity_request.c b/lasso/xml/id-wsf-2.0/ps_remove_entity_request.c index b893b293..fb2c27ba 100644 --- a/lasso/xml/id-wsf-2.0/ps_remove_entity_request.c +++ b/lasso/xml/id-wsf-2.0/ps_remove_entity_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_remove_entity_request.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_remove_entity_request diff --git a/lasso/xml/id-wsf-2.0/ps_remove_from_collection_request.c b/lasso/xml/id-wsf-2.0/ps_remove_from_collection_request.c index d1468c7b..624c2671 100644 --- a/lasso/xml/id-wsf-2.0/ps_remove_from_collection_request.c +++ b/lasso/xml/id-wsf-2.0/ps_remove_from_collection_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_remove_from_collection_request.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_remove_from_collection_request diff --git a/lasso/xml/id-wsf-2.0/ps_request_abstract.c b/lasso/xml/id-wsf-2.0/ps_request_abstract.c index 22594a49..a62e4e57 100644 --- a/lasso/xml/id-wsf-2.0/ps_request_abstract.c +++ b/lasso/xml/id-wsf-2.0/ps_request_abstract.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_request_abstract.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_request_abstract diff --git a/lasso/xml/id-wsf-2.0/ps_resolve_identifier_request.c b/lasso/xml/id-wsf-2.0/ps_resolve_identifier_request.c index c8ac20e7..f2f70c90 100644 --- a/lasso/xml/id-wsf-2.0/ps_resolve_identifier_request.c +++ b/lasso/xml/id-wsf-2.0/ps_resolve_identifier_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_resolve_identifier_request.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_resolve_identifier_request diff --git a/lasso/xml/id-wsf-2.0/ps_resolve_identifier_response.c b/lasso/xml/id-wsf-2.0/ps_resolve_identifier_response.c index 0aec5af0..038ae251 100644 --- a/lasso/xml/id-wsf-2.0/ps_resolve_identifier_response.c +++ b/lasso/xml/id-wsf-2.0/ps_resolve_identifier_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_resolve_identifier_response.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_resolve_identifier_response diff --git a/lasso/xml/id-wsf-2.0/ps_resolve_input.c b/lasso/xml/id-wsf-2.0/ps_resolve_input.c index ca1e9e0a..d7512173 100644 --- a/lasso/xml/id-wsf-2.0/ps_resolve_input.c +++ b/lasso/xml/id-wsf-2.0/ps_resolve_input.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_resolve_input.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_resolve_input diff --git a/lasso/xml/id-wsf-2.0/ps_response_abstract.c b/lasso/xml/id-wsf-2.0/ps_response_abstract.c index ede95e91..6baa41f9 100644 --- a/lasso/xml/id-wsf-2.0/ps_response_abstract.c +++ b/lasso/xml/id-wsf-2.0/ps_response_abstract.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_response_abstract.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_response_abstract diff --git a/lasso/xml/id-wsf-2.0/ps_set_object_info_request.c b/lasso/xml/id-wsf-2.0/ps_set_object_info_request.c index d834ad43..114be6fc 100644 --- a/lasso/xml/id-wsf-2.0/ps_set_object_info_request.c +++ b/lasso/xml/id-wsf-2.0/ps_set_object_info_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_set_object_info_request.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_set_object_info_request diff --git a/lasso/xml/id-wsf-2.0/ps_test_membership_request.c b/lasso/xml/id-wsf-2.0/ps_test_membership_request.c index 49cd97e8..d458b50d 100644 --- a/lasso/xml/id-wsf-2.0/ps_test_membership_request.c +++ b/lasso/xml/id-wsf-2.0/ps_test_membership_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_test_membership_request.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_test_membership_request diff --git a/lasso/xml/id-wsf-2.0/ps_test_membership_response.c b/lasso/xml/id-wsf-2.0/ps_test_membership_response.c index a554f0c3..68b80342 100644 --- a/lasso/xml/id-wsf-2.0/ps_test_membership_response.c +++ b/lasso/xml/id-wsf-2.0/ps_test_membership_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "ps_test_membership_response.h" +#include "./idwsf2_strings.h" /** * SECTION:ps_test_membership_response diff --git a/lasso/xml/id-wsf-2.0/sb2_consent.c b/lasso/xml/id-wsf-2.0/sb2_consent.c index d79dfd83..f8e64ba3 100644 --- a/lasso/xml/id-wsf-2.0/sb2_consent.c +++ b/lasso/xml/id-wsf-2.0/sb2_consent.c @@ -24,6 +24,7 @@ #include "../private.h" #include "sb2_consent.h" +#include "./idwsf2_strings.h" /** * SECTION:sb2_consent diff --git a/lasso/xml/id-wsf-2.0/sb2_credentials_context.c b/lasso/xml/id-wsf-2.0/sb2_credentials_context.c index d823a5c6..907cf1f2 100644 --- a/lasso/xml/id-wsf-2.0/sb2_credentials_context.c +++ b/lasso/xml/id-wsf-2.0/sb2_credentials_context.c @@ -24,6 +24,7 @@ #include "../private.h" #include "sb2_credentials_context.h" +#include "./idwsf2_strings.h" /** * SECTION:sb2_credentials_context diff --git a/lasso/xml/id-wsf-2.0/sb2_endpoint_update.c b/lasso/xml/id-wsf-2.0/sb2_endpoint_update.c index 2fa372e0..9835cfad 100644 --- a/lasso/xml/id-wsf-2.0/sb2_endpoint_update.c +++ b/lasso/xml/id-wsf-2.0/sb2_endpoint_update.c @@ -24,6 +24,7 @@ #include "../private.h" #include "sb2_endpoint_update.h" +#include "./idwsf2_strings.h" /** * SECTION:sb2_endpoint_update diff --git a/lasso/xml/id-wsf-2.0/sb2_redirect_request.c b/lasso/xml/id-wsf-2.0/sb2_redirect_request.c index 00f9f20b..92ffb20d 100644 --- a/lasso/xml/id-wsf-2.0/sb2_redirect_request.c +++ b/lasso/xml/id-wsf-2.0/sb2_redirect_request.c @@ -24,6 +24,7 @@ #include "../private.h" #include "sb2_redirect_request.h" +#include "./idwsf2_strings.h" /** * SECTION:sb2_redirect_request diff --git a/lasso/xml/id-wsf-2.0/sb2_sender.c b/lasso/xml/id-wsf-2.0/sb2_sender.c index f970fc63..49297ece 100644 --- a/lasso/xml/id-wsf-2.0/sb2_sender.c +++ b/lasso/xml/id-wsf-2.0/sb2_sender.c @@ -24,6 +24,7 @@ #include "../private.h" #include "sb2_sender.h" +#include "./idwsf2_strings.h" /** * SECTION:sb2_sender diff --git a/lasso/xml/id-wsf-2.0/sb2_target_identity.c b/lasso/xml/id-wsf-2.0/sb2_target_identity.c index 3c566698..47a5a888 100644 --- a/lasso/xml/id-wsf-2.0/sb2_target_identity.c +++ b/lasso/xml/id-wsf-2.0/sb2_target_identity.c @@ -24,6 +24,7 @@ #include "../private.h" #include "sb2_target_identity.h" +#include "./idwsf2_strings.h" /** * SECTION:sb2_target_identity diff --git a/lasso/xml/id-wsf-2.0/sb2_timeout.c b/lasso/xml/id-wsf-2.0/sb2_timeout.c index e4369ab5..d8deead6 100644 --- a/lasso/xml/id-wsf-2.0/sb2_timeout.c +++ b/lasso/xml/id-wsf-2.0/sb2_timeout.c @@ -24,6 +24,7 @@ #include "../private.h" #include "sb2_timeout.h" +#include "./idwsf2_strings.h" /** * SECTION:sb2_timeout diff --git a/lasso/xml/id-wsf-2.0/sb2_usage_directive.c b/lasso/xml/id-wsf-2.0/sb2_usage_directive.c index b0f06989..245c54ae 100644 --- a/lasso/xml/id-wsf-2.0/sb2_usage_directive.c +++ b/lasso/xml/id-wsf-2.0/sb2_usage_directive.c @@ -24,6 +24,7 @@ #include "../private.h" #include "sb2_usage_directive.h" +#include "./idwsf2_strings.h" /** * SECTION:sb2_usage_directive diff --git a/lasso/xml/id-wsf-2.0/sb2_user_interaction_header.c b/lasso/xml/id-wsf-2.0/sb2_user_interaction_header.c index f046f987..fed08990 100644 --- a/lasso/xml/id-wsf-2.0/sb2_user_interaction_header.c +++ b/lasso/xml/id-wsf-2.0/sb2_user_interaction_header.c @@ -24,6 +24,7 @@ #include "../private.h" #include "sb2_user_interaction_header.h" +#include "./idwsf2_strings.h" #include "../../registry.h" /** diff --git a/lasso/xml/id-wsf-2.0/sbf_framework.c b/lasso/xml/id-wsf-2.0/sbf_framework.c index 81e8c7db..b8a77cf8 100644 --- a/lasso/xml/id-wsf-2.0/sbf_framework.c +++ b/lasso/xml/id-wsf-2.0/sbf_framework.c @@ -24,6 +24,7 @@ #include "../private.h" #include "sbf_framework.h" +#include "./idwsf2_strings.h" /** * SECTION:sbf_framework diff --git a/lasso/xml/id-wsf-2.0/sec_token.c b/lasso/xml/id-wsf-2.0/sec_token.c index 316d29ac..a9977080 100644 --- a/lasso/xml/id-wsf-2.0/sec_token.c +++ b/lasso/xml/id-wsf-2.0/sec_token.c @@ -24,6 +24,7 @@ #include "../private.h" #include "sec_token.h" +#include "./idwsf2_strings.h" /** * SECTION:sec_token diff --git a/lasso/xml/id-wsf-2.0/sec_token_policy.c b/lasso/xml/id-wsf-2.0/sec_token_policy.c index 21551b2f..936fcada 100644 --- a/lasso/xml/id-wsf-2.0/sec_token_policy.c +++ b/lasso/xml/id-wsf-2.0/sec_token_policy.c @@ -24,6 +24,7 @@ #include "../private.h" #include "sec_token_policy.h" +#include "./idwsf2_strings.h" /** * SECTION:sec_token_policy diff --git a/lasso/xml/id-wsf-2.0/sec_transited_provider_path.c b/lasso/xml/id-wsf-2.0/sec_transited_provider_path.c index 45ef9381..0c689d46 100644 --- a/lasso/xml/id-wsf-2.0/sec_transited_provider_path.c +++ b/lasso/xml/id-wsf-2.0/sec_transited_provider_path.c @@ -24,6 +24,7 @@ #include "../private.h" #include "sec_transited_provider_path.h" +#include "./idwsf2_strings.h" /** * SECTION:sec_transited_provider_path diff --git a/lasso/xml/id-wsf-2.0/subs_notification.c b/lasso/xml/id-wsf-2.0/subs_notification.c index 0c44468c..60b14d25 100644 --- a/lasso/xml/id-wsf-2.0/subs_notification.c +++ b/lasso/xml/id-wsf-2.0/subs_notification.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subs_notification.h" +#include "./idwsf2_strings.h" /** * SECTION:subs_notification diff --git a/lasso/xml/id-wsf-2.0/subs_notify_response.c b/lasso/xml/id-wsf-2.0/subs_notify_response.c index 5d6111ea..7d652565 100644 --- a/lasso/xml/id-wsf-2.0/subs_notify_response.c +++ b/lasso/xml/id-wsf-2.0/subs_notify_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subs_notify_response.h" +#include "./idwsf2_strings.h" /** * SECTION:subs_notify_response diff --git a/lasso/xml/id-wsf-2.0/subs_ref_item.c b/lasso/xml/id-wsf-2.0/subs_ref_item.c index 649b6455..d0d0db64 100644 --- a/lasso/xml/id-wsf-2.0/subs_ref_item.c +++ b/lasso/xml/id-wsf-2.0/subs_ref_item.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subs_ref_item.h" +#include "./idwsf2_strings.h" /** * SECTION:subs_ref_item diff --git a/lasso/xml/id-wsf-2.0/subs_subscription.c b/lasso/xml/id-wsf-2.0/subs_subscription.c index 560935fd..89f0a79a 100644 --- a/lasso/xml/id-wsf-2.0/subs_subscription.c +++ b/lasso/xml/id-wsf-2.0/subs_subscription.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subs_subscription.h" +#include "./idwsf2_strings.h" /** * SECTION:subs_subscription diff --git a/lasso/xml/id-wsf-2.0/subsref_app_data.c b/lasso/xml/id-wsf-2.0/subsref_app_data.c index b8a36594..d19c0872 100644 --- a/lasso/xml/id-wsf-2.0/subsref_app_data.c +++ b/lasso/xml/id-wsf-2.0/subsref_app_data.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_app_data.h" +#include "./idwsf2_strings.h" #include "../../registry.h" /** diff --git a/lasso/xml/id-wsf-2.0/subsref_create.c b/lasso/xml/id-wsf-2.0/subsref_create.c index 30632793..a0351054 100644 --- a/lasso/xml/id-wsf-2.0/subsref_create.c +++ b/lasso/xml/id-wsf-2.0/subsref_create.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_create.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_create diff --git a/lasso/xml/id-wsf-2.0/subsref_create_item.c b/lasso/xml/id-wsf-2.0/subsref_create_item.c index 428cacdb..8c34ab6b 100644 --- a/lasso/xml/id-wsf-2.0/subsref_create_item.c +++ b/lasso/xml/id-wsf-2.0/subsref_create_item.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_create_item.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_create_item diff --git a/lasso/xml/id-wsf-2.0/subsref_create_response.c b/lasso/xml/id-wsf-2.0/subsref_create_response.c index 777db44c..027c6a7f 100644 --- a/lasso/xml/id-wsf-2.0/subsref_create_response.c +++ b/lasso/xml/id-wsf-2.0/subsref_create_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_create_response.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_create_response diff --git a/lasso/xml/id-wsf-2.0/subsref_data.c b/lasso/xml/id-wsf-2.0/subsref_data.c index 0eed93c4..5dd459ca 100644 --- a/lasso/xml/id-wsf-2.0/subsref_data.c +++ b/lasso/xml/id-wsf-2.0/subsref_data.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_data.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_data diff --git a/lasso/xml/id-wsf-2.0/subsref_data_response.c b/lasso/xml/id-wsf-2.0/subsref_data_response.c index ba216857..e84ba41d 100644 --- a/lasso/xml/id-wsf-2.0/subsref_data_response.c +++ b/lasso/xml/id-wsf-2.0/subsref_data_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_data_response.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_data_response diff --git a/lasso/xml/id-wsf-2.0/subsref_delete.c b/lasso/xml/id-wsf-2.0/subsref_delete.c index 2f863635..2de5c558 100644 --- a/lasso/xml/id-wsf-2.0/subsref_delete.c +++ b/lasso/xml/id-wsf-2.0/subsref_delete.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_delete.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_delete diff --git a/lasso/xml/id-wsf-2.0/subsref_delete_item.c b/lasso/xml/id-wsf-2.0/subsref_delete_item.c index a2de9bca..626de918 100644 --- a/lasso/xml/id-wsf-2.0/subsref_delete_item.c +++ b/lasso/xml/id-wsf-2.0/subsref_delete_item.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_delete_item.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_delete_item diff --git a/lasso/xml/id-wsf-2.0/subsref_delete_response.c b/lasso/xml/id-wsf-2.0/subsref_delete_response.c index 232aa158..8f3c523d 100644 --- a/lasso/xml/id-wsf-2.0/subsref_delete_response.c +++ b/lasso/xml/id-wsf-2.0/subsref_delete_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_delete_response.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_delete_response diff --git a/lasso/xml/id-wsf-2.0/subsref_item_data.c b/lasso/xml/id-wsf-2.0/subsref_item_data.c index 81de1ff3..b32f9816 100644 --- a/lasso/xml/id-wsf-2.0/subsref_item_data.c +++ b/lasso/xml/id-wsf-2.0/subsref_item_data.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_item_data.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_item_data diff --git a/lasso/xml/id-wsf-2.0/subsref_modify.c b/lasso/xml/id-wsf-2.0/subsref_modify.c index a8841b38..f5aa5094 100644 --- a/lasso/xml/id-wsf-2.0/subsref_modify.c +++ b/lasso/xml/id-wsf-2.0/subsref_modify.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_modify.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_modify diff --git a/lasso/xml/id-wsf-2.0/subsref_modify_item.c b/lasso/xml/id-wsf-2.0/subsref_modify_item.c index ed260af7..6edebd20 100644 --- a/lasso/xml/id-wsf-2.0/subsref_modify_item.c +++ b/lasso/xml/id-wsf-2.0/subsref_modify_item.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_modify_item.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_modify_item diff --git a/lasso/xml/id-wsf-2.0/subsref_modify_response.c b/lasso/xml/id-wsf-2.0/subsref_modify_response.c index c09dd128..043bb748 100644 --- a/lasso/xml/id-wsf-2.0/subsref_modify_response.c +++ b/lasso/xml/id-wsf-2.0/subsref_modify_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_modify_response.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_modify_response diff --git a/lasso/xml/id-wsf-2.0/subsref_notification.c b/lasso/xml/id-wsf-2.0/subsref_notification.c index 2230de18..40d2a60e 100644 --- a/lasso/xml/id-wsf-2.0/subsref_notification.c +++ b/lasso/xml/id-wsf-2.0/subsref_notification.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_notification.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_notification diff --git a/lasso/xml/id-wsf-2.0/subsref_notify.c b/lasso/xml/id-wsf-2.0/subsref_notify.c index 66359ab4..ad2af64e 100644 --- a/lasso/xml/id-wsf-2.0/subsref_notify.c +++ b/lasso/xml/id-wsf-2.0/subsref_notify.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_notify.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_notify diff --git a/lasso/xml/id-wsf-2.0/subsref_notify_response.c b/lasso/xml/id-wsf-2.0/subsref_notify_response.c index bf0e39aa..7f9873ce 100644 --- a/lasso/xml/id-wsf-2.0/subsref_notify_response.c +++ b/lasso/xml/id-wsf-2.0/subsref_notify_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_notify_response.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_notify_response diff --git a/lasso/xml/id-wsf-2.0/subsref_query.c b/lasso/xml/id-wsf-2.0/subsref_query.c index be2d439a..3fa66270 100644 --- a/lasso/xml/id-wsf-2.0/subsref_query.c +++ b/lasso/xml/id-wsf-2.0/subsref_query.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_query.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_query diff --git a/lasso/xml/id-wsf-2.0/subsref_query_item.c b/lasso/xml/id-wsf-2.0/subsref_query_item.c index 94f53d8e..d2fd60ec 100644 --- a/lasso/xml/id-wsf-2.0/subsref_query_item.c +++ b/lasso/xml/id-wsf-2.0/subsref_query_item.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_query_item.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_query_item diff --git a/lasso/xml/id-wsf-2.0/subsref_query_response.c b/lasso/xml/id-wsf-2.0/subsref_query_response.c index cb5d903c..9c25c176 100644 --- a/lasso/xml/id-wsf-2.0/subsref_query_response.c +++ b/lasso/xml/id-wsf-2.0/subsref_query_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_query_response.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_query_response diff --git a/lasso/xml/id-wsf-2.0/subsref_result_query.c b/lasso/xml/id-wsf-2.0/subsref_result_query.c index c1d8c2b3..5e927ac2 100644 --- a/lasso/xml/id-wsf-2.0/subsref_result_query.c +++ b/lasso/xml/id-wsf-2.0/subsref_result_query.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_result_query.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_result_query diff --git a/lasso/xml/id-wsf-2.0/subsref_subscription.c b/lasso/xml/id-wsf-2.0/subsref_subscription.c index 5f4f29eb..cdee8528 100644 --- a/lasso/xml/id-wsf-2.0/subsref_subscription.c +++ b/lasso/xml/id-wsf-2.0/subsref_subscription.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_subscription.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_subscription diff --git a/lasso/xml/id-wsf-2.0/subsref_test_item.c b/lasso/xml/id-wsf-2.0/subsref_test_item.c index 87607a89..b6eb2b80 100644 --- a/lasso/xml/id-wsf-2.0/subsref_test_item.c +++ b/lasso/xml/id-wsf-2.0/subsref_test_item.c @@ -24,6 +24,7 @@ #include "../private.h" #include "subsref_test_item.h" +#include "./idwsf2_strings.h" /** * SECTION:subsref_test_item diff --git a/lasso/xml/id-wsf-2.0/util_empty.c b/lasso/xml/id-wsf-2.0/util_empty.c index a6abff87..580218e0 100644 --- a/lasso/xml/id-wsf-2.0/util_empty.c +++ b/lasso/xml/id-wsf-2.0/util_empty.c @@ -24,6 +24,7 @@ #include "../private.h" #include "util_empty.h" +#include "./idwsf2_strings.h" /** * SECTION:util_empty diff --git a/lasso/xml/id-wsf-2.0/util_extension.c b/lasso/xml/id-wsf-2.0/util_extension.c index d9facdf1..ce92a2c6 100644 --- a/lasso/xml/id-wsf-2.0/util_extension.c +++ b/lasso/xml/id-wsf-2.0/util_extension.c @@ -24,6 +24,7 @@ #include "../private.h" #include "util_extension.h" +#include "./idwsf2_strings.h" /** * SECTION:util_extension diff --git a/lasso/xml/id-wsf-2.0/util_response.c b/lasso/xml/id-wsf-2.0/util_response.c index bea09585..93146e90 100644 --- a/lasso/xml/id-wsf-2.0/util_response.c +++ b/lasso/xml/id-wsf-2.0/util_response.c @@ -24,6 +24,7 @@ #include "../private.h" #include "util_response.h" +#include "./idwsf2_strings.h" #include "../../utils.h" /** diff --git a/lasso/xml/id-wsf-2.0/util_status.c b/lasso/xml/id-wsf-2.0/util_status.c index 1464097f..b0bf328b 100644 --- a/lasso/xml/id-wsf-2.0/util_status.c +++ b/lasso/xml/id-wsf-2.0/util_status.c @@ -24,6 +24,7 @@ #include "../private.h" #include "util_status.h" +#include "./idwsf2_strings.h" #include "../../utils.h" /** diff --git a/lasso/xml/idwsf_strings.h b/lasso/xml/idwsf_strings.h index 09fce002..e462f27c 100644 --- a/lasso/xml/idwsf_strings.h +++ b/lasso/xml/idwsf_strings.h @@ -41,8 +41,6 @@ #ifndef __LASSO_IDWSF_STRINGS_H__ #define __LASSO_IDWSF_STRINGS_H__ -#include "./id-wsf-2.0/idwsf2_strings.h" - /*****************************************************************************/ /* Liberty Alliance ID-WSF */ /*****************************************************************************/ @@ -402,26 +400,6 @@ #define LASSO_WSSE_USERNAME_TOKEN_PROFILE_PASSWORD_TEXT \ LASSO_WSSE_USERNAME_TOKEN_PROFILE_HREF "#PasswordText" -/* - * WS-Security Utility - */ - -/** - * LASSO_WSUTIL1_HREF: - * - * Namespace for FIXME - * - */ -#define LASSO_WSUTIL1_HREF \ - "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" -/** - * LASSO_WSUTIL1_PREFIX: - * - * Preferred prefix for namespace of FIXME - * - */ -#define LASSO_WSUTIL1_PREFIX "wsutil" - /* WS-Addressing */ /** * LASSO_WSA_HREF: diff --git a/lasso/xml/is_help.c b/lasso/xml/is_help.c index f9ceed75..d93ae609 100644 --- a/lasso/xml/is_help.c +++ b/lasso/xml/is_help.c @@ -24,6 +24,7 @@ #include "private.h" #include "is_help.h" +#include "./idwsf_strings.h" /** * SECTION:is_help diff --git a/lasso/xml/is_inquiry.c b/lasso/xml/is_inquiry.c index d4ac0d74..d6ee8a3b 100644 --- a/lasso/xml/is_inquiry.c +++ b/lasso/xml/is_inquiry.c @@ -24,6 +24,7 @@ #include "private.h" #include "is_inquiry.h" +#include "./idwsf_strings.h" /** * SECTION:is_inquiry diff --git a/lasso/xml/is_inquiry_element.c b/lasso/xml/is_inquiry_element.c index ae8b4ec8..5eb8f7c7 100644 --- a/lasso/xml/is_inquiry_element.c +++ b/lasso/xml/is_inquiry_element.c @@ -24,6 +24,7 @@ #include "private.h" #include "is_inquiry_element.h" +#include "./idwsf_strings.h" /** * SECTION:is_inquiry_element diff --git a/lasso/xml/is_interaction_request.c b/lasso/xml/is_interaction_request.c index 8b3a9079..55cd40f7 100644 --- a/lasso/xml/is_interaction_request.c +++ b/lasso/xml/is_interaction_request.c @@ -24,6 +24,7 @@ #include "private.h" #include "is_interaction_request.h" +#include "./idwsf_strings.h" /** * SECTION:is_interaction_request diff --git a/lasso/xml/is_interaction_response.c b/lasso/xml/is_interaction_response.c index 8b176b36..f4f5c358 100644 --- a/lasso/xml/is_interaction_response.c +++ b/lasso/xml/is_interaction_response.c @@ -24,6 +24,7 @@ #include "private.h" #include "is_interaction_response.h" +#include "./idwsf_strings.h" /** * SECTION:is_interaction_response diff --git a/lasso/xml/is_interaction_statement.c b/lasso/xml/is_interaction_statement.c index bc587668..1defe3db 100644 --- a/lasso/xml/is_interaction_statement.c +++ b/lasso/xml/is_interaction_statement.c @@ -24,6 +24,7 @@ #include "private.h" #include "is_interaction_statement.h" +#include "./idwsf_strings.h" /** * SECTION:is_interaction_statement diff --git a/lasso/xml/is_item.c b/lasso/xml/is_item.c index 4e2b3975..ab78e6bf 100644 --- a/lasso/xml/is_item.c +++ b/lasso/xml/is_item.c @@ -24,6 +24,7 @@ #include "private.h" #include "is_item.h" +#include "./idwsf_strings.h" /** * SECTION:is_item diff --git a/lasso/xml/is_parameter.c b/lasso/xml/is_parameter.c index 387c5ef5..14f35e6d 100644 --- a/lasso/xml/is_parameter.c +++ b/lasso/xml/is_parameter.c @@ -24,6 +24,7 @@ #include "private.h" #include "is_parameter.h" +#include "./idwsf_strings.h" /** * SECTION:is_parameter diff --git a/lasso/xml/is_redirect_request.c b/lasso/xml/is_redirect_request.c index fcdb4cdd..e8936cfe 100644 --- a/lasso/xml/is_redirect_request.c +++ b/lasso/xml/is_redirect_request.c @@ -24,6 +24,7 @@ #include "private.h" #include "is_redirect_request.h" +#include "./idwsf_strings.h" /** * SECTION:is_redirect_request diff --git a/lasso/xml/is_select.c b/lasso/xml/is_select.c index e3f2a03e..cf0523bf 100644 --- a/lasso/xml/is_select.c +++ b/lasso/xml/is_select.c @@ -24,6 +24,7 @@ #include "private.h" #include "is_select.h" +#include "./idwsf_strings.h" /** * SECTION:is_select diff --git a/lasso/xml/is_text.c b/lasso/xml/is_text.c index 83093caa..60087e03 100644 --- a/lasso/xml/is_text.c +++ b/lasso/xml/is_text.c @@ -24,6 +24,7 @@ #include "private.h" #include "is_text.h" +#include "./idwsf_strings.h" /** * SECTION:is_text diff --git a/lasso/xml/is_user_interaction.c b/lasso/xml/is_user_interaction.c index 3c53558e..4f214192 100644 --- a/lasso/xml/is_user_interaction.c +++ b/lasso/xml/is_user_interaction.c @@ -24,6 +24,7 @@ #include "private.h" #include "is_user_interaction.h" +#include "./idwsf_strings.h" /** * SECTION:is_user_interaction diff --git a/lasso/xml/sa_credentials.c b/lasso/xml/sa_credentials.c index 13a468b3..ee7aefd1 100644 --- a/lasso/xml/sa_credentials.c +++ b/lasso/xml/sa_credentials.c @@ -24,6 +24,7 @@ #include "private.h" #include "sa_credentials.h" +#include "./idwsf_strings.h" /** * SECTION:sa_credentials diff --git a/lasso/xml/sa_parameter.c b/lasso/xml/sa_parameter.c index 27212073..147b8166 100644 --- a/lasso/xml/sa_parameter.c +++ b/lasso/xml/sa_parameter.c @@ -24,6 +24,7 @@ #include "private.h" #include "sa_parameter.h" +#include "./idwsf_strings.h" /** * SECTION:sa_parameter diff --git a/lasso/xml/sa_password_transforms.c b/lasso/xml/sa_password_transforms.c index f9862ec4..4f09cf2e 100644 --- a/lasso/xml/sa_password_transforms.c +++ b/lasso/xml/sa_password_transforms.c @@ -24,6 +24,7 @@ #include "private.h" #include "sa_password_transforms.h" +#include "./idwsf_strings.h" /** * SECTION:sa_password_transforms diff --git a/lasso/xml/sa_sasl_request.c b/lasso/xml/sa_sasl_request.c index 65b41a16..467e1f8b 100644 --- a/lasso/xml/sa_sasl_request.c +++ b/lasso/xml/sa_sasl_request.c @@ -24,6 +24,7 @@ #include "private.h" #include "sa_sasl_request.h" +#include "./idwsf_strings.h" /** * SECTION:sa_sasl_request diff --git a/lasso/xml/sa_sasl_response.c b/lasso/xml/sa_sasl_response.c index 64769935..4dfcf3a0 100644 --- a/lasso/xml/sa_sasl_response.c +++ b/lasso/xml/sa_sasl_response.c @@ -24,6 +24,7 @@ #include "private.h" #include "sa_sasl_response.h" +#include "./idwsf_strings.h" /** * SECTION:sa_sasl_response diff --git a/lasso/xml/sa_transform.c b/lasso/xml/sa_transform.c index 1204166a..b27a5f88 100644 --- a/lasso/xml/sa_transform.c +++ b/lasso/xml/sa_transform.c @@ -24,6 +24,7 @@ #include "private.h" #include "sa_transform.h" +#include "./idwsf_strings.h" /** * SECTION:sa_transform diff --git a/lasso/xml/saml-2.0/saml2_name_id.c b/lasso/xml/saml-2.0/saml2_name_id.c index 698cec0d..8405c47d 100644 --- a/lasso/xml/saml-2.0/saml2_name_id.c +++ b/lasso/xml/saml-2.0/saml2_name_id.c @@ -163,13 +163,13 @@ lasso_saml2_name_id_equals(LassoSaml2NameID *name_id, LassoSaml2NameID *other_na return FALSE; /* check optional content */ - if (g_strcmp0(name_id->Format, other_name_id->Format) != 0) + if (lasso_strisnotequal(name_id->Format,other_name_id->Format)) return FALSE; - if (g_strcmp0(name_id->SPProvidedID, other_name_id->SPProvidedID) != 0) + if (lasso_strisnotequal(name_id->SPProvidedID,other_name_id->SPProvidedID)) return FALSE; - if (g_strcmp0(name_id->NameQualifier, other_name_id->NameQualifier) != 0) + if (lasso_strisnotequal(name_id->NameQualifier,other_name_id->NameQualifier)) return FALSE; - if (g_strcmp0(name_id->SPNameQualifier, other_name_id->SPNameQualifier) != 0) + if (lasso_strisnotequal(name_id->SPNameQualifier,other_name_id->SPNameQualifier)) return FALSE; return TRUE; diff --git a/lasso/xml/saml-2.0/samlp2_logout_request.c b/lasso/xml/saml-2.0/samlp2_logout_request.c index 3d7e3ad8..a4576685 100644 --- a/lasso/xml/saml-2.0/samlp2_logout_request.c +++ b/lasso/xml/saml-2.0/samlp2_logout_request.c @@ -127,6 +127,7 @@ get_xmlNode(LassoNode *node, gboolean lasso_dump) #endif } ((LassoSamlp2LogoutRequest*)node)->SessionIndex = keep_session_index; + lasso_release_list_of_strings(other_session_index); return xmlnode; } diff --git a/lasso/xml/saml-2.0/samlp2_response.c b/lasso/xml/saml-2.0/samlp2_response.c index 3299e644..056ea948 100644 --- a/lasso/xml/saml-2.0/samlp2_response.c +++ b/lasso/xml/saml-2.0/samlp2_response.c @@ -84,7 +84,7 @@ get_xmlNode(LassoNode *node, gboolean lasso_dump) if (encrypted_element != NULL) { lasso_list_add_new_gobject(response->EncryptedAssertion, encrypted_element); } else { - lasso_list_add_new_gobject(response->Assertion, assertions->data); + lasso_list_add_gobject(response->Assertion, assertions->data); } } } @@ -93,7 +93,7 @@ get_xmlNode(LassoNode *node, gboolean lasso_dump) if (lasso_dump == FALSE) { lasso_release_list_of_gobjects(response->EncryptedAssertion); - lasso_assign_list(response->Assertion, Assertion_save); + lasso_assign_new_list_of_gobjects(response->Assertion, Assertion_save); } return result; diff --git a/lasso/xml/sec_resource_access_statement.c b/lasso/xml/sec_resource_access_statement.c index 34810a5e..6f1578d1 100644 --- a/lasso/xml/sec_resource_access_statement.c +++ b/lasso/xml/sec_resource_access_statement.c @@ -24,6 +24,7 @@ #include "private.h" #include "sec_resource_access_statement.h" +#include "./idwsf_strings.h" /* * value->id != xmlSecOpenSSLKeyDataRsaId) { ret = critical_error(LASSO_DS_ERROR_PUBLIC_KEY_LOAD_FAILED); goto done; @@ -834,7 +834,7 @@ lasso_saml2_query_verify_signature(const char *query, const xmlSecKey *sender_pu goto done; } key_size = RSA_size(rsa); - } else if (g_strcmp0(usig_alg, (char*)xmlSecHrefDsaSha1) == 0) { + } else if (lasso_strisequal(usig_alg,(char *)xmlSecHrefDsaSha1)) { if (sender_public_key->value->id != xmlSecOpenSSLKeyDataDsaId) { ret = critical_error(LASSO_DS_ERROR_PUBLIC_KEY_LOAD_FAILED); goto done; @@ -2130,6 +2130,7 @@ next: } cleanup: + lasso_release_key_manager(keys_mngr); return result; } diff --git a/lasso/xml/ws/wsa_attributed_any.c b/lasso/xml/ws/wsa_attributed_any.c index 294912c5..dd47df52 100644 --- a/lasso/xml/ws/wsa_attributed_any.c +++ b/lasso/xml/ws/wsa_attributed_any.c @@ -24,6 +24,7 @@ #include "../private.h" #include "wsa_attributed_any.h" +#include "../idwsf_strings.h" /* * Schema fragment (ws-addr.xsd): diff --git a/lasso/xml/ws/wsa_attributed_qname.c b/lasso/xml/ws/wsa_attributed_qname.c index 012fac3a..5b71af91 100644 --- a/lasso/xml/ws/wsa_attributed_qname.c +++ b/lasso/xml/ws/wsa_attributed_qname.c @@ -24,6 +24,7 @@ #include "../private.h" #include "wsa_attributed_qname.h" +#include "../idwsf_strings.h" /* * Schema fragment (ws-addr.xsd): diff --git a/lasso/xml/ws/wsa_attributed_unsigned_long.c b/lasso/xml/ws/wsa_attributed_unsigned_long.c index 156a5215..5d25bdaf 100644 --- a/lasso/xml/ws/wsa_attributed_unsigned_long.c +++ b/lasso/xml/ws/wsa_attributed_unsigned_long.c @@ -24,6 +24,7 @@ #include "../private.h" #include "wsa_attributed_unsigned_long.h" +#include "../idwsf_strings.h" /* * Schema fragment (ws-addr.xsd): diff --git a/lasso/xml/ws/wsa_attributed_uri.c b/lasso/xml/ws/wsa_attributed_uri.c index 06b56e01..37be4ab5 100644 --- a/lasso/xml/ws/wsa_attributed_uri.c +++ b/lasso/xml/ws/wsa_attributed_uri.c @@ -24,6 +24,7 @@ #include "../private.h" #include "wsa_attributed_uri.h" +#include "../idwsf_strings.h" #include "../../registry.h" /* diff --git a/lasso/xml/ws/wsa_endpoint_reference.c b/lasso/xml/ws/wsa_endpoint_reference.c index a55a7e74..3bb1b1a4 100644 --- a/lasso/xml/ws/wsa_endpoint_reference.c +++ b/lasso/xml/ws/wsa_endpoint_reference.c @@ -24,6 +24,7 @@ #include "../private.h" #include "wsa_endpoint_reference.h" +#include "../idwsf_strings.h" #include "../../registry.h" /* diff --git a/lasso/xml/ws/wsa_metadata.c b/lasso/xml/ws/wsa_metadata.c index 54efb525..e3c4dc4b 100644 --- a/lasso/xml/ws/wsa_metadata.c +++ b/lasso/xml/ws/wsa_metadata.c @@ -24,6 +24,7 @@ #include "../private.h" #include "wsa_metadata.h" +#include "../idwsf_strings.h" /* * Schema fragment (ws-addr.xsd): diff --git a/lasso/xml/ws/wsa_problem_action.c b/lasso/xml/ws/wsa_problem_action.c index 1957e408..5ad135da 100644 --- a/lasso/xml/ws/wsa_problem_action.c +++ b/lasso/xml/ws/wsa_problem_action.c @@ -24,6 +24,7 @@ #include "../private.h" #include "wsa_problem_action.h" +#include "../idwsf_strings.h" /* * Schema fragment (ws-addr.xsd): diff --git a/lasso/xml/ws/wsa_reference_parameters.c b/lasso/xml/ws/wsa_reference_parameters.c index 279e0977..8a4d95fe 100644 --- a/lasso/xml/ws/wsa_reference_parameters.c +++ b/lasso/xml/ws/wsa_reference_parameters.c @@ -24,6 +24,7 @@ #include "../private.h" #include "wsa_reference_parameters.h" +#include "../idwsf_strings.h" /* * Schema fragment (ws-addr.xsd): diff --git a/lasso/xml/ws/wsa_relates_to.c b/lasso/xml/ws/wsa_relates_to.c index dc657380..13cb4aec 100644 --- a/lasso/xml/ws/wsa_relates_to.c +++ b/lasso/xml/ws/wsa_relates_to.c @@ -24,6 +24,7 @@ #include "../private.h" #include "wsa_relates_to.h" +#include "../idwsf_strings.h" /* * Schema fragment (ws-addr.xsd): diff --git a/lasso/xml/ws/wsse_embedded.c b/lasso/xml/ws/wsse_embedded.c index c8efcb58..e219c1b6 100644 --- a/lasso/xml/ws/wsse_embedded.c +++ b/lasso/xml/ws/wsse_embedded.c @@ -24,6 +24,7 @@ #include "../private.h" #include "wsse_embedded.h" +#include "../idwsf_strings.h" /* * Schema fragment (oasis-200401-wss-wssecurity-secext-1.0.xsd): diff --git a/lasso/xml/ws/wsse_reference.c b/lasso/xml/ws/wsse_reference.c index 21a0dfdd..556dd4b4 100644 --- a/lasso/xml/ws/wsse_reference.c +++ b/lasso/xml/ws/wsse_reference.c @@ -24,6 +24,7 @@ #include "../private.h" #include "wsse_reference.h" +#include "../idwsf_strings.h" /* * Schema fragment (oasis-200401-wss-wssecurity-secext-1.0.xsd): diff --git a/lasso/xml/ws/wsse_security_header.c b/lasso/xml/ws/wsse_security_header.c index 07ec44f3..1d33f6e6 100644 --- a/lasso/xml/ws/wsse_security_header.c +++ b/lasso/xml/ws/wsse_security_header.c @@ -24,6 +24,7 @@ #include "../private.h" #include "wsse_security_header.h" +#include "../idwsf_strings.h" #include "../../registry.h" /* diff --git a/lasso/xml/ws/wsse_security_token_reference.c b/lasso/xml/ws/wsse_security_token_reference.c index 51d7201b..0748c77a 100644 --- a/lasso/xml/ws/wsse_security_token_reference.c +++ b/lasso/xml/ws/wsse_security_token_reference.c @@ -24,6 +24,7 @@ #include "../private.h" #include "wsse_security_token_reference.h" +#include "../idwsf_strings.h" /* * Schema fragment (oasis-200401-wss-wssecurity-secext-1.0.xsd): diff --git a/lasso/xml/ws/wsse_transformation_parameters.c b/lasso/xml/ws/wsse_transformation_parameters.c index 1f06b0b8..4bc2d0b4 100644 --- a/lasso/xml/ws/wsse_transformation_parameters.c +++ b/lasso/xml/ws/wsse_transformation_parameters.c @@ -24,6 +24,7 @@ #include "../private.h" #include "wsse_transformation_parameters.h" +#include "../idwsf_strings.h" /* * Schema fragment (oasis-200401-wss-wssecurity-secext-1.0.xsd): diff --git a/lasso/xml/ws/wsse_username_token.c b/lasso/xml/ws/wsse_username_token.c index 3f8c81bb..26a72e9c 100644 --- a/lasso/xml/ws/wsse_username_token.c +++ b/lasso/xml/ws/wsse_username_token.c @@ -40,6 +40,7 @@ */ #include "./wsse_username_token.h" +#include "../idwsf_strings.h" #include #include #include diff --git a/lasso/xml/ws/wsu_timestamp.c b/lasso/xml/ws/wsu_timestamp.c index 62bdb60f..e9bbed2c 100644 --- a/lasso/xml/ws/wsu_timestamp.c +++ b/lasso/xml/ws/wsu_timestamp.c @@ -24,6 +24,7 @@ #include "../private.h" #include "wsu_timestamp.h" +#include "../idwsf_strings.h" /* * Schema fragment (oasis-200401-wss-wssecurity-utility-1.0.xsd): diff --git a/lasso/xml/xml.c b/lasso/xml/xml.c index eff4e98c..e143bbff 100644 --- a/lasso/xml/xml.c +++ b/lasso/xml/xml.c @@ -50,6 +50,9 @@ #include "../debug.h" #include "./soap-1.1/soap_envelope.h" #include "./soap-1.1/soap_body.h" +#if LASSO_WSF_ENABLED +#include "./idwsf_strings.h" +#endif static void lasso_node_build_xmlNode_from_snippets(LassoNode *node, xmlNode *xmlnode, struct XmlSnippet *snippets, gboolean lasso_dump); @@ -158,7 +161,7 @@ _lasso_node_export_to_xml(LassoNode *node, gboolean format, gboolean dump, int l * * Dumps @node. All datas in object are dumped in an XML format. * - * Return value: a full XML dump of @node. The string must be freed by the + * Return value:(transfer full): a full XML dump of @node. The string must be freed by the * caller. **/ char* @@ -175,7 +178,7 @@ lasso_node_dump(LassoNode *node) * Create a debug dump for @node, it is pretty printed so any contained signature will be * uncheckable. * - * Return value: a full indented and so human readable dump of @node. The string must be freed by + * Return value:(transfer full): a full indented and so human readable dump of @node. The string must be freed by * the caller. */ char* @@ -467,6 +470,7 @@ lasso_node_export_to_soap(LassoNode *node) lasso_list_add_gobject(body->any, node); ret = lasso_node_export_to_xml((LassoNode*)envelope); lasso_release_gobject(envelope); + lasso_release_gobject(body); return ret; } @@ -861,6 +865,9 @@ _lasso_node_free_custom_element(struct _CustomElement *custom_element) lasso_release_string(custom_element->href); lasso_release_string(custom_element->nodename); lasso_release_ghashtable(custom_element->namespaces); + lasso_release_string(custom_element->private_key); + lasso_release_string(custom_element->private_key_password); + lasso_release_string(custom_element->certificate); } lasso_release(custom_element); } @@ -1559,7 +1566,7 @@ _xmlnode_add_custom_namespace(const char *prefix, const char *href, xmlNode *xml existing = xmlSearchNs(NULL, xmlnode, BAD_CAST prefix); if (existing) { - if (g_strcmp0((char*)existing->href, href) != 0) { + if (lasso_strisnotequal((char *)existing->href,href)) { message(G_LOG_LEVEL_CRITICAL, "Cannot add namespace %s='%s' to node %s, " "namespace already exists with another href", prefix, href, (char*)xmlnode->name); @@ -1967,9 +1974,11 @@ lasso_node_new_from_soap(const char *soap) * */ static const char * -prefix_from_href_and_nodename(const xmlChar *href, const xmlChar *nodename) { +prefix_from_href_and_nodename(const xmlChar *href, G_GNUC_UNUSED const xmlChar *nodename) { char *prefix = NULL; - char *tmp = NULL; +#ifdef LASSO_WSF_ENABLED + char *tmp = NULL +#endif if (strcmp((char*)href, LASSO_LASSO_HREF) == 0) prefix = ""; @@ -1985,6 +1994,7 @@ prefix_from_href_and_nodename(const xmlChar *href, const xmlChar *nodename) { prefix = "Samlp2"; else if (strcmp((char*)href, LASSO_SOAP_ENV_HREF) == 0) prefix = "Soap"; +#ifdef LASSO_WSF_ENABLED else if (strcmp((char*)href, LASSO_SOAP_BINDING_HREF) == 0) prefix = "SoapBinding"; else if (strcmp((char*)href, LASSO_SOAP_BINDING_EXT_HREF) == 0) @@ -2046,6 +2056,7 @@ prefix_from_href_and_nodename(const xmlChar *href, const xmlChar *nodename) { prefix = "Utility"; else if (prefix != NULL && strcmp(prefix, "Sa") == 0 && strcmp((char*)nodename, "Status") == 0) prefix = "Utility"; +#endif return prefix; } @@ -2161,16 +2172,19 @@ lasso_node_new_from_xmlNode(xmlNode *xmlnode) if (! fromXsi) { /* if the typename was not obtained via xsi:type but through mapping of the element * name then keep the element name */ - if (LASSO_NODE_GET_CLASS(node)->node_data && LASSO_NODE_GET_CLASS(node)->node_data->node_name && g_strcmp0((char*)xmlnode->name, - LASSO_NODE_GET_CLASS(node)->node_data->node_name) != 0) { + if (LASSO_NODE_GET_CLASS(node)->node_data && + LASSO_NODE_GET_CLASS(node)->node_data->node_name && + lasso_strisnotequal((char*)xmlnode->name, + LASSO_NODE_GET_CLASS(node)->node_data->node_name)) + { lasso_node_set_custom_nodename(node, (char*)xmlnode->name); } if (xmlnode->ns && (LASSO_NODE_GET_CLASS(node)->node_data == NULL || LASSO_NODE_GET_CLASS(node)->node_data->ns == NULL || - g_strcmp0((char*)xmlnode->ns->href, - (char*)LASSO_NODE_GET_CLASS(node)->node_data->ns->href) - != 0)) { + lasso_xmlstrisnotequal(xmlnode->ns->href, + LASSO_NODE_GET_CLASS(node)->node_data->ns->href))) + { lasso_node_set_custom_namespace(node, (char*)xmlnode->ns->prefix, (char*)xmlnode->ns->href); } @@ -3117,7 +3131,7 @@ xml_insure_namespace(xmlNode *xmlnode, xmlNs *ns, gboolean force, gchar *ns_href if (ns == NULL) { for (ns = xmlnode->nsDef; ns; ns = ns->next) { - if (ns->href && g_strcmp0((gchar*)ns->href, ns_href) == 0) { + if (ns->href && lasso_strisequal((gchar *)ns->href,ns_href)) { break; } } diff --git a/tests/Makefile.am b/tests/Makefile.am index 20b408b0..7414dfb8 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -20,7 +20,7 @@ INCLUDES = \ $(CHECK_CFLAGS) -tests_SOURCES = tests.c login_tests.c basic_tests.c random_tests.c metadata_tests.c login_tests_saml2.c assertion_query_saml2.c $(WSF_TESTS) +tests_SOURCES = tests.c login_tests.c basic_tests.c non_regression_tests.c random_tests.c metadata_tests.c login_tests_saml2.c assertion_query_saml2.c $(WSF_TESTS) tests_LDADD = \ $(top_builddir)/lasso/liblasso.la \ @@ -40,6 +40,29 @@ perfs_SOURCES = perfs.c perfs_LDADD = $(top_builddir)/lasso/liblasso.la $(LASSO_LIBS) perfs_LDFLAGS = -rpath `cd $(top_builddir)/lasso/.libs/; pwd` +.PHONY: valgrind + +LEAKCHECK = G_DEBUG=gc-friendly MALLOC_CHECK_=2 G_SLICE=always-malloc CK_FORK=no \ + valgrind --leak-check=full --log-file=valgrind.log \ + --suppressions=$(top_srcdir)/tests/valgrind/glib.supp \ + --suppressions=$(top_srcdir)/tests/valgrind/openssl.supp \ + --suppressions=$(top_srcdir)/tests/valgrind/lasso.supp \ + --num-callers=50 + +LEAKCHECK_REACHABLE = $(LEAKCHECK) --show-reachable=yes + +MASSIF = G_DEBUG=gc-friendly MALLOC_CHECK_=2 G_SLICE=always-malloc CK_FORK=no \ + valgrind --tool=massif + +leakcheck: + $(LEAKCHECK) ./tests + +leakcheck-reachable: + $(LEAKCHECK_REACHABLE) ./tests + +massif: + $(MASSIF) ./tests + endif EXTRA_DIST = metadata valgrind tests.h $(tests_SOURCES) diff --git a/tests/login_tests.c b/tests/login_tests.c index 54a2d554..43718620 100644 --- a/tests/login_tests.c +++ b/tests/login_tests.c @@ -196,7 +196,7 @@ START_TEST(test02_serviceProviderLogin) "lasso_login_must_ask_for_consent() should be FALSE"); fail_unless(idpLoginContext->parent.msg_relayState != NULL, "lasso_login_process_authn_request_msg should restore the RelayState parameter"); - fail_unless(g_strcmp0(idpLoginContext->parent.msg_relayState, relayState) == 0, + fail_unless(lasso_strisequal(idpLoginContext->parent.msg_relayState,relayState), "lasso_login_process_authn_request_msg should restore the same RelayState thant sent in the request"); rc = lasso_login_validate_request_msg(idpLoginContext, 1, /* authentication_result */ @@ -242,7 +242,7 @@ START_TEST(test02_serviceProviderLogin) LASSO_HTTP_METHOD_REDIRECT); fail_unless(spLoginContext->parent.msg_relayState != NULL, "lasso_login_init_request should restore the RelayState parameter"); - fail_unless(g_strcmp0(spLoginContext->parent.msg_relayState, relayState) == 0, + fail_unless(lasso_strisequal(spLoginContext->parent.msg_relayState,relayState), "lasso_login_init_request should restore the same RelayState thant sent in the request"); fail_unless(rc == 0, "lasso_login_init_request failed"); rc = lasso_login_build_request_msg(spLoginContext); diff --git a/tests/login_tests_saml2.c b/tests/login_tests_saml2.c index 4482448b..0864ec17 100644 --- a/tests/login_tests_saml2.c +++ b/tests/login_tests_saml2.c @@ -58,6 +58,7 @@ generateIdentityProviderContextDump() ret = lasso_server_dump(serverContext); g_object_unref(serverContext); + g_list_free(providers); return ret; } @@ -196,7 +197,7 @@ START_TEST(test02_saml2_serviceProviderLogin) check_equals(idpLoginContext->protocolProfile, LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_ART); check_false(lasso_login_must_ask_for_consent(idpLoginContext)); check_not_null(idpLoginContext->parent.msg_relayState); - check_equals(g_strcmp0(idpLoginContext->parent.msg_relayState, relayState), 0); + check_equals(lasso_strisnotequal(idpLoginContext->parent.msg_relayState,relayState), 0); check_good_rc(lasso_login_validate_request_msg(idpLoginContext, 1, /* authentication_result */ 0 /* is_consent_obtained */ @@ -238,7 +239,7 @@ START_TEST(test02_saml2_serviceProviderLogin) responseQuery, LASSO_HTTP_METHOD_ARTIFACT_GET)); check_not_null(spLoginContext->parent.msg_relayState); - check_equals(g_strcmp0(spLoginContext->parent.msg_relayState, relayState), 0); + check_equals(lasso_strisnotequal(spLoginContext->parent.msg_relayState,relayState), 0); check_good_rc(lasso_login_build_request_msg(spLoginContext)); soapRequestMsg = LASSO_PROFILE(spLoginContext)->msg_body; check_not_null(soapRequestMsg); @@ -542,7 +543,7 @@ START_TEST(test04_sso_then_slo_soap) check_equals(idpLoginContext->protocolProfile, LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_ART); check_false(lasso_login_must_ask_for_consent(idpLoginContext)); check_not_null(idpLoginContext->parent.msg_relayState); - check_equals(g_strcmp0(idpLoginContext->parent.msg_relayState, relayState), 0); + check_equals(lasso_strisnotequal(idpLoginContext->parent.msg_relayState,relayState), 0); check_good_rc(lasso_login_validate_request_msg(idpLoginContext, 1, /* authentication_result */ 0 /* is_consent_obtained */ @@ -584,7 +585,7 @@ START_TEST(test04_sso_then_slo_soap) responseQuery, LASSO_HTTP_METHOD_ARTIFACT_GET)); check_not_null(spLoginContext->parent.msg_relayState); - check_equals(g_strcmp0(spLoginContext->parent.msg_relayState, relayState), 0); + check_equals(lasso_strisnotequal(spLoginContext->parent.msg_relayState,relayState), 0); check_good_rc(lasso_login_build_request_msg(spLoginContext)); soapRequestMsg = LASSO_PROFILE(spLoginContext)->msg_body; check_not_null(soapRequestMsg); @@ -656,6 +657,7 @@ START_TEST(test04_sso_then_slo_soap) check_null(spLogoutContext->parent.msg_relayState); lasso_assign_string(logoutResponseSoapMessage, spLogoutContext->parent.msg_body); lasso_release_gobject(spLogoutContext); + lasso_release_gobject(idpLogoutContext); /* process the response */ check_not_null(idpLogoutContext = lasso_logout_new(idpContext)); diff --git a/tests/non_regression_tests.c b/tests/non_regression_tests.c new file mode 100644 index 00000000..208bc30d --- /dev/null +++ b/tests/non_regression_tests.c @@ -0,0 +1,105 @@ +/* + * Lasso library C unit tests + * + * Copyright (C) 2004-2007 Entr'ouvert + * http://lasso.entrouvert.org + * + * Authors: See AUTHORS file in top-level directory. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include + +#include + +#include <../lasso/lasso.h> +#include "./tests.h" +#include <../lasso/xml/lib_assertion.h> +#include <../lasso/xml/lib_authentication_statement.h> +#include <../lasso/xml/saml_name_identifier.h> +#include <../lasso/xml/samlp_response.h> +#include "../lasso/utils.h" + + +Suite* non_regression_suite(); + +START_TEST(test01_googleapps_27092010) +{ + +/* + * Here the decoded request: + * + * char *gapp_request = "\n\ +google.com"; */ + char *b64_encoded_request = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNhbWxwOkF1dGhuUmVxdWVzdCB4bWxuczpzYW1scD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIgpJRD0ibGZub2VoY2ZnYWdmYmVmaWFpamFlZmRwbmRlcHBnbWZsbGVuZWxpayIgVmVyc2lvbj0iMi4wIgpJc3N1ZUluc3RhbnQ9IjIwMTAtMDktMjdUMTI6NTU6MjlaIgpQcm90b2NvbEJpbmRpbmc9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpiaW5kaW5nczpIVFRQLVBPU1QiClByb3ZpZGVyTmFtZT0iZ29vZ2xlLmNvbSIgSXNQYXNzaXZlPSJmYWxzZSIKQXNzZXJ0aW9uQ29uc3VtZXJTZXJ2aWNlVVJMPSJodHRwczovL3d3dy5nb29nbGUuY29tL2EvbGluaWQub3JnL2FjcyI+PHNhbWw6SXNzdWVyCnhtbG5zOnNhbWw9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDphc3NlcnRpb24iPmdvb2dsZS5jb208L3NhbWw6SXNzdWVyPjxzYW1scDpOYW1lSURQb2xpY3kKQWxsb3dDcmVhdGU9InRydWUiCkZvcm1hdD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6dW5zcGVjaWZpZWQiCi8+PC9zYW1scDpBdXRoblJlcXVlc3Q+Cg=="; + char *metadata = "\n\ +\n\ +\n\ +urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\n\ +\n\ +\n"; + LassoServer *server = NULL; + LassoLogin *login = NULL; + check_not_null(server = lasso_server_new(TESTSDATADIR "/idp5-saml2/metadata.xml", + TESTSDATADIR "/idp5-saml2/private-key.pem", NULL, NULL)); + check_good_rc(lasso_server_add_provider_from_buffer(server, LASSO_PROVIDER_ROLE_SP, + metadata, NULL, NULL)); + check_not_null(login = lasso_login_new(server)); + lasso_profile_set_signature_verify_hint(&login->parent, + LASSO_PROFILE_SIGNATURE_VERIFY_HINT_IGNORE); + check_good_rc(lasso_login_process_authn_request_msg(login, b64_encoded_request)); + check_good_rc(lasso_login_validate_request_msg(login, TRUE, TRUE)); + check_good_rc(lasso_login_build_authn_response_msg(login)); + check_not_null(LASSO_PROFILE(login)->msg_url); + check_not_null(LASSO_PROFILE(login)->msg_body); + lasso_release_gobject(login); + lasso_release_gobject(server); + +} +END_TEST + +struct { + char *name; + void *function; +} tests[] = { + { "Googleapps error from coudot@ on 27-09-2010", test01_googleapps_27092010} +}; + +Suite* +non_regression_suite() +{ + Suite *s = suite_create("Non regression tests"); + unsigned int i = 0; + + for (i = 0 ; i < G_N_ELEMENTS(tests); i++) { + TCase *c = tcase_create(tests[i].name); + void *f = tests[i].function; + tcase_add_test(c, f); + suite_add_tcase(s, c); + } + + return s; +} diff --git a/tests/perfs.c b/tests/perfs.c index 6f60275b..17d2795b 100644 --- a/tests/perfs.c +++ b/tests/perfs.c @@ -25,131 +25,148 @@ #include #include <../lasso/lasso.h> +#include <../lasso/xml/saml-2.0/samlp2_response.h> +#include <../lasso/xml/saml-2.0/samlp2_authn_request.h> + +#define INDEX "5" +#define PROTO "saml2" +#define IDP_METADATA TESTSDATADIR "/idp" INDEX "-" PROTO "/metadata.xml" +#define IDP_PKEY TESTSDATADIR "/idp" INDEX "-" PROTO "/private-key.pem" +#define SP_METADATA TESTSDATADIR "/sp" INDEX "-" PROTO "/metadata.xml" +#define SP_PKEY TESTSDATADIR "/sp" INDEX "-" PROTO "/private-key.pem" char* create_authn_response_msg(char *query); -char* -create_authn_response_msg(char *query) +#define check_good_rc(what) \ + { \ + int _rc = (what); \ + if (_rc != 0) { \ + printf("Error: %s: %s", #what, lasso_strerror(_rc)); \ + exit(-1); \ + } \ + } + +void create_authn_request(LassoLogin *sp_login, G_GNUC_UNUSED LassoLogin *idp_login) { - LassoServer *server; - LassoLogin *login; - char *t; - int rc = 0; - server = lasso_server_new( - TESTSDATADIR "/idp1-la/metadata.xml", - TESTSDATADIR "/idp1-la/private-key-raw.pem", - NULL, /* Secret key to unlock private key */ - TESTSDATADIR "/idp1-la/certificate.pem"); - lasso_server_add_provider( - server, - LASSO_PROVIDER_ROLE_SP, - TESTSDATADIR "/sp1-la/metadata.xml", - TESTSDATADIR "/sp1-la/public-key.pem", - TESTSDATADIR "/ca1-la/certificate.pem"); + check_good_rc(lasso_login_init_authn_request(sp_login, NULL, LASSO_HTTP_METHOD_REDIRECT)); + LASSO_SAMLP2_AUTHN_REQUEST(sp_login->parent.request)->ProtocolBinding = g_strdup(LASSO_SAML2_METADATA_BINDING_POST); + check_good_rc(lasso_login_build_authn_request_msg(sp_login)); +} - login = lasso_login_new(server); - rc = lasso_login_process_authn_request_msg(login, strchr(query, '?')+1); +void +process_authn_request(LassoLogin *sp_login, LassoLogin *idp_login) +{ + check_good_rc(lasso_login_process_authn_request_msg(idp_login, strchr(sp_login->parent.msg_url, '?')+1)); - rc = lasso_login_validate_request_msg(login, 1, 0); - rc = lasso_login_build_assertion(login, +} + +void +create_authn_response(G_GNUC_UNUSED LassoLogin *sp_login, LassoLogin *idp_login) +{ + if (LASSO_SAMLP2_RESPONSE(idp_login->parent.response)->Assertion) { + g_object_unref(LASSO_SAMLP2_RESPONSE(idp_login->parent.response)->Assertion->data); + g_list_free(LASSO_SAMLP2_RESPONSE(idp_login->parent.response)->Assertion); + LASSO_SAMLP2_RESPONSE(idp_login->parent.response)->Assertion = NULL; + } + check_good_rc(lasso_login_validate_request_msg(idp_login, 1, 0)); + lasso_login_build_assertion(idp_login, LASSO_SAML_AUTHENTICATION_METHOD_PASSWORD, "FIXME: authenticationInstant", "FIXME: reauthenticateOnOrAfter", "FIXME: notBefore", "FIXME: notOnOrAfter"); - rc = lasso_login_build_authn_response_msg(login); +#if 0 /* activate for simulating simple signature at the assertion level, request/response + production should be at the same speed */ + lasso_profile_set_signature_hint(&idp_login->parent, LASSO_PROFILE_SIGNATURE_HINT_FORBID); +#endif + check_good_rc(lasso_login_build_authn_response_msg(idp_login)); +} - t = g_strdup(LASSO_PROFILE(login)->msg_body); - lasso_login_destroy(login); - lasso_server_destroy(server); +void +process_authn_response(LassoLogin *sp_login, LassoLogin *idp_login) +{ +#if 0 + lasso_profile_set_signature_verify_hint(&sp_login->parent, LASSO_PROFILE_SIGNATURE_VERIFY_HINT_FORCE); +#endif + check_good_rc(lasso_login_process_authn_response_msg(sp_login, idp_login->parent.msg_body)); + if (sp_login->parent.session) { + g_object_unref(sp_login->parent.session); + sp_login->parent.session = NULL; + } + check_good_rc(lasso_login_accept_sso(sp_login)); +} - return t; +void timing(int n, char *text, void (*f)(LassoLogin *sp_login, LassoLogin *idp_login), LassoLogin + *sp_login, LassoLogin *idp_login) +{ + int i; + struct timeval start, end; + int usec; + fprintf(stdout, text, n); + gettimeofday(&start, NULL); + + for (i = 0; i < n; i++) { + f(sp_login, idp_login); + } + gettimeofday(&end, NULL); + usec = (end.tv_sec*1000000+end.tv_usec)-(start.tv_sec*1000000+start.tv_usec); + fprintf(stdout, " total: %.4f seconds (%f request/second) (%.2f ms/request)\n", + (double)usec/1000000, + (double)n/usec*1000000, + (double)usec/1000/n); } int main(int argc, char *argv[]) { - LassoServer *server; - LassoLogin *login; - LassoLibAuthnRequest *request; - int i, n; - struct timeval start, end; - int usec; - char *authn_response_msg; + LassoServer *sp_server, *idp_server; + LassoLogin *sp_login, *idp_login; + int n; lasso_init(); - server = lasso_server_new( - TESTSDATADIR "/sp1-la/metadata.xml", - TESTSDATADIR "/sp1-la/private-key-raw.pem", + sp_server = lasso_server_new( + SP_METADATA, + SP_PKEY, NULL, /* Secret key to unlock private key */ - TESTSDATADIR "/sp1-la/certificate.pem"); + NULL); lasso_server_add_provider( - server, + sp_server, LASSO_PROVIDER_ROLE_IDP, - TESTSDATADIR "/idp1-la/metadata.xml", - TESTSDATADIR "/idp1-la/public-key.pem", - TESTSDATADIR "/ca1-la/certificate.pem"); + IDP_METADATA, + IDP_PKEY, + NULL); + idp_server = lasso_server_new( + IDP_METADATA, + IDP_PKEY, + NULL, /* Secret key to unlock private key */ + NULL); + lasso_server_add_provider( + idp_server, + LASSO_PROVIDER_ROLE_SP, + SP_METADATA, + SP_PKEY, + NULL); n = 100; if (argc == 2) { n = atoi(argv[1]); } - login = lasso_login_new(server); - - fprintf(stdout, "Generating %d AuthnRequest...\n", n); - gettimeofday(&start, NULL); - for (i=0; i < n; i++) { - fprintf(stderr, "."); - lasso_login_init_authn_request(login, "https://idp1/metadata", - LASSO_HTTP_METHOD_REDIRECT); - request = LASSO_LIB_AUTHN_REQUEST(LASSO_PROFILE(login)->request); - request->IsPassive = 0; - request->NameIDPolicy = g_strdup(LASSO_LIB_NAMEID_POLICY_TYPE_FEDERATED); - request->consent = g_strdup(LASSO_LIB_CONSENT_OBTAINED); - request->ProtocolProfile = g_strdup(LASSO_LIB_PROTOCOL_PROFILE_BRWS_POST); - lasso_login_build_authn_request_msg(login); - if ((i+1)%70 == 0) { - fprintf(stderr, " %d \n", i+1); - } - } - if ((i)%70 != 0) { - fprintf(stderr, " %d \n", i); - } - gettimeofday(&end, NULL); - usec = (end.tv_sec*1000000+end.tv_usec)-(start.tv_sec*1000000+start.tv_usec); - fprintf(stdout, " total: %.4f seconds (%f request/second) (%.2f ms/request)\n", - (double)usec/1000000, - (double)n/usec*1000000, - (double)usec/1000/n); - - authn_response_msg = create_authn_response_msg(LASSO_PROFILE(login)->msg_url); - - fprintf(stdout, "Processing %d AuthnResponse...\n", n); - gettimeofday(&start, NULL); - for (i=0; i < n; i++) { - fprintf(stderr, "."); - lasso_login_process_authn_response_msg(login, authn_response_msg); - lasso_login_accept_sso(login); - if ((i+1)%70 == 0) { - fprintf(stderr, " %d \n", i+1); - } - } - if ((i)%70 != 0) { - fprintf(stderr, " %d \n", i); - } - gettimeofday(&end, NULL); - usec = (end.tv_sec*1000000+end.tv_usec)-(start.tv_sec*1000000+start.tv_usec); - fprintf(stdout, " total: %.4f seconds (%f request/second) (%.2f ms/request)\n", - (double)usec/1000000, - (double)n/usec*1000000, - (double)usec/1000/n); - - g_free(authn_response_msg); - + sp_login = lasso_login_new(sp_server); + idp_login = lasso_login_new(idp_server); + timing(n, "Generating %d AuthnRequest...\n", create_authn_request, sp_login, idp_login); +#if 0 + printf("%s\n", lasso_node_export_to_xml(sp_login->parent.request)); +#endif + timing(n, "Processing %d AuthnRequest...\n", process_authn_request, sp_login, idp_login); + timing(n, "Generating %d AuthnResponse...\n", create_authn_response, sp_login, idp_login); +#if 0 + printf("%s\n", lasso_node_export_to_xml(idp_login->parent.response)); +#endif + timing(n, "Processing %d AuthnResponse...\n", process_authn_response, sp_login, idp_login); return 0; } diff --git a/tests/random_tests.c b/tests/random_tests.c index 8a0f488d..100d5f6b 100644 --- a/tests/random_tests.c +++ b/tests/random_tests.c @@ -125,6 +125,7 @@ START_TEST(test01_server_new) fail_unless(provider->ca_cert_chain == NULL); g_object_unref(server); lasso_release_string(dump); + lasso_release_string(content); } END_TEST diff --git a/tests/tests.c b/tests/tests.c index 3b0267f1..a32d32e9 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -35,6 +35,7 @@ extern Suite* login_saml2_suite(); extern Suite* random_suite(); extern Suite* metadata_suite(); extern Suite* assertion_query_suite(); +extern Suite* non_regression_suite(); #ifdef LASSO_WSF_ENABLED extern Suite* idwsf2_suite(); #endif @@ -48,6 +49,7 @@ SuiteFunction suites[] = { random_suite, metadata_suite, assertion_query_suite, + non_regression_suite, #ifdef LASSO_WSF_ENABLED idwsf2_suite, #endif diff --git a/tests/valgrind/lasso.supp b/tests/valgrind/lasso.supp index d888fe84..b4d22161 100644 --- a/tests/valgrind/lasso.supp +++ b/tests/valgrind/lasso.supp @@ -165,13 +165,3 @@ fun:g_hash_table_new fun:g_quark_from_static_string } -{ - suppression 134 - Memcheck:Leak - fun:calloc - fun:g_slice_alloc - fun:g_string_sized_new - fun:g_log_default_handler - fun:g_logv - fun:g_log -} diff --git a/website/web/doap.rdf b/website/web/doap.rdf index 18323cbe..81d9fe85 100644 --- a/website/web/doap.rdf +++ b/website/web/doap.rdf @@ -61,6 +61,10 @@ + + 2010-10-01 + 2.3.3 + 2010-09-07 2.3.2 diff --git a/website/web/index.xml b/website/web/index.xml index 074fca3a..cf2e521d 100644 --- a/website/web/index.xml +++ b/website/web/index.xml @@ -46,7 +46,7 @@

- The most recent version of Lasso is 2.3.2. You can + The most recent version of Lasso is 2.3.3. You can download the 2.3.2 tarball here or get more options on the general