diff options
| author | Damien Laniel <dlaniel@entrouvert.com> | 2007-04-05 15:06:10 +0000 |
|---|---|---|
| committer | Damien Laniel <dlaniel@entrouvert.com> | 2007-04-05 15:06:10 +0000 |
| commit | a95ec7b488be9593a6cf1d80797d90202b867b4c (patch) | |
| tree | 08d646d3952df5c3c0cf7efe6b2bccc89193d283 | |
| parent | 9777738a17f93e016e952acc907c3dfd75409932 (diff) | |
removed useless comments and wrap too long lines
| -rw-r--r-- | lasso/id-wsf-2.0/discovery.c | 936 | ||||
| -rw-r--r-- | lasso/id-wsf-2.0/discovery.h | 55 | ||||
| -rw-r--r-- | lasso/id-wsf-2.0/wsf2_profile.c | 1286 | ||||
| -rw-r--r-- | lasso/id-wsf-2.0/wsf2_profile.h | 45 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/soap_binding_framework.c | 4 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/soap_binding_framework.h | 20 |
6 files changed, 19 insertions, 2327 deletions
diff --git a/lasso/id-wsf-2.0/discovery.c b/lasso/id-wsf-2.0/discovery.c index 6fa95267..193c53ed 100644 --- a/lasso/id-wsf-2.0/discovery.c +++ b/lasso/id-wsf-2.0/discovery.c @@ -1,4 +1,4 @@ -/* $Id: discovery.c,v 1.75 2007/01/03 23:35:17 fpeters Exp $ +/* $Id: discovery.c,v 1.75 2007/01/03 23:35:17 Exp $ * * Lasso - A free implementation of the Liberty Alliance specifications. * @@ -55,294 +55,9 @@ struct _LassoIdwsf2DiscoveryPrivate }; /*****************************************************************************/ -/* static methods/functions */ +/* public methods */ /*****************************************************************************/ -//static gchar* lasso_discovery_build_credential(LassoDiscovery *discovery, const gchar *providerId); -// -//static gchar* -//lasso_discovery_build_credential(LassoDiscovery *discovery, const gchar *providerId) -//{ -// LassoSoapHeader *header; -// LassoSoapBindingProvider *provider; -// LassoDiscoQueryResponse *response; -// LassoDiscoCredentials *credentials; -// GList *iter; -// -// LassoSamlAssertion *assertion; -// -// LassoSamlAuthenticationStatement *authentication_statement; -// -// LassoSamlSubject *subject; -// LassoSamlNameIdentifier *identifier; -// -// LassoSamlSubjectConfirmation *subject_confirmation; -// -// /* Init assertion informations */ -// assertion = lasso_saml_assertion_new(); -// assertion->AssertionID = lasso_build_unique_id(32); -// assertion->MajorVersion = LASSO_SAML_MAJOR_VERSION_N; -// assertion->MinorVersion = LASSO_SAML_MINOR_VERSION_N; -// assertion->IssueInstant = lasso_get_current_time(); -// assertion->Issuer = \ -// g_strdup(LASSO_PROVIDER(LASSO_WSF_PROFILE(discovery)->server)->ProviderID); -// -// /* Add AuthenticationStatement */ -// authentication_statement = LASSO_SAML_AUTHENTICATION_STATEMENT( -// lasso_saml_authentication_statement_new()); -// authentication_statement->AuthenticationInstant = lasso_get_current_time(); -// subject = LASSO_SAML_SUBJECT(lasso_saml_subject_new()); -// LASSO_SAML_SUBJECT_STATEMENT_ABSTRACT(authentication_statement)->Subject = subject; -// -// /* NameIdentifier */ -// identifier = lasso_saml_name_identifier_new(); -// identifier->NameQualifier = g_strdup( -// LASSO_PROVIDER(LASSO_WSF_PROFILE(discovery)->server)->ProviderID); -// header = LASSO_WSF_PROFILE(discovery)->soap_envelope_request->Header; -// iter = header->Other; -// while (iter) { -// if (LASSO_IS_SOAP_BINDING_PROVIDER(iter->data) == TRUE) { -// provider = LASSO_SOAP_BINDING_PROVIDER(iter->data); -// break; -// } -// iter = iter->next; -// } -// if (provider) { -// identifier->Format = g_strdup(LASSO_LIB_NAME_IDENTIFIER_FORMAT_ENTITYID); -// identifier->content = g_strdup(provider->providerID); -// } else { -// identifier->Format = g_strdup(LASSO_LIB_NAME_IDENTIFIER_FORMAT_FEDERATED); -// } -// subject->NameIdentifier = identifier; -// -// /* SubjectConfirmation */ -// subject_confirmation = lasso_saml_subject_confirmation_new(); -// subject_confirmation->ConfirmationMethod = \ -// g_list_append(subject_confirmation->ConfirmationMethod, -// g_strdup(LASSO_SAML_CONFIRMATION_METHOD_HOLDER_OF_KEY)); -// -// /* Add public key value in credential */ -// { -// LassoDsKeyInfo *key_info; -// LassoDsRsaKeyValue *rsa_key_value; -// LassoDsKeyValue *key_value; -// -// LassoProvider *lasso_provider; -// -// xmlSecKeyInfoCtx *ctx; -// xmlSecKey *public_key; -// xmlSecKeyData *public_key_data; -// -// xmlDoc *doc; -// xmlNode *key_info_node, *xmlnode; -// -// xmlXPathContext *xpathCtx = NULL; -// xmlXPathObject *xpathObj; -// -// lasso_provider = lasso_server_get_provider(LASSO_WSF_PROFILE(discovery)->server, -// (char *) provider->providerID); -// public_key = lasso_provider_get_public_key(lasso_provider); -// public_key_data = xmlSecKeyGetValue(public_key); -// ctx = xmlSecKeyInfoCtxCreate(NULL); -// xmlSecKeyInfoCtxInitialize(ctx, NULL); -// ctx->mode = xmlSecKeyInfoModeWrite; -// ctx->keyReq.keyType = xmlSecKeyDataTypePublic; -// -// doc = xmlSecCreateTree((xmlChar*)"KeyInfo", -// (xmlChar*)"http://www.w3.org/2000/09/xmldsig#"); -// key_info_node = xmlDocGetRootElement(doc); -// xmlSecAddChild(key_info_node, (xmlChar*)"KeyValue", -// (xmlChar*)"http://www.w3.org/2000/09/xmldsig#"); -// -// xmlSecKeyInfoNodeWrite(key_info_node, public_key, ctx); -// -// xpathCtx = xmlXPathNewContext(doc); -// xmlXPathRegisterNs(xpathCtx, (xmlChar*)"ds", -// (xmlChar*)"http://www.w3.org/2000/09/xmldsig#"); -// -// rsa_key_value = lasso_ds_rsa_key_value_new(); -// xpathObj = xmlXPathEvalExpression((xmlChar*)"//ds:Modulus", xpathCtx); -// if (xpathObj->nodesetval && xpathObj->nodesetval->nodeNr) { -// xmlnode = xpathObj->nodesetval->nodeTab[0]; -// rsa_key_value->Modulus = (gchar *) xmlNodeGetContent(xmlnode); -// } -// xmlXPathFreeObject(xpathObj); -// -// xpathObj = xmlXPathEvalExpression((xmlChar*)"//ds:Exponent", xpathCtx); -// if (xpathObj->nodesetval && xpathObj->nodesetval->nodeNr) { -// xmlnode = xpathObj->nodesetval->nodeTab[0]; -// rsa_key_value->Exponent = (gchar *) xmlNodeGetContent(xmlnode); -// } -// xmlXPathFreeObject(xpathObj); -// -// key_value = lasso_ds_key_value_new(); -// key_value->RSAKeyValue = rsa_key_value; -// key_info = lasso_ds_key_info_new(); -// key_info->KeyValue = key_value; -// subject_confirmation->KeyInfo = key_info; -// -// xmlXPathFreeContext(xpathCtx); -// xmlFreeDoc(doc); -// } -// -// subject->SubjectConfirmation = subject_confirmation; -// assertion->AuthenticationStatement = authentication_statement; -// -// /* Add credential to disco:QueryResponse */ -// response = LASSO_DISCO_QUERY_RESPONSE(LASSO_WSF_PROFILE(discovery)->response); -// credentials = lasso_disco_credentials_new(); -// response->Credentials = credentials; -// credentials->any = g_list_append(credentials->any, LASSO_NODE(assertion)); -// -// return g_strdup(assertion->AssertionID); -//} -// -///** -// * lasso_discovery_init_request: -// * @discovery: a LassoDiscovery -// * @resourceOffering: a LassoDiscoResourceOffering -// * @description: a LassoDiscoDescription -// * -// * Generic static method used by lasso_discovery_init_modify() and -// * lasso_discovery_init_query() -// * -// * Return value: 0 on success and a negative value if an error occurs. -// **/ -//static gint -//lasso_discovery_init_request(LassoDiscovery *discovery, -// LassoDiscoResourceOffering *resourceOffering, -// LassoDiscoDescription *description) -//{ -// LassoWsfProfile *profile = LASSO_WSF_PROFILE(discovery); -// -// /* verify that description is present in resourceOffering->ServiceInstance->Description */ -// if (g_list_find(resourceOffering->ServiceInstance->Description, description) == NULL) { -// message(G_LOG_LEVEL_CRITICAL, lasso_strerror(LASSO_PARAM_ERROR_INVALID_VALUE)); -// } -// /* get ResourceID/EncryptedResourceID in description */ -// /* ResourceID and EncryptedResourceID are owned by resourceOffering, -// so increment reference count */ -// if (resourceOffering->ResourceID != NULL) { -// g_object_ref(resourceOffering->ResourceID); -// if (LASSO_IS_DISCO_MODIFY(profile->request)) { -// LASSO_DISCO_MODIFY(profile->request)->ResourceID = \ -// resourceOffering->ResourceID; -// } else if (LASSO_IS_DISCO_QUERY(profile->request)) { -// LASSO_DISCO_QUERY(profile->request)->ResourceID = \ -// resourceOffering->ResourceID; -// } -// } else if (resourceOffering->EncryptedResourceID != NULL) { -// g_object_ref(resourceOffering->EncryptedResourceID); -// if (LASSO_IS_DISCO_MODIFY(profile->request)) { -// LASSO_DISCO_MODIFY(profile->request)->EncryptedResourceID = \ -// resourceOffering->EncryptedResourceID; -// } else if (LASSO_IS_DISCO_QUERY(profile->request)) { -// LASSO_DISCO_QUERY(profile->request)->EncryptedResourceID = \ -// resourceOffering->EncryptedResourceID; -// } -// } -// -// if (description->Endpoint != NULL) { -// profile->msg_url = g_strdup(description->Endpoint); -// } else if (description->WsdlURI != NULL) { -// /* TODO: get Endpoint at WsdlURI */ -// } -// -// return 0; -//} -// -//LassoDiscoInsertEntry* -//lasso_discovery_add_insert_entry(LassoDiscovery *discovery, -// LassoDiscoServiceInstance *serviceInstance, -// LassoDiscoResourceID *resourceId) -//{ -// LassoDiscoModify *modify; -// LassoDiscoInsertEntry *insertEntry; -// LassoDiscoResourceOffering *resourceOffering; -// -// g_return_val_if_fail(LASSO_IS_DISCOVERY(discovery), NULL); -// g_return_val_if_fail(LASSO_IS_DISCO_SERVICE_INSTANCE(serviceInstance), NULL); -// g_return_val_if_fail(LASSO_IS_DISCO_RESOURCE_ID(resourceId), NULL); -// -// modify = LASSO_DISCO_MODIFY(LASSO_WSF_PROFILE(discovery)->request); -// -// /* ResourceOffering elements being inserted MUST NOT contain entryID attributes. */ -// serviceInstance = serviceInstance ? g_object_ref(serviceInstance) : serviceInstance; -// resourceOffering = lasso_disco_resource_offering_new(serviceInstance); -// -// resourceId = resourceId ? g_object_ref(resourceId) : resourceId; -// resourceOffering->ResourceID = resourceId; -// -// insertEntry = lasso_disco_insert_entry_new(resourceOffering); -// -// modify->InsertEntry = g_list_append(modify->InsertEntry, insertEntry); -// -// return insertEntry; -//} -// -//gint -//lasso_discovery_add_remove_entry(LassoDiscovery *discovery, -// const gchar *entryID) -//{ -// LassoDiscoModify *modify; -// -// g_return_val_if_fail(LASSO_IS_DISCOVERY(discovery), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); -// g_return_val_if_fail(entryID != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); -// -// modify = LASSO_DISCO_MODIFY(LASSO_WSF_PROFILE(discovery)->request); -// -// /* add RemoveEntry */ -// modify->RemoveEntry = g_list_append(modify->RemoveEntry, -// lasso_disco_remove_entry_new(entryID)); -// -// return 0; -//} -// -///** -// * lasso_discovery_add_requested_service_type: -// * @discovery: a #LassoDiscovery -// * @service_type: requested service type -// * @option: option to the requested service -// * -// * Adds a request for service of @service_type to the disco:Query being built. -// * -// * Return value: a newly created #LassoDiscoRequestedServiceType with the -// * request. Note that it is internally allocated and shouldn't be freed -// * by the caller. -// **/ -//LassoDiscoRequestedServiceType* -//lasso_discovery_add_requested_service_type(LassoDiscovery *discovery, -// const gchar *service_type, -// const gchar *option) -//{ -// LassoDiscoQuery *query; -// LassoDiscoRequestedServiceType *rst; -// LassoDiscoOptions *opts = NULL; -// -// g_return_val_if_fail(LASSO_IS_DISCOVERY(discovery), NULL); -// g_return_val_if_fail(service_type != NULL, NULL); -// /* option is optional */ -// -// query = LASSO_DISCO_QUERY(LASSO_WSF_PROFILE(discovery)->request); -// if (query == NULL) { -// /* missing request */ -// return NULL; -// } -// -// rst = lasso_disco_requested_service_type_new(service_type); -// -// /* optionals data */ -// if (option != NULL) { -// opts = lasso_disco_options_new(); -// opts->Option = g_list_append(opts->Option, (gpointer)option); -// rst->Options = opts; -// } -// -// /* add RequestedServiceType */ -// query->RequestedServiceType = g_list_append(query->RequestedServiceType, (gpointer)rst); -// -// return rst; -//} /** * lasso_discovery_destroy: @@ -357,211 +72,6 @@ lasso_idwsf2_discovery_destroy(LassoIdwsf2Discovery *discovery) g_object_unref(G_OBJECT(discovery)); } -//gint -//lasso_discovery_init_modify(LassoDiscovery *discovery, -// LassoDiscoResourceOffering *resourceOffering, -// LassoDiscoDescription *description) -//{ -// LassoSoapEnvelope *envelope; -// LassoDiscoModify *modify; -// -// g_return_val_if_fail(LASSO_IS_DISCOVERY(discovery), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); -// g_return_val_if_fail(LASSO_IS_DISCO_RESOURCE_OFFERING(resourceOffering), -// LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); -// g_return_val_if_fail(LASSO_IS_DISCO_DESCRIPTION(description), -// LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); -// -// modify = lasso_disco_modify_new(); -// LASSO_WSF_PROFILE(discovery)->request = LASSO_NODE(modify); -// -// envelope = lasso_wsf_profile_build_soap_envelope(NULL, NULL); -// LASSO_WSF_PROFILE(discovery)->soap_envelope_request = envelope; -// envelope->Body->any = g_list_append(envelope->Body->any, modify); -// -// return lasso_discovery_init_request(discovery, resourceOffering, description); -//} -// -//static LassoDiscoResourceOffering* -//lasso_discovery_get_resource_offering_auto(LassoDiscovery *discovery, const gchar *service_type) -//{ -// LassoSession *session; -// GList *assertions, *iter, *iter2, *iter3, *iter4; -// LassoDiscoResourceOffering *resource_offering = NULL; -// -// if (LASSO_WSF_PROFILE(discovery)->session == NULL) { -// return NULL; -// } -// -// session = LASSO_WSF_PROFILE(discovery)->session; -// assertions = lasso_session_get_assertions(session, NULL); -// iter = assertions; -// while (iter) { -// LassoSamlAssertion *assertion = iter->data; -// iter = g_list_next(iter); -// if (assertion->AttributeStatement == NULL) -// continue; -// iter2 = assertion->AttributeStatement->Attribute; -// while (iter2) { -// LassoSamlAttribute *attribute = iter2->data; -// iter2 = g_list_next(iter2); -// if (strcmp(attribute->attributeName, "DiscoveryResourceOffering") != 0) -// continue; -// iter3 = attribute->AttributeValue; -// while (iter3) { -// LassoSamlAttributeValue *attribute_value = iter3->data; -// iter3 = g_list_next(iter3); -// iter4 = attribute_value->any; -// while (iter4) { -// LassoDiscoResourceOffering *v = iter4->data; -// iter4 = g_list_next(iter4); -// if (! LASSO_IS_DISCO_RESOURCE_OFFERING(v)) -// continue; -// if (v->ServiceInstance == NULL) -// continue; -// if (strcmp(v->ServiceInstance->ServiceType, -// service_type) == 0) { -// resource_offering = v; -// goto end; -// } -// } -// } -// } -// } -// -//end: -// -// g_list_free(assertions); -// -// if (resource_offering) { -// return g_object_ref(resource_offering); -// } -// -// return NULL; -//} -// -///** -// * lasso_discovery_get_description_auto: -// * -// * -// * -// * Return value: internally allocated, don't free -// **/ -//LassoDiscoDescription* -//lasso_discovery_get_description_auto(LassoDiscoResourceOffering *offering, -// const gchar *security_mech) -//{ -// GList *iter, *iter2; -// LassoDiscoDescription *description; -// -// iter = offering->ServiceInstance->Description; -// while (iter) { -// description = iter->data; -// iter = g_list_next(iter); -// iter2 = description->SecurityMechID; -// while (iter2) { -// if (strcmp((char*)iter2->data, security_mech) == 0) { -// return description; -// } -// iter2 = g_list_next(iter2); -// } -// } -// return NULL; -//} -// -// -///** -// * lasso_discovery_init_insert -// * @discovery: a #LassoDiscovery -// * @new_offering: the new service offered -// * @security_mech_id: the security mechanism identifier -// * -// * Initializes a disco Modify/InsertEntry -// * -// * Return value: 0 on success; or a negative value otherwise. -// **/ -//gint -//lasso_discovery_init_insert(LassoDiscovery *discovery, -// LassoDiscoResourceOffering *new_offering, const char *security_mech_id) -//{ -// LassoDiscoModify *modify; -// LassoDiscoResourceOffering *offering; -// LassoDiscoDescription *description = NULL; -// -// modify = lasso_disco_modify_new(); -// lasso_wsf_profile_init_soap_request(LASSO_WSF_PROFILE(discovery), LASSO_NODE(modify)); -// -// /* get discovery service resource id from principal assertion */ -// offering = lasso_discovery_get_resource_offering_auto(discovery, LASSO_DISCO_HREF); -// if (offering == NULL) { -// return LASSO_PROFILE_ERROR_MISSING_RESOURCE_OFFERING; -// } -// if (security_mech_id) { -// description = lasso_discovery_get_description_auto(offering, security_mech_id); -// } else { -// description = LASSO_DISCO_DESCRIPTION(offering->ServiceInstance->Description->data); -// } -// if (!description) { -// return LASSO_PROFILE_ERROR_MISSING_SERVICE_DESCRIPTION; -// } -// lasso_wsf_profile_set_description(LASSO_WSF_PROFILE(discovery), description); -// -// /* XXX: EncryptedResourceID support */ -// modify->ResourceID = g_object_ref(offering->ResourceID); -// lasso_node_destroy(LASSO_NODE(offering)); -// -// modify->InsertEntry = g_list_append(modify->InsertEntry, -// lasso_disco_insert_entry_new(new_offering)); -// LASSO_WSF_PROFILE(discovery)->request = LASSO_NODE(modify); -// -// if (description->Endpoint != NULL) { -// LASSO_WSF_PROFILE(discovery)->msg_url = g_strdup(description->Endpoint); -// } /* XXX: else, description->WsdlURLI, get endpoint automatically */ -// -// return 0; -//} -// -// -///** -// * lasso_discovery_init_remove -// * @discovery: a #LassoDiscovery -// * @entry_id: entry id of the resource offering to remove -// * -// * Initializes a disco Modify/RemoveEntry -// * -// * Return value: 0 on success; or a negative value otherwise. -// **/ -//gint -//lasso_discovery_init_remove(LassoDiscovery *discovery, const char *entry_id) -//{ -// LassoDiscoModify *modify; -// LassoDiscoResourceOffering *offering; -// LassoDiscoDescription *description; -// -// modify = lasso_disco_modify_new(); -// lasso_wsf_profile_init_soap_request(LASSO_WSF_PROFILE(discovery), LASSO_NODE(modify)); -// -// /* get discovery service resource id from principal assertion */ -// offering = lasso_discovery_get_resource_offering_auto(discovery, LASSO_DISCO_HREF); -// if (offering == NULL) { -// return LASSO_PROFILE_ERROR_MISSING_RESOURCE_OFFERING; -// } -// description = lasso_discovery_get_description_auto(offering, -// LASSO_SECURITY_MECH_NULL); -// -// /* XXX: EncryptedResourceID support */ -// modify->ResourceID = g_object_ref(offering->ResourceID); -// lasso_node_destroy(LASSO_NODE(offering)); -// -// modify->RemoveEntry = g_list_append(modify->RemoveEntry, -// lasso_disco_remove_entry_new(entry_id)); -// LASSO_WSF_PROFILE(discovery)->request = LASSO_NODE(modify); -// -// if (description->Endpoint != NULL) { -// LASSO_WSF_PROFILE(discovery)->msg_url = g_strdup(description->Endpoint); -// } /* XXX: else, description->WsdlURLK, get endpoint automatically */ -// -// return 0; -//} /** * lasso_discovery_init_query @@ -575,456 +85,14 @@ gint lasso_idwsf2_discovery_init_query(LassoIdwsf2Discovery *discovery, const gchar *security_mech_id) { LassoIdwsf2DiscoQuery *query; -// LassoIdwsf2DiscoResourceOffering *offering; -// LassoIdwsf2DiscoDescription *description; query = lasso_idwsf2_disco_query_new(); lasso_wsf2_profile_init_soap_request(LASSO_WSF2_PROFILE(discovery), LASSO_NODE(query)); - /* get discovery service resource id from principal assertion */ -// offering = lasso_discovery_get_resource_offering_auto(discovery, LASSO_DISCO_HREF); -// if (offering == NULL) -// return LASSO_PROFILE_ERROR_MISSING_RESOURCE_OFFERING; -// -// if (security_mech_id == NULL) { -// description = LASSO_DISCO_DESCRIPTION(offering->ServiceInstance->Description->data); -// } else { -// description = lasso_discovery_get_description_auto(offering, security_mech_id); -// } -// if (description == NULL) -// return LASSO_PROFILE_ERROR_MISSING_SERVICE_DESCRIPTION; -// -// lasso_wsf_profile_set_description(LASSO_WSF_PROFILE(discovery), description); -// -// /* XXX: EncryptedResourceID support */ -// query->ResourceID = g_object_ref(offering->ResourceID); -// lasso_node_destroy(LASSO_NODE(offering)); - - LASSO_WSF2_PROFILE(discovery)->request = LASSO_NODE(query); - -// if (description->Endpoint != NULL) { -// LASSO_WSF_PROFILE(discovery)->msg_url = g_strdup(description->Endpoint); -// } /* XXX: else, description->WsdlURLK, get endpoint automatically */ - return 0; } -/** - * lasso_discovery_process_modify_msg: - * @discovery: a #LassoDiscovery - * @message: the disco:Modify SOAP message - * - * Processes a disco:Modify SOAP message. Rebuilds a request object from the - * message and extracts ResourceID. - * - * Return value: 0 on success; or a negative value otherwise. - **/ -//gint -//lasso_discovery_process_modify_msg(LassoDiscovery *discovery, const gchar *message, -// const gchar *security_mech_id) -//{ -// LassoDiscoModify *request; -// int res = 0; -// -// g_return_val_if_fail(LASSO_IS_DISCOVERY(discovery), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); -// g_return_val_if_fail(message != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); -// -// res = lasso_wsf_profile_process_soap_request_msg(LASSO_WSF_PROFILE(discovery), message, -// LASSO_DISCO_HREF, security_mech_id); -// if (res != 0) -// return res; -// -// request = LASSO_DISCO_MODIFY(LASSO_WSF_PROFILE(discovery)->request); -// -// if (request->ResourceID) -// discovery->resource_id = g_object_ref(request->ResourceID); -// if (request->EncryptedResourceID) -// discovery->encrypted_resource_id = g_object_ref(request->EncryptedResourceID); -// -// return 0; -//} -// -// -///** -// * lasso_discovery_build_modify_response_msg: -// * @discovery: a #LassoDiscovery -// * -// * Builds a disco:ModifyResponse message; answer to the disco:Modify passed -// * to lasso_discovery_process_modify_msg(). It inserts and removed -// * ResourceOfferings from identity; it must be saved afterwards. -// * -// * Sets @msg_body to the SOAP answer. -// * -// * Return value: 0 on success; or a negative value otherwise. -// **/ -//gint -//lasso_discovery_build_modify_response_msg(LassoDiscovery *discovery) -//{ -// LassoDiscoModify *request = LASSO_DISCO_MODIFY(LASSO_WSF_PROFILE(discovery)->request); -// LassoDiscoModifyResponse *response; -// LassoSoapEnvelope *envelope; -// LassoUtilityStatus *status; -// GList *iter; -// gboolean failure = FALSE; -// char *new_entry_ids = NULL, *t_new_entry_ids = NULL; -// -// if (lasso_wsf_profile_get_fault(LASSO_WSF_PROFILE(discovery))) { -// return lasso_wsf_profile_build_soap_response_msg(LASSO_WSF_PROFILE(discovery)); -// } -// -// if (LASSO_WSF_PROFILE(discovery)->identity == NULL) { -// return LASSO_PROFILE_ERROR_IDENTITY_NOT_FOUND; -// } -// -// /* build response */ -// status = lasso_utility_status_new(LASSO_DISCO_STATUS_CODE_FAILED); -// response = lasso_disco_modify_response_new(status); -// LASSO_WSF_PROFILE(discovery)->response = LASSO_NODE(response); -// envelope = LASSO_WSF_PROFILE(discovery)->soap_envelope_response; -// envelope->Body->any = g_list_append(envelope->Body->any, response); -// -// /* First verify remove entries are all ok */ -// iter = request->RemoveEntry; -// while (iter) { -// LassoDiscoRemoveEntry *entry = iter->data; -// iter = g_list_next(iter); -// -// if (lasso_identity_get_resource_offering( -// LASSO_WSF_PROFILE(discovery)->identity, -// entry->entryID) == NULL) { -// return LASSO_PROFILE_ERROR_MISSING_RESOURCE_OFFERING; -// } -// } -// -// if (request->InsertEntry) { -// new_entry_ids = g_malloc(10*g_list_length(request->InsertEntry)); -// t_new_entry_ids = new_entry_ids; -// } -// -// iter = request->InsertEntry; -// while (iter) { -// LassoDiscoInsertEntry *entry = iter->data; -// iter = g_list_next(iter); -// -// lasso_identity_add_resource_offering(LASSO_WSF_PROFILE(discovery)->identity, -// entry->ResourceOffering); -// -// t_new_entry_ids = g_stpcpy(t_new_entry_ids, entry->ResourceOffering->entryID); -// t_new_entry_ids = g_stpcpy(t_new_entry_ids, " "); -// } -// if (t_new_entry_ids) { -// t_new_entry_ids[-1] = 0; /* remove trailing white space */ -// } -// -// iter = request->RemoveEntry; -// while (iter) { -// LassoDiscoRemoveEntry *entry = iter->data; -// iter = g_list_next(iter); -// -// if (lasso_identity_remove_resource_offering( -// LASSO_WSF_PROFILE(discovery)->identity, -// entry->entryID) == FALSE) { -// failure = TRUE; -// } -// } -// -// if (new_entry_ids) { -// response->newEntryIDs = g_strdup(new_entry_ids); -// g_free(new_entry_ids); -// } -// -// g_free(status->code); -// status->code = g_strdup(LASSO_DISCO_STATUS_CODE_OK); -// -// return lasso_wsf_profile_build_soap_response_msg(LASSO_WSF_PROFILE(discovery)); -//} -// -///** -// * lasso_discovery_process_modify_response_msg: -// * @discovery: a #LassoDiscovery -// * @message: the disco:ModifyResponse SOAP message -// * -// * Processes a disco:ModifyResponse SOAP message. -// * -// * Return value: 0 on success; or a negative value otherwise. -// **/ -//gint -//lasso_discovery_process_modify_response_msg(LassoDiscovery *discovery, const gchar *message) -//{ -// int rc; -// LassoDiscoModifyResponse *response; -// -// rc = lasso_wsf_profile_process_soap_response_msg(LASSO_WSF_PROFILE(discovery), message); -// if (rc) { -// return rc; -// } -// -// response = LASSO_DISCO_MODIFY_RESPONSE(LASSO_WSF_PROFILE(discovery)->response); -// if (strcmp(response->Status->code, "OK") != 0) { -// return LASSO_PROFILE_ERROR_STATUS_NOT_SUCCESS; -// } -// -// return 0; -//} -// -///** -// * lasso_discovery_process_query_msg: -// * @discovery: a #LassoDiscovery -// * @message: the disco:Query SOAP message -// * -// * Processes a disco:Query SOAP message. Rebuilds a request object from the -// * message and extracts ResourceID. -// * -// * Return value: 0 on success; or a negative value otherwise. -// **/ -//gint -//lasso_discovery_process_query_msg(LassoDiscovery *discovery, const gchar *message, -// const char *security_mech_id) -//{ -// LassoDiscoQuery *request; -// LassoSoapEnvelope *envelope; -// -// g_return_val_if_fail(LASSO_IS_DISCOVERY(discovery), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); -// g_return_val_if_fail(message != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); -// -// lasso_wsf_profile_process_soap_request_msg(LASSO_WSF_PROFILE(discovery), -// message, LASSO_DISCO_HREF, security_mech_id); -// -// envelope = LASSO_WSF_PROFILE(discovery)->soap_envelope_response; -// request = LASSO_DISCO_QUERY(LASSO_WSF_PROFILE(discovery)->request); -// -// if (request->ResourceID) { -// discovery->resource_id = g_object_ref(request->ResourceID); -// } else if (request->EncryptedResourceID) { -// discovery->encrypted_resource_id = g_object_ref(request->EncryptedResourceID); -// } else { -// return LASSO_ERROR_UNIMPLEMENTED; /* implied ? */ -// } -// -// return 0; -//} -// -// -///** -// * lasso_discovery_build_response_msg -// * @discovery: a #LassoDiscovery -// * -// * Builds a disco:QueryResponse message; answer to the disco:Query passed to -// * lasso_discovery_process_query_msg(). It looks up resource offerings in the -// * principal identity and extracts those of the requested service type. -// * -// * Sets @msg_body to the SOAP answer. -// * -// * Return value: 0 on success; or a negative value otherwise. -// **/ -//gint -//lasso_discovery_build_response_msg(LassoDiscovery *discovery) -//{ -// LassoDiscoQuery *request = LASSO_DISCO_QUERY(LASSO_WSF_PROFILE(discovery)->request); -// LassoDiscoQueryResponse *response; -// LassoSoapEnvelope *envelope; -// -// GList *offerings = NULL; -// GList *iter, *iter2, *iter3; -// int res = 0; -// -// gchar *credentialRef; -// -// if (lasso_wsf_profile_get_fault(LASSO_WSF_PROFILE(discovery))) { -// return lasso_wsf_profile_build_soap_response_msg(LASSO_WSF_PROFILE(discovery)); -// } -// -// if (LASSO_WSF_PROFILE(discovery)->identity == NULL) { -// return LASSO_PROFILE_ERROR_IDENTITY_NOT_FOUND; -// } -// -// iter = request->RequestedServiceType; -// while (iter) { -// LassoDiscoRequestedServiceType *service_type = iter->data; -// iter = g_list_next(iter); -// offerings = g_list_concat(offerings, lasso_identity_get_offerings( -// LASSO_WSF_PROFILE(discovery)->identity, -// service_type->ServiceType)); -// } -// -// /* build response */ -// response = lasso_disco_query_response_new( -// lasso_utility_status_new(LASSO_DST_STATUS_CODE_OK)); -// response->ResourceOffering = offerings; -// LASSO_WSF_PROFILE(discovery)->response = LASSO_NODE(response); -// envelope = LASSO_WSF_PROFILE(discovery)->soap_envelope_response; -// envelope->Body->any = g_list_append(envelope->Body->any, response); -// -// /* Add needed credentials for offerings */ -// iter = offerings; -// while (iter) { -// LassoDiscoResourceOffering *resource_offering = iter->data; -// iter = g_list_next(iter); -// iter2 = resource_offering->ServiceInstance->Description; -// while (iter2) { -// LassoDiscoDescription *description = LASSO_DISCO_DESCRIPTION(iter2->data); -// iter3 = description->SecurityMechID; -// while (iter3) { -// if (lasso_security_mech_id_is_saml_authentication( -// iter3->data) == TRUE) { -// credentialRef = lasso_discovery_build_credential( -// discovery, NULL); -// description->CredentialRef = g_list_append( -// description->CredentialRef, credentialRef); -// } -// iter3 = g_list_next(iter3); -// } -// iter2 = g_list_next(iter2); -// } -// } -// -// res = lasso_wsf_profile_build_soap_response_msg(LASSO_WSF_PROFILE(discovery)); -// -// return res; -//} -// -///** -// * lasso_discovery_process_query_response_msg: -// * @discovery: a #LassoDiscovery -// * @message: the disco:QueryResponse message -// * -// * Processes a disco:QueryResponse message. -// * -// * Return value: 0 on success; or a negative value otherwise. -// **/ -//gint -//lasso_discovery_process_query_response_msg(LassoDiscovery *discovery, const gchar *message) -//{ -// int rc; -// LassoDiscoQueryResponse *response; -// -// rc = lasso_wsf_profile_process_soap_response_msg(LASSO_WSF_PROFILE(discovery), message); -// if (rc) { -// return rc; -// } -// -// response = LASSO_DISCO_QUERY_RESPONSE(LASSO_WSF_PROFILE(discovery)->response); -// if (strcmp(response->Status->code, "OK") != 0) { -// return LASSO_PROFILE_ERROR_STATUS_NOT_SUCCESS; -// } -// -// /* XXX: anything else to do ? */ -// -// return 0; -//} -// -// -///** -// * lasso_discovery_get_service: -// * @discovery: a #LassoDiscovery -// * @service_type: the requested service type -// * -// * After a disco:query message, creates a #LassoDataService instance for the -// * requested @service_type. -// * -// * Return value: a newly created #LassoDataService object; or NULL if an -// * error occured. -// **/ -//LassoDataService* -//lasso_discovery_get_service(LassoDiscovery *discovery, const char *service_type) -//{ -// LassoDiscoQueryResponse *response; -// GList *iter; -// LassoDiscoResourceOffering *offering = NULL; -// LassoDataService *service; -// -// response = LASSO_DISCO_QUERY_RESPONSE(LASSO_WSF_PROFILE(discovery)->response); -// if (response == NULL) { -// /* no response; probably called at wrong time */ -// return NULL; -// } -// -// iter = response->ResourceOffering; -// if (iter == NULL) { -// return NULL; /* resource not found */ -// } -// if (service_type == NULL) { -// offering = iter->data; -// } else { -// while (iter) { -// LassoDiscoResourceOffering *t = iter->data; -// iter = g_list_next(iter); -// if (t->ServiceInstance == NULL) -// continue; -// if (strcmp(t->ServiceInstance->ServiceType, service_type) == 0) { -// offering = t; -// break; -// } -// } -// if (offering == NULL) { -// return NULL; /* resource not found */ -// } -// } -// -// if (strcmp(offering->ServiceInstance->ServiceType, LASSO_PP_HREF) == 0) { -// service = LASSO_DATA_SERVICE(lasso_personal_profile_service_new( -// LASSO_WSF_PROFILE(discovery)->server, offering)); -// } else { -// service = lasso_data_service_new_full(LASSO_WSF_PROFILE(discovery)->server, -// offering); -// } -// -// lasso_wsf_profile_move_credentials(LASSO_WSF_PROFILE(discovery), -// LASSO_WSF_PROFILE(service)); -// -// return service; -//} -// -// -///** -// * lasso_discovery_get_services: -// * @discovery: a #LassoDiscovery -// * -// * After a disco:query message, creates a GList object of #LassoDataService. -// * -// * Return value: a newly created GList object of #LassoDataService; -// * or NULL if an error occured. -// **/ -//GList* -//lasso_discovery_get_services(LassoDiscovery *discovery) -//{ -// LassoDiscoQueryResponse *response; -// GList *iter; -// LassoDiscoResourceOffering *offering; -// LassoDataService *service; -// GList *services; -// -// response = LASSO_DISCO_QUERY_RESPONSE(LASSO_WSF_PROFILE(discovery)->response); -// iter = response->ResourceOffering; -// if (iter == NULL) { -// return NULL; /* resource not found */ -// } -// -// services = NULL; -// while (iter) { -// offering = iter->data; -// iter = g_list_next(iter); -// if (offering->ServiceInstance == NULL) -// continue; -// if (strcmp(offering->ServiceInstance->ServiceType, LASSO_PP_HREF) == 0) { -// service = LASSO_DATA_SERVICE(lasso_personal_profile_service_new( -// LASSO_WSF_PROFILE(discovery)->server, offering)); -// service->provider_id = g_strdup(offering->ServiceInstance->ProviderID); -// service->abstract_description = g_strdup(offering->Abstract); -// } else { -// service = lasso_data_service_new_full(LASSO_WSF_PROFILE(discovery)->server, -// offering); -// service->provider_id = g_strdup(offering->ServiceInstance->ProviderID); -// service->abstract_description = g_strdup(offering->Abstract); -// } -// services = g_list_append(services, service); -// } -// -// return services; -//} - - gint lasso_idwsf2_discovery_init_metadata_register(LassoIdwsf2Discovery *discovery, gchar *service_type, gchar *abstract, gchar *disco_provider_id) diff --git a/lasso/id-wsf-2.0/discovery.h b/lasso/id-wsf-2.0/discovery.h index 04ccde4f..133974a2 100644 --- a/lasso/id-wsf-2.0/discovery.h +++ b/lasso/id-wsf-2.0/discovery.h @@ -1,4 +1,4 @@ -/* $Id: discovery.h,v 1.30 2006/02/21 09:51:49 fpeters Exp $ +/* $Id: discovery.h,v 1.30 2006/02/21 09:51:49 Exp $ * * Lasso - A free implementation of the Liberty Alliance specifications. * @@ -30,16 +30,10 @@ extern "C" { #endif /* __cplusplus */ -//#include <lasso/xml/disco_insert_entry.h> -//#include <lasso/xml/disco_modify.h> -//#include <lasso/xml/disco_modify_response.h> #include <lasso/xml/id-wsf-2.0/disco_query.h> #include <lasso/xml/id-wsf-2.0/disco_query_response.h> -//#include <lasso/xml/disco_remove_entry.h> -//#include <lasso/xml/disco_requested_service_type.h> - #include <lasso/id-wsf-2.0/wsf2_profile.h> -//#include <lasso/id-wsf/data_service.h> + #define LASSO_TYPE_IDWSF2_DISCOVERY (lasso_idwsf2_discovery_get_type()) #define LASSO_IDWSF2_DISCOVERY(obj) \ @@ -59,10 +53,6 @@ typedef struct _LassoIdwsf2DiscoveryPrivate LassoIdwsf2DiscoveryPrivate; struct _LassoIdwsf2Discovery { LassoWsf2Profile parent; - /*< public >*/ -// LassoDiscoResourceID *resource_id; -// LassoDiscoEncryptedResourceID *encrypted_resource_id; - /*< private >*/ LassoIdwsf2DiscoveryPrivate *private_data; }; @@ -75,54 +65,13 @@ LASSO_EXPORT GType lasso_idwsf2_discovery_get_type(void); LASSO_EXPORT LassoIdwsf2Discovery* lasso_idwsf2_discovery_new(LassoServer *server); -//LASSO_EXPORT LassoDiscoInsertEntry* lasso_idwsf2_discovery_add_insert_entry(LassoIdwsf2Discovery *discovery, -// LassoDiscoServiceInstance *serviceInstance, LassoDiscoResourceID *resourceId); -// -//LASSO_EXPORT gint lasso_idwsf2_discovery_add_remove_entry(LassoIdwsf2Discovery *discovery, -// const gchar *entryID); -// -//LASSO_EXPORT LassoDiscoRequestedServiceType* lasso_idwsf2_discovery_add_requested_service_type( -// LassoIdwsf2Discovery *discovery, const gchar *service_type, const gchar *option); - LASSO_EXPORT void lasso_idwsf2_discovery_destroy(LassoIdwsf2Discovery *discovery); -//LASSO_EXPORT gint lasso_idwsf2_discovery_init_insert(LassoIdwsf2Discovery *discovery, -// LassoDiscoResourceOffering *new_offering, const char *security_mech_id); -// -//LASSO_EXPORT gint lasso_idwsf2_discovery_init_remove(LassoIdwsf2Discovery *discovery, const char *entry_id); -// -//LASSO_EXPORT gint lasso_idwsf2_discovery_build_response_msg(LassoIdwsf2Discovery *discovery); -// -//LASSO_EXPORT gint lasso_idwsf2_discovery_build_modify_response_msg(LassoIdwsf2Discovery *discovery); -// -//LASSO_EXPORT gint lasso_idwsf2_discovery_init_modify(LassoIdwsf2Discovery *discovery, -// LassoDiscoResourceOffering *resourceOffering, LassoDiscoDescription *description); - LASSO_EXPORT gint lasso_idwsf2_discovery_init_query(LassoIdwsf2Discovery *discovery, const gchar *security_mech_id); LASSO_EXPORT gint lasso_idwsf2_discovery_init_metadata_register(LassoIdwsf2Discovery *discovery, gchar *service_type, gchar *abstract, gchar *disco_provider_id); - -//LASSO_EXPORT gint lasso_idwsf2_discovery_process_modify_msg(LassoIdwsf2Discovery *discovery, -// const gchar *message, const gchar *security_mech_id); -// -//LASSO_EXPORT gint lasso_idwsf2_discovery_process_modify_response_msg(LassoIdwsf2Discovery *discovery, -// const gchar *message); -// -//LASSO_EXPORT gint lasso_idwsf2_discovery_process_query_msg(LassoIdwsf2Discovery *discovery, -// const gchar *message, const char *security_mech_id); -// -//LASSO_EXPORT gint lasso_idwsf2_discovery_process_query_response_msg(LassoIdwsf2Discovery *discovery, -// const gchar *message); -// -//LASSO_EXPORT LassoDataService* lasso_idwsf2_discovery_get_service(LassoIdwsf2Discovery *discovery, -// const char *service_type); -// -//LASSO_EXPORT GList* lasso_idwsf2_discovery_get_services(LassoIdwsf2Discovery *discovery); -// -//LASSO_EXPORT LassoDiscoDescription* lasso_idwsf2_discovery_get_description_auto( -// LassoDiscoResourceOffering *offering, const gchar *security_mech); #ifdef __cplusplus } diff --git a/lasso/id-wsf-2.0/wsf2_profile.c b/lasso/id-wsf-2.0/wsf2_profile.c index 0e7961fe..3b8f548a 100644 --- a/lasso/id-wsf-2.0/wsf2_profile.c +++ b/lasso/id-wsf-2.0/wsf2_profile.c @@ -1,4 +1,4 @@ -/* $Id: wsf_profile.c,v 1.45 2007/01/05 16:11:02 fpeters Exp $ +/* $Id: wsf_profile.c,v 1.45 2007/01/05 16:11:02 Exp $ * * Lasso - A free implementation of the Liberty Alliance specifications. * @@ -31,16 +31,10 @@ #include <xmlsec/crypto.h> #include <lasso/id-wsf-2.0/wsf2_profile.h> -//#include <lasso/xml/disco_modify.h> #include <lasso/xml/soap_fault.h> #include <lasso/xml/soap_binding_correlation.h> #include <lasso/xml/soap_binding_provider.h> #include <lasso/xml/soap_binding_processing_context.h> -//#include <lasso/xml/wsse_security.h> -//#include <lasso/xml/saml_assertion.h> -//#include <lasso/xml/saml_authentication_statement.h> -//#include <lasso/xml/saml_subject_statement_abstract.h> -//#include <lasso/xml/saml_subject.h> #include <lasso/id-ff/server.h> #include <lasso/id-ff/providerprivate.h> @@ -50,755 +44,16 @@ struct _LassoWsf2ProfilePrivate { gboolean dispose_has_run; -// LassoDiscoDescription *description; LassoSoapFault *fault; gchar *public_key; GList *credentials; }; -//gint lasso_wsf_profile_verify_x509_authentication(LassoWsfProfile *profile, -// xmlDoc *doc, xmlSecKey *public_key); -//static gboolean lasso_wsf_profile_has_saml_authentication(LassoWsfProfile *profile); -//static gboolean lasso_wsf_profile_has_x509_authentication(LassoWsfProfile *profile); -//static gint lasso_wsf_profile_verify_credential_signature( -// LassoWsfProfile *profile, xmlDoc *doc, xmlNode *credential); -//static gint lasso_wsf_profile_add_credential_signature(LassoWsfProfile *profile, -// xmlDoc *doc, xmlNode *credential, LassoSignatureMethod sign_method); -//static xmlSecKey* lasso_wsf_profile_get_public_key_from_credential( -// LassoWsfProfile *profile, xmlNode *credential); -//static gint lasso_wsf_profile_verify_saml_authentication(LassoWsfProfile *profile, xmlDoc *doc); -//static gint lasso_wsf_profile_add_soap_signature(LassoWsfProfile *profile, -// xmlDoc *doc, xmlNode *envelope_node, LassoSignatureMethod sign_method); -//static int lasso_wsf_profile_ensure_soap_credentials_signature( -// LassoWsfProfile *profile, xmlDoc *doc, xmlNode *soap_envelope); -//static LassoDiscoDescription* lasso_wsf_profile_get_description_auto( -// LassoDiscoServiceInstance *si, const gchar *security_mech_id); /*****************************************************************************/ /* private methods */ /*****************************************************************************/ -//gint -//lasso_wsf_profile_move_credentials(LassoWsfProfile *src, LassoWsfProfile *dest) -//{ -// xmlNode *credential; -// GList *iter; -// -// iter = src->private_data->credentials; -// while (iter) { -// credential = (xmlNode *) iter->data; -// lasso_wsf_profile_add_credential(dest, credential); -// iter = iter->next; -// } -// -// g_list_free(src->private_data->credentials); -// -// return 0; -//} -// -//gint -//lasso_wsf_profile_add_credential(LassoWsfProfile *profile, xmlNode *credential) -//{ -// profile->private_data->credentials = g_list_append(profile->private_data->credentials, -// credential); -// return 0; -//} -// -//void -//lasso_wsf_profile_set_public_key(LassoWsfProfile *profile, const char *public_key) -//{ -// if (public_key) -// profile->private_data->public_key = g_strdup(public_key); -//} -// -//static LassoDiscoDescription* -//lasso_wsf_profile_get_description_auto(LassoDiscoServiceInstance *si, const gchar *security_mech_id) -//{ -// GList *iter, *iter2; -// LassoDiscoDescription *description; -// -// if (security_mech_id == NULL) -// return NULL; -// -// iter = si->Description; -// while (iter) { -// description = LASSO_DISCO_DESCRIPTION(iter->data); -// iter2 = description->SecurityMechID; -// while (iter2) { -// if (strcmp(security_mech_id, iter->data) == 0) -// return description; -// iter2 = iter2->next; -// } -// iter = iter->next; -// } -// -// return NULL; -//} -// -//LassoSoapFault* -//lasso_wsf_profile_get_fault(LassoWsfProfile *profile) -//{ -// return profile->private_data->fault; -//} -// -//static gboolean -//lasso_wsf_profile_has_saml_authentication(LassoWsfProfile *profile) -//{ -// GList *iter; -// gchar *security_mech_id; -// -// if (profile->private_data->description == NULL) -// return FALSE; -// -// iter = profile->private_data->description->SecurityMechID; -// while (iter) { -// security_mech_id = iter->data; -// if (strcmp(security_mech_id, LASSO_SECURITY_MECH_CLIENT_TLS_SAML) == 0 || -// strcmp(security_mech_id, LASSO_SECURITY_MECH_TLS_SAML) == 0 || -// strcmp(security_mech_id, LASSO_SECURITY_MECH_SAML) == 0) { -// return TRUE; -// } -// iter = g_list_next(iter); -// } -// -// return FALSE; -//} -// -//static gboolean -//lasso_wsf_profile_has_x509_authentication(LassoWsfProfile *profile) -//{ -// GList *iter; -// gchar *security_mech_id; -// -// if (profile->private_data->description == NULL) -// return FALSE; -// -// iter = profile->private_data->description->SecurityMechID; -// while (iter) { -// security_mech_id = iter->data; -// if (strcmp(security_mech_id, LASSO_SECURITY_MECH_CLIENT_TLS_X509) == 0 || -// strcmp(security_mech_id, LASSO_SECURITY_MECH_TLS_X509) == 0 || -// strcmp(security_mech_id, LASSO_SECURITY_MECH_X509) == 0) { -// return TRUE; -// } -// iter = g_list_next(iter); -// } -// -// return FALSE; -//} -// -//gboolean -//lasso_security_mech_id_is_saml_authentication(const gchar *security_mech_id) -//{ -// if (!security_mech_id) -// return FALSE; -// -// if (strcmp(security_mech_id, LASSO_SECURITY_MECH_SAML) == 0 || -// strcmp(security_mech_id, LASSO_SECURITY_MECH_TLS_SAML) == 0 || -// strcmp(security_mech_id, LASSO_SECURITY_MECH_CLIENT_TLS_SAML) == 0) -// return TRUE; -// -// return FALSE; -//} -// -//void -//lasso_wsf_profile_set_description(LassoWsfProfile *profile, LassoDiscoDescription *description) -//{ -// profile->private_data->description = g_object_ref(description); -//} -// -//static gint -//lasso_wsf_profile_verify_credential_signature( -// LassoWsfProfile *profile, xmlDoc *doc, xmlNode *credential) -//{ -// LassoProvider *lasso_provider; -// -// xmlSecKeysMngr *keys_mngr = NULL; -// xmlNode *x509data = NULL, *node; -// -// xmlChar *id; -// xmlAttr *id_attr; -// -// xmlSecDSigCtx *dsigCtx; -// -// xmlChar *issuer; -// -// /* Retrieve provider id of credential signer . Issuer could be the right place */ -// issuer = xmlGetProp(credential, (xmlChar*)"Issuer"); -// if (issuer == NULL) { -// return LASSO_PROFILE_ERROR_MISSING_ISSUER; -// } -// -// lasso_provider = lasso_server_get_provider(profile->server, (char*)issuer); -// if (lasso_provider == NULL) { -// return LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND; -// } -// -// /* Set credential reference */ -// id_attr = xmlHasProp(credential, (xmlChar *)"AssertionID"); -// id = xmlGetProp(credential, (xmlChar *) "AssertionID"); -// xmlAddID(NULL, doc, id, id_attr); -// xmlFree(id); -// -// /* Case of X509 signature type */ -// x509data = xmlSecFindNode(xmlDocGetRootElement(doc), xmlSecNodeX509Data, xmlSecDSigNs); -// if (x509data != NULL && lasso_provider != NULL && lasso_provider->ca_cert_chain != NULL) { -// keys_mngr = lasso_load_certs_from_pem_certs_chain_file( -// lasso_provider->ca_cert_chain); -// if (keys_mngr == NULL) { -// return LASSO_DS_ERROR_CA_CERT_CHAIN_LOAD_FAILED; -// } -// } else if (x509data != NULL) { -// return LASSO_DS_ERROR_CA_CERT_CHAIN_LOAD_FAILED; -// } -// -// dsigCtx = xmlSecDSigCtxCreate(keys_mngr); -// -// /* Case of simple public key signature type */ -// if (keys_mngr == NULL) { -// if (lasso_provider != NULL) { -// dsigCtx->signKey = xmlSecKeyDuplicate( -// lasso_provider_get_public_key(lasso_provider)); -// } else if (profile->private_data->public_key) { -// /* TODO */ -// } -// if (dsigCtx->signKey == NULL) { -// xmlSecDSigCtxDestroy(dsigCtx); -// return LASSO_DS_ERROR_PUBLIC_KEY_LOAD_FAILED; -// } -// } -// -// node = xmlSecFindNode(credential, xmlSecNodeSignature, xmlSecDSigNs); -// if (xmlSecDSigCtxVerify(dsigCtx, node) < 0) { -// xmlSecDSigCtxDestroy(dsigCtx); -// if (keys_mngr) -// xmlSecKeysMngrDestroy(keys_mngr); -// return LASSO_DS_ERROR_SIGNATURE_VERIFICATION_FAILED; -// } -// -// if (keys_mngr) -// xmlSecKeysMngrDestroy(keys_mngr); -// -// if (dsigCtx->status != xmlSecDSigStatusSucceeded) { -// xmlSecDSigCtxDestroy(dsigCtx); -// return LASSO_DS_ERROR_INVALID_SIGNATURE; -// } -// -// /* Remove uneeded signature node */ -// xmlUnlinkNode(node); -// xmlFreeNode(node); -// -// return 0; -//} -// -//static gint -//lasso_wsf_profile_add_credential_signature(LassoWsfProfile *profile, -// xmlDoc *doc, xmlNode *credential, LassoSignatureMethod sign_method) -//{ -// xmlNode *signature = NULL, *sign_tmpl, *reference, *key_info; -// char *uri; -// -// xmlAttr *id_attr; -// -// xmlSecDSigCtx *dsigCtx; -// -// /* Add signature template */ -// if (sign_method == LASSO_SIGNATURE_METHOD_RSA_SHA1) { -// signature = xmlSecTmplSignatureCreate(NULL, -// xmlSecTransformExclC14NId, -// xmlSecTransformRsaSha1Id, NULL); -// } else { -// signature = xmlSecTmplSignatureCreate(NULL, -// xmlSecTransformExclC14NId, -// xmlSecTransformDsaSha1Id, NULL); -// } -// -// xmlAddChild(credential, signature); -// -// /* Credential reference */ -// uri = g_strdup_printf("#%s", xmlGetProp(credential, (xmlChar *) "AssertionID")); -// reference = xmlSecTmplSignatureAddReference(signature, xmlSecTransformSha1Id, -// NULL, (xmlChar*)uri, NULL); -// xmlSecTmplReferenceAddTransform(reference, xmlSecTransformEnvelopedId); -// xmlSecTmplReferenceAddTransform(reference, xmlSecTransformExclC14NId); -// id_attr = xmlHasProp(credential, (xmlChar *)"AssertionID"); -// xmlAddID(NULL, doc, xmlGetProp(credential, (xmlChar *) "AssertionID"), id_attr); -// -// /* FIXME: X509 authentication needs X509 signature type */ -// if (profile->server->certificate != NULL && profile->server->certificate[0] != 0) { -// key_info = xmlSecTmplSignatureEnsureKeyInfo(signature, NULL); -// xmlSecTmplKeyInfoAddX509Data(key_info); -// } -// -// /* Sign SOAP message */ -// sign_tmpl = xmlSecFindNode(credential, xmlSecNodeSignature, xmlSecDSigNs); -// if (sign_tmpl == NULL) -// return LASSO_DS_ERROR_SIGNATURE_TEMPLATE_NOT_FOUND; -// -// dsigCtx = xmlSecDSigCtxCreate(NULL); -// dsigCtx->signKey = xmlSecCryptoAppKeyLoad(profile->server->private_key, -// xmlSecKeyDataFormatPem, NULL, NULL, NULL); -// if (dsigCtx->signKey == NULL) { -// xmlSecDSigCtxDestroy(dsigCtx); -// return LASSO_DS_ERROR_PRIVATE_KEY_LOAD_FAILED; -// } -// if (profile->server->certificate != NULL && profile->server->certificate[0] != 0) { -// if (xmlSecCryptoAppKeyCertLoad(dsigCtx->signKey, profile->server->certificate, -// xmlSecKeyDataFormatPem) < 0) { -// xmlSecDSigCtxDestroy(dsigCtx); -// return LASSO_DS_ERROR_CERTIFICATE_LOAD_FAILED; -// } -// } -// -// if (xmlSecDSigCtxSign(dsigCtx, sign_tmpl) < 0) { -// xmlSecDSigCtxDestroy(dsigCtx); -// return LASSO_DS_ERROR_SIGNATURE_FAILED; -// } -// xmlSecDSigCtxDestroy(dsigCtx); -// -// return 0; -//} -// -//static xmlSecKey* -//lasso_wsf_profile_get_public_key_from_credential(LassoWsfProfile *profile, xmlNode *credential) -//{ -// xmlNode *authentication_statement, *subject, *subject_confirmation, *key_info; -// xmlSecKeyPtr public_key; -// xmlSecKeyInfoCtx *ctx; -// -// /* get AuthenticationStatement element */ -// authentication_statement = credential->children; -// while (authentication_statement) { -// if (authentication_statement->type == XML_ELEMENT_NODE && -// strcmp((char*)authentication_statement->name, -// "AuthenticationStatement") == 0) -// break; -// authentication_statement = authentication_statement->next; -// } -// if (authentication_statement == NULL) { -// return NULL; -// } -// -// /* get Subject element */ -// subject = authentication_statement->children; -// while (subject) { -// if (subject->type == XML_ELEMENT_NODE && -// strcmp((char*)subject->name, "Subject") == 0) -// break; -// subject = subject->next; -// } -// if (subject == NULL) { -// return NULL; -// } -// -// /* get SubjectConfirmation */ -// subject_confirmation = subject->children; -// while (subject_confirmation) { -// if (subject_confirmation->type == XML_ELEMENT_NODE && -// strcmp((char*)subject_confirmation->name, "SubjectConfirmation") == 0) -// break; -// subject_confirmation = subject_confirmation->next; -// } -// if (subject_confirmation == NULL) { -// return NULL; -// } -// -// /* get KeyInfo */ -// key_info = subject_confirmation->children; -// while (key_info) { -// if (key_info->type == XML_ELEMENT_NODE && -// strcmp((char*)key_info->name, "KeyInfo") == 0) -// break; -// key_info = key_info->next; -// } -// if (!key_info) -// return NULL; -// -// ctx = xmlSecKeyInfoCtxCreate(NULL); -// xmlSecKeyInfoCtxInitialize(ctx, NULL); -// -// ctx->mode = xmlSecKeyInfoModeRead; -// ctx->keyReq.keyType = xmlSecKeyDataTypePublic; -// -// public_key = xmlSecKeyCreate(); -// -// /* FIXME: get xml sec key from key_info instead of a rebuilt local node */ -// /* xmlSecKeyInfoNodeRead(key_info, public_key, ctx); */ -// -// { -// xmlDoc *doc; -// xmlChar *modulus_value, *exponent_value; -// xmlNode *rsa_key_value, *xmlnode, *modulus, *exponent; -// -// xmlnode = key_info->children; -// while (xmlnode) { -// if (strcmp((char*)xmlnode->name, "KeyValue") == 0) { -// break; -// } -// xmlnode = xmlnode->next; -// } -// rsa_key_value = xmlnode->children; -// while (rsa_key_value) { -// if (strcmp((char*)rsa_key_value->name, "RsaKeyValue") == 0) { -// break; -// } -// rsa_key_value = rsa_key_value->next; -// } -// xmlnode = rsa_key_value->children; -// while (xmlnode) { -// if (strcmp((char*)xmlnode->name, "Modulus") == 0) { -// modulus_value = xmlNodeGetContent(xmlnode); -// } else if (strcmp((char*)xmlnode->name, "Exponent") == 0) { -// exponent_value = xmlNodeGetContent(xmlnode); -// } -// xmlnode = xmlnode->next; -// } -// -// doc = xmlSecCreateTree((xmlChar*)"KeyInfo", -// (xmlChar*)"http://www.w3.org/2000/09/xmldsig#"); -// key_info = xmlDocGetRootElement(doc); -// -// xmlnode = xmlSecAddChild(key_info, (xmlChar*)"KeyValue", -// (xmlChar*)"http://www.w3.org/2000/09/xmldsig#"); -// xmlnode = xmlSecAddChild(xmlnode, (xmlChar*)"RSAKeyValue", -// (xmlChar*)"http://www.w3.org/2000/09/xmldsig#"); -// modulus = xmlSecAddChild(xmlnode, (xmlChar*)"Modulus", -// (xmlChar*)"http://www.w3.org/2000/09/xmldsig#"); -// xmlNodeSetContent(modulus, modulus_value); -// -// exponent = xmlSecAddChild(xmlnode, (xmlChar*)"Exponent", -// (xmlChar*)"http://www.w3.org/2000/09/xmldsig#"); -// xmlNodeSetContent(exponent, exponent_value); -// } -// -// xmlSecKeyInfoNodeRead(key_info, public_key, ctx); -// -// return public_key; -//} -// -//static gint -//lasso_wsf_profile_verify_saml_authentication(LassoWsfProfile *profile, xmlDoc *doc) -//{ -// xmlXPathContext *xpathCtx = NULL; -// xmlXPathObject *xpathObj; -// xmlNode *credential; -// xmlSecKey *public_key; -// int res; -// -// xpathCtx = xmlXPathNewContext(doc); -// -// xmlXPathRegisterNs(xpathCtx, (xmlChar*)"wsse", (xmlChar*)LASSO_WSSE_HREF); -// xmlXPathRegisterNs(xpathCtx, (xmlChar*)"saml", (xmlChar*)LASSO_SAML_ASSERTION_HREF); -// -// xpathObj = xmlXPathEvalExpression((xmlChar*)"//wsse:Security/saml:Assertion", xpathCtx); -// -// /* FIXME: Need to consider more every credentials. */ -// if (xpathObj->nodesetval == NULL || xpathObj->nodesetval->nodeNr == 0) { -// xmlXPathFreeContext(xpathCtx); -// xmlXPathFreeObject(xpathObj); -// return LASSO_PROFILE_ERROR_MISSING_ASSERTION; -// } -// -// -// credential = xpathObj->nodesetval->nodeTab[0]; -// -// res = lasso_wsf_profile_verify_credential_signature(profile, doc, credential); -// if (res < 0) { -// xmlXPathFreeContext(xpathCtx); -// xmlXPathFreeObject(xpathObj); -// return res; -// } -// -// public_key = lasso_wsf_profile_get_public_key_from_credential(profile, credential); -// xmlXPathFreeContext(xpathCtx); -// xmlXPathFreeObject(xpathObj); -// -// if (public_key == NULL) { -// return LASSO_DS_ERROR_PUBLIC_KEY_LOAD_FAILED; -// } -// -// res = lasso_wsf_profile_verify_x509_authentication(profile, doc, public_key); -// xmlSecKeyDestroy(public_key); -// if (res != 0) -// return res; -// -// return 0; -//} -// -//static gint -//lasso_wsf_profile_add_soap_signature(LassoWsfProfile *profile, -// xmlDoc *doc, xmlNode *envelope_node, LassoSignatureMethod sign_method) -//{ -// xmlNode *signature = NULL, *sign_tmpl, *reference, *key_info, *t; -// xmlNode *header = NULL, *provider = NULL, *correlation = NULL, *security = NULL; -// xmlNode *body = NULL; -// xmlSecDSigCtx *dsigCtx; -// xmlChar *id; -// char *uri; -// xmlAttr *id_attr; -// -// /* Get Correlation, Provider, Security, Body elements */ -// t = envelope_node->children; -// while (t) { -// if (strcmp((char *) t->name, "Header") == 0) { -// header = t; -// } else if (strcmp((char *) t->name, "Body") == 0) { -// body = t; -// } -// t = t->next; -// } -// if (header == NULL) -// return LASSO_SOAP_ERROR_MISSING_HEADER; -// -// if (body == NULL) -// return LASSO_SOAP_ERROR_MISSING_BODY; -// -// t = header->children; -// while (t) { -// if (strcmp((char *) t->name, "Correlation") == 0) { -// correlation = t; -// } else if (strcmp((char *) t->name, "Provider") == 0) { -// provider = t; -// } else if (strcmp((char *) t->name, "Security") == 0) { -// security = t; -// } -// t = t->next; -// } -// if (correlation == NULL) -// return LASSO_WSF_PROFILE_ERROR_MISSING_CORRELATION; -// if (security == NULL) -// return LASSO_WSF_PROFILE_ERROR_MISSING_SECURITY; -// -// /* Add signature template */ -// if (sign_method == LASSO_SIGNATURE_METHOD_RSA_SHA1) { -// signature = xmlSecTmplSignatureCreate(NULL, -// xmlSecTransformExclC14NId, -// xmlSecTransformRsaSha1Id, NULL); -// } else { -// signature = xmlSecTmplSignatureCreate(NULL, -// xmlSecTransformExclC14NId, -// xmlSecTransformDsaSha1Id, NULL); -// } -// -// xmlAddChild(security, signature); -// -// /* Correlation reference */ -// id = xmlGetProp(correlation, (xmlChar *) "id"); -// uri = g_strdup_printf("#%s", id); -// reference = xmlSecTmplSignatureAddReference(signature, xmlSecTransformSha1Id, -// NULL, (xmlChar *)uri, NULL); -// xmlFree(uri); -// xmlSecTmplReferenceAddTransform(reference, xmlSecTransformEnvelopedId); -// xmlSecTmplReferenceAddTransform(reference, xmlSecTransformExclC14NId); -// id_attr = xmlHasProp(correlation, (xmlChar *)"id"); -// xmlAddID(NULL, doc, (xmlChar *)id, id_attr); -// xmlFree(id); -// -// /* Body reference */ -// id = xmlGetProp(body, (xmlChar *) "id"); -// uri = g_strdup_printf("#%s", id); -// reference = xmlSecTmplSignatureAddReference(signature, xmlSecTransformSha1Id, -// NULL, (xmlChar *)uri, NULL); -// g_free(uri); -// xmlSecTmplReferenceAddTransform(reference, xmlSecTransformEnvelopedId); -// xmlSecTmplReferenceAddTransform(reference, xmlSecTransformExclC14NId); -// id_attr = xmlHasProp(body, (xmlChar *)"id"); -// xmlAddID(NULL, doc, (xmlChar *)id, id_attr); -// xmlFree(id); -// -// /* Provider reference */ -// if (provider) { -// uri = g_strdup_printf("#%s", xmlGetProp(provider, (xmlChar *) "id")); -// reference = xmlSecTmplSignatureAddReference(signature, xmlSecTransformSha1Id, -// NULL, (xmlChar*)uri, NULL); -// xmlSecTmplReferenceAddTransform(reference, xmlSecTransformEnvelopedId); -// xmlSecTmplReferenceAddTransform(reference, xmlSecTransformExclC14NId); -// id_attr = xmlHasProp(provider, (xmlChar *)"id"); -// xmlAddID(NULL, doc, xmlGetProp(provider, (xmlChar *) "id"), id_attr); -// } -// -// /* FIXME: X509 authentication needs X509 signature type */ -// if (profile->server->certificate != NULL && profile->server->certificate[0] != 0) { -// key_info = xmlSecTmplSignatureEnsureKeyInfo(signature, NULL); -// xmlSecTmplKeyInfoAddX509Data(key_info); -// } -// -// /* Sign SOAP message */ -// sign_tmpl = signature; -// -// dsigCtx = xmlSecDSigCtxCreate(NULL); -// dsigCtx->signKey = xmlSecCryptoAppKeyLoad(profile->server->private_key, -// xmlSecKeyDataFormatPem, NULL, NULL, NULL); -// if (dsigCtx->signKey == NULL) { -// xmlSecDSigCtxDestroy(dsigCtx); -// return LASSO_DS_ERROR_PRIVATE_KEY_LOAD_FAILED; -// } -// if (profile->server->certificate != NULL && profile->server->certificate[0] != 0) { -// if (xmlSecCryptoAppKeyCertLoad(dsigCtx->signKey, profile->server->certificate, -// xmlSecKeyDataFormatPem) < 0) { -// xmlSecDSigCtxDestroy(dsigCtx); -// return LASSO_DS_ERROR_CERTIFICATE_LOAD_FAILED; -// } -// } -// if (xmlSecDSigCtxSign(dsigCtx, sign_tmpl) < 0) { -// xmlSecDSigCtxDestroy(dsigCtx); -// return LASSO_DS_ERROR_SIGNATURE_FAILED; -// } -// xmlSecDSigCtxDestroy(dsigCtx); -// -// return 0; -//} -// -//gint -//lasso_wsf_profile_verify_x509_authentication(LassoWsfProfile *profile, -// xmlDoc *doc, xmlSecKey *public_key) -//{ -// LassoProvider *lasso_provider = NULL; -// -// xmlNode *provider = NULL, *correlation = NULL, *body = NULL; -// xmlNode *x509data = NULL, *node; -// xmlChar *id; -// xmlAttr *id_attr; -// -// xmlSecKeysMngr *keys_mngr = NULL; -// xmlSecDSigCtx *dsigCtx; -// -// xmlXPathContext *xpathCtx = NULL; -// xmlXPathObject *xpathObj; -// -// xpathCtx = xmlXPathNewContext(doc); -// -// /* Correlation */ -// xmlXPathRegisterNs(xpathCtx, (xmlChar*)"sb", (xmlChar*)LASSO_SOAP_BINDING_HREF); -// xpathObj = xmlXPathEvalExpression((xmlChar*)"//sb:Correlation", xpathCtx); -// if (xpathObj->nodesetval && xpathObj->nodesetval->nodeNr) { -// correlation = xpathObj->nodesetval->nodeTab[0]; -// } -// if (correlation == NULL) { -// xmlXPathFreeObject(xpathObj); -// xmlXPathFreeContext(xpathCtx); -// return LASSO_WSF_PROFILE_ERROR_MISSING_CORRELATION; -// } -// -// id_attr = xmlHasProp(correlation, (xmlChar *)"id"); -// id = xmlGetProp(correlation, (xmlChar *) "id"); -// xmlAddID(NULL, doc, id, id_attr); -// xmlFree(id); -// -// xmlXPathFreeObject(xpathObj); -// xpathObj = NULL; -// -// /* Body */ -// xmlXPathRegisterNs(xpathCtx, (xmlChar*)"s", (xmlChar*)LASSO_SOAP_ENV_HREF); -// xpathObj = xmlXPathEvalExpression((xmlChar*)"//s:Body", xpathCtx); -// if (xpathObj->nodesetval && xpathObj->nodesetval->nodeNr) { -// body = xpathObj->nodesetval->nodeTab[0]; -// } -// if (body == NULL) { -// xmlXPathFreeObject(xpathObj); -// xmlXPathFreeContext(xpathCtx); -// return LASSO_SOAP_ERROR_MISSING_BODY; -// } -// -// id_attr = xmlHasProp(body, (xmlChar *)"id"); -// id = xmlGetProp(body, (xmlChar *) "id"); -// xmlAddID(NULL, doc, id, id_attr); -// xmlFree(id); -// -// xmlXPathFreeObject(xpathObj); -// xpathObj = NULL; -// -// /* Provider */ -// xmlXPathRegisterNs(xpathCtx, (xmlChar*)"sb", (xmlChar*)LASSO_SOAP_BINDING_HREF); -// xpathObj = xmlXPathEvalExpression((xmlChar*)"//sb:Provider", xpathCtx); -// if (xpathObj->nodesetval && xpathObj->nodesetval->nodeNr) { -// provider = xpathObj->nodesetval->nodeTab[0]; -// } -// if (provider) { -// char *providerID; -// id_attr = xmlHasProp(provider, (xmlChar *)"id"); -// id = xmlGetProp(provider, (xmlChar *) "id"); -// xmlAddID(NULL, doc, id, id_attr); -// xmlFree(id); -// -// providerID = (char *) xmlGetProp(provider, (xmlChar *) "providerID"); -// lasso_provider = lasso_server_get_provider(profile->server, providerID); -// xmlFree(providerID); -// } -// -// xmlXPathFreeObject(xpathObj); -// xpathObj = NULL; -// -// /* Verify signature */ -// node = NULL; -// xmlXPathRegisterNs(xpathCtx, (xmlChar*)"ds", (xmlChar*)LASSO_DS_HREF); -// xpathObj = xmlXPathEvalExpression((xmlChar*)"//ds:Signature", xpathCtx); -// if (xpathObj->nodesetval && xpathObj->nodesetval->nodeNr) { -// node = xpathObj->nodesetval->nodeTab[0]; -// } -// if (node == NULL) { -// xmlXPathFreeContext(xpathCtx); -// xmlXPathFreeObject(xpathObj); -// return LASSO_DS_ERROR_SIGNATURE_NOT_FOUND; -// } -// -// /* Case of X509 signature type */ -// x509data = xmlSecFindNode(xmlDocGetRootElement(doc), xmlSecNodeX509Data, xmlSecDSigNs); -// if (x509data != NULL && lasso_provider != NULL && lasso_provider->ca_cert_chain != NULL) { -// keys_mngr = lasso_load_certs_from_pem_certs_chain_file( -// lasso_provider->ca_cert_chain); -// if (keys_mngr == NULL) { -// xmlXPathFreeObject(xpathObj); -// xmlXPathFreeContext(xpathCtx); -// return LASSO_DS_ERROR_CA_CERT_CHAIN_LOAD_FAILED; -// } -// } else if (x509data != NULL) { -// xmlXPathFreeObject(xpathObj); -// xmlXPathFreeContext(xpathCtx); -// return LASSO_DS_ERROR_CA_CERT_CHAIN_LOAD_FAILED; -// } -// -// dsigCtx = xmlSecDSigCtxCreate(keys_mngr); -// -// /* Case of simple public key signature type */ -// if (keys_mngr == NULL) { -// if (lasso_provider != NULL) { -// dsigCtx->signKey = xmlSecKeyDuplicate( -// lasso_provider_get_public_key(lasso_provider)); -// } else if (public_key) { -// dsigCtx->signKey = xmlSecKeyDuplicate(public_key); -// } -// if (dsigCtx->signKey == NULL) { -// xmlSecDSigCtxDestroy(dsigCtx); -// xmlXPathFreeObject(xpathObj); -// xmlXPathFreeContext(xpathCtx); -// return LASSO_DS_ERROR_PUBLIC_KEY_LOAD_FAILED; -// } -// } -// -// if (xmlSecDSigCtxVerify(dsigCtx, node) < 0) { -// xmlSecDSigCtxDestroy(dsigCtx); -// if (keys_mngr) -// xmlSecKeysMngrDestroy(keys_mngr); -// xmlXPathFreeObject(xpathObj); -// xmlXPathFreeContext(xpathCtx); -// return LASSO_DS_ERROR_SIGNATURE_VERIFICATION_FAILED; -// } -// -// xmlXPathFreeObject(xpathObj); -// xmlXPathFreeContext(xpathCtx); -// -// if (keys_mngr) -// xmlSecKeysMngrDestroy(keys_mngr); -// -// if (dsigCtx->status != xmlSecDSigStatusSucceeded) { -// xmlSecDSigCtxDestroy(dsigCtx); -// return LASSO_DS_ERROR_INVALID_SIGNATURE; -// } -// -// return 0; -//} - LassoSoapEnvelope* lasso_wsf2_profile_build_soap_envelope(const char *refToMessageId, const char *providerId) { @@ -840,219 +95,6 @@ lasso_wsf2_profile_build_soap_envelope(const char *refToMessageId, const char *p /* public methods */ /*****************************************************************************/ -/** - * lasso_wsf_profile_is_principal_online(): - * @profile: a #LassoWsfProfile - * - * Check if the principal is set to be online. - * - **/ -//gboolean -//lasso_wsf_profile_principal_is_online(LassoWsfProfile *profile) -//{ -// LassoSoapHeader *header; -// LassoSoapBindingProcessingContext *processing_context = NULL; -// GList *iter; -// -// header = profile->soap_envelope_request->Header; -// iter = header->Other; -// while (iter) { -// if (LASSO_IS_SOAP_BINDING_PROCESSING_CONTEXT(iter->data) == TRUE) { -// processing_context = iter->data; -// break; -// } -// iter = g_list_next(iter); -// } -// if (!processing_context) -// return FALSE; -// if (!processing_context->content) -// return FALSE; -// -// if (strcmp(processing_context->content, -// LASSO_SOAP_BINDING_PROCESS_CONTEXT_PRINCIPAL_ONLINE) == 0) -// return TRUE; -// -// return FALSE; -//} -// -///** -// * lasso_wsf_profile_set_principal_online(): -// * @profile: a #LassoWsfProfile -// * @status : a char* representing status of principal. -// * -// * Set the status of the principal. -// * -// **/ -//void -//lasso_wsf_profile_set_principal_status(LassoWsfProfile *profile, const char *status) -//{ -// LassoSoapHeader *header; -// LassoSoapBindingProcessingContext *processing_context = NULL; -// GList *iter; -// -// header = profile->soap_envelope_request->Header; -// iter = header->Other; -// while (iter) { -// if (LASSO_IS_SOAP_BINDING_PROCESSING_CONTEXT(iter->data) == TRUE) { -// processing_context = iter->data; -// break; -// } -// iter = g_list_next(iter); -// } -// if (!processing_context) { -// processing_context = LASSO_SOAP_BINDING_PROCESSING_CONTEXT( -// lasso_soap_binding_processing_context_new()); -// header->Other = g_list_append(header->Other, processing_context); -// } -// if (processing_context->content) -// g_free(processing_context->content); -// processing_context->content = g_strdup(status); -//} -// -///** -// * lasso_wsf_profile_set_principal_online(): -// * @profile: a #LassoWsfProfile -// * -// * Set the principal status as offline. -// * -// **/ -//void -//lasso_wsf_profile_set_principal_online(LassoWsfProfile *profile) -//{ -// lasso_wsf_profile_set_principal_status( -// profile, LASSO_SOAP_BINDING_PROCESS_CONTEXT_PRINCIPAL_ONLINE); -//} -// -///** -// * lasso_wsf_profile_set_principal_offline(): -// * @profile: a #LassoWsfProfile -// * -// * Set the principal status as offline. -// * -// **/ -//void -//lasso_wsf_profile_set_principal_offline(LassoWsfProfile *profile) -//{ -// lasso_wsf_profile_set_principal_status( -// profile, LASSO_SOAP_BINDING_PROCESS_CONTEXT_PRINCIPAL_OFFLINE); -//} -// -///** -// * lasso_wsf_profile_get_identity: -// * @profile: a #LassoWsfProfile -// * -// * Gets the identity bound to @profile. -// * -// * Return value: the identity or NULL if it none was found. The #LassoIdentity -// * object is internally allocated and must not be freed by the caller. -// **/ -//LassoIdentity* -//lasso_wsf_profile_get_identity(LassoWsfProfile *profile) -//{ -// if (profile->identity && g_hash_table_size(profile->identity->federations)) -// return profile->identity; -// return NULL; -//} -// -// -///** -// * lasso_wsf_profile_get_session: -// * @profile: a #LassoWsfProfile -// * -// * Gets the session bound to @profile. -// * -// * Return value: the session or NULL if it none was found. The #LassoSession -// * object is internally allocated and must not be freed by the caller. -// **/ -//LassoSession* -//lasso_wsf_profile_get_session(LassoWsfProfile *profile) -//{ -// if (profile->session == NULL) -// return NULL; -// -// if (lasso_session_is_empty(profile->session)) -// return NULL; -// -// return profile->session; -//} -// -// -///** -// * lasso_wsf_profile_is_identity_dirty: -// * @profile: a #LassoWsfProfile -// * -// * Checks whether identity has been modified (and should therefore be saved). -// * -// * Return value: %TRUE if identity has changed -// **/ -//gboolean -//lasso_wsf_profile_is_identity_dirty(LassoWsfProfile *profile) -//{ -// return (profile->identity && profile->identity->is_dirty); -//} -// -// -///** -// * lasso_wsf_profile_is_session_dirty: -// * @profile: a #LassoWsfProfile -// * -// * Checks whether session has been modified (and should therefore be saved). -// * -// * Return value: %TRUE if session has changed -// **/ -//gboolean -//lasso_wsf_profile_is_session_dirty(LassoWsfProfile *profile) -//{ -// return (profile->session && profile->session->is_dirty); -//} -// -// -///** -// * lasso_wsf_profile_set_identity_from_dump: -// * @profile: a #LassoWsfProfile -// * @dump: XML identity dump -// * -// * Builds a new #LassoIdentity object from XML dump and binds it to @profile. -// * -// * Return value: 0 on success; or a negative value otherwise. -// **/ -//gint -//lasso_wsf_profile_set_identity_from_dump(LassoWsfProfile *profile, const gchar *dump) -//{ -// g_return_val_if_fail(dump != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); -// -// profile->identity = lasso_identity_new_from_dump(dump); -// if (profile->identity == NULL) -// return critical_error(LASSO_PROFILE_ERROR_BAD_IDENTITY_DUMP); -// -// return 0; -//} -// -// -///** -// * lasso_wsf_profile_set_session_from_dump: -// * @profile: a #LassoWsfProfile -// * @dump: XML session dump -// * -// * Builds a new #LassoSession object from XML dump and binds it to @profile. -// * -// * Return value: 0 on success; or a negative value otherwise. -// **/ -//gint -//lasso_wsf_profile_set_session_from_dump(LassoWsfProfile *profile, const gchar *dump) -//{ -// g_return_val_if_fail(dump != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); -// -// profile->session = lasso_session_new_from_dump(dump); -// if (profile->session == NULL) -// return critical_error(LASSO_PROFILE_ERROR_BAD_SESSION_DUMP); -// profile->session->is_dirty = FALSE; -// -// return 0; -//} - - - gint lasso_wsf2_profile_init_soap_request(LassoWsf2Profile *profile, LassoNode *request) { @@ -1071,7 +113,6 @@ lasso_wsf2_profile_build_soap_request_msg(LassoWsf2Profile *profile) { LassoSoapEnvelope *envelope; LassoSoapHeader *header; -// LassoWsseSecurity *security = NULL; int ret; GList *iter = NULL; xmlNode *security_xmlNode, *credential; @@ -1088,72 +129,10 @@ lasso_wsf2_profile_build_soap_request_msg(LassoWsf2Profile *profile) envelope = profile->soap_envelope_request; - /* FIXME: find a better way to add needed security element */ -// if (lasso_wsf_profile_has_saml_authentication(profile) == TRUE || -// lasso_wsf_profile_has_x509_authentication(profile) == TRUE) { -// security = lasso_wsse_security_new(); -// header = envelope->Header; -// header->Other = g_list_append(header->Other, security); -// } - - /* Apply wsf authentication */ doc = xmlNewDoc((xmlChar*)"1.0"); envelope_node = lasso_node_get_xmlNode(LASSO_NODE(envelope), FALSE); xmlDocSetRootElement(doc, envelope_node); -// if (lasso_wsf_profile_has_saml_authentication(profile) == TRUE) { -// if (profile->private_data->credentials) { -// xpathCtx = xmlXPathNewContext(doc); -// -// xmlXPathRegisterNs(xpathCtx, (xmlChar*)"wsse", (xmlChar*)LASSO_WSSE_HREF); -// xpathObj = xmlXPathEvalExpression((xmlChar*)"//wsse:Security", xpathCtx); -// -// if (xpathObj->nodesetval && xpathObj->nodesetval->nodeNr) { -// security_xmlNode = xpathObj->nodesetval->nodeTab[0]; -// iter = profile->private_data->credentials; -// -// /* FIXME: not sure it's the proper way to avoid ns error */ -// xmlNewNs(envelope_node, -// (xmlChar*)LASSO_SAML_ASSERTION_HREF, -// (xmlChar*)LASSO_SAML_ASSERTION_PREFIX); -// xmlNewNs(envelope_node, -// (xmlChar*)LASSO_DS_HREF, -// (xmlChar*)LASSO_DS_PREFIX); -// -// while (iter) { -// credential = (xmlNode *) iter->data; -// credential = xmlAddChild(security_xmlNode, credential); -// iter = iter->next; -// } -// /* xml doc has xml node credentials, so remove profile -// credential list */ -// g_list_free(profile->private_data->credentials); -// } -// -// xmlXPathFreeContext(xpathCtx); -// xmlXPathFreeObject(xpathObj); -// xpathCtx = NULL; -// xpathObj = NULL; -// } - - /* FIXME: do we need to sign if SAML authentication or X509 authentication ? */ -// ret = lasso_wsf_profile_add_soap_signature(profile, doc, envelope_node, -// LASSO_SIGNATURE_METHOD_RSA_SHA1); -// if (ret != 0) { -// xmlFreeDoc(doc); -// return ret; -// } -// } - -// if (lasso_wsf_profile_has_x509_authentication(profile) == TRUE) { -// ret = lasso_wsf_profile_add_soap_signature(profile, doc, envelope_node, -// LASSO_SIGNATURE_METHOD_RSA_SHA1); -// if (ret != 0) { -// xmlFreeDoc(doc); -// return ret; -// } -// } - /* Dump soap request */ handler = xmlFindCharEncodingHandler("utf-8"); buf = xmlAllocOutputBuffer(handler); @@ -1167,268 +146,6 @@ lasso_wsf2_profile_build_soap_request_msg(LassoWsf2Profile *profile) return 0; } -//static int -//lasso_wsf_profile_ensure_soap_credentials_signature(LassoWsfProfile *profile, -// xmlDoc *doc, xmlNode *soap_envelope) -//{ -// xmlXPathContext *xpathCtx = NULL; -// xmlXPathObject *xpathObj; -// int i; -// -// xpathCtx = xmlXPathNewContext(doc); -// -// xmlXPathRegisterNs(xpathCtx, (xmlChar*)"wsse", (xmlChar*)LASSO_WSSE_HREF); -// xmlXPathRegisterNs(xpathCtx, (xmlChar*)"saml", (xmlChar*)LASSO_SAML_ASSERTION_HREF); -// -// /* FIXME: should find credential from //wsse:Security/saml:Assertion instead.*/ -// xpathObj = xmlXPathEvalExpression((xmlChar*)"//saml:Assertion", xpathCtx); -// if (xpathObj->nodesetval && xpathObj->nodesetval->nodeNr) { -// for (i = 0; i < xpathObj->nodesetval->nodeNr; i++) { -// lasso_wsf_profile_add_credential_signature(profile, doc, -// xpathObj->nodesetval->nodeTab[i], LASSO_SIGNATURE_METHOD_RSA_SHA1); -// } -// } -// -// xmlXPathFreeContext(xpathCtx); -// xmlXPathFreeObject(xpathObj); -// -// return 0; -//} -// -//int -//lasso_wsf_profile_build_soap_response_msg(LassoWsfProfile *profile) -//{ -// LassoSoapEnvelope *envelope; -// LassoSoapHeader *header; -// LassoWsseSecurity *security; -// -// xmlNode *soap_envelope; -// -// xmlDoc *doc; -// -// xmlOutputBuffer *buf; -// xmlCharEncodingHandler *handler; -// -// g_return_val_if_fail(LASSO_IS_WSF_PROFILE(profile), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); -// -// /* FIXME: find a better way to add needed security element */ -// envelope = profile->soap_envelope_response; -// if (lasso_wsf_profile_has_saml_authentication(profile) == TRUE || -// lasso_wsf_profile_has_x509_authentication(profile) == TRUE) { -// security = lasso_wsse_security_new(); -// header = envelope->Header; -// header->Other = g_list_append(header->Other, security); -// } -// -// /* Apply wsf authentication */ -// doc = xmlNewDoc((xmlChar*)"1.0"); -// soap_envelope = lasso_node_get_xmlNode(LASSO_NODE(envelope), TRUE); -// xmlDocSetRootElement(doc, soap_envelope); -// -// /* SAML authentication, if credentials in response, verify they are signed */ -// lasso_wsf_profile_ensure_soap_credentials_signature(profile, doc, soap_envelope); -// -// /* X509 authentication */ -// if (lasso_wsf_profile_has_x509_authentication(profile) == TRUE) { -// int res = lasso_wsf_profile_add_soap_signature(profile, doc, soap_envelope, -// LASSO_SIGNATURE_METHOD_RSA_SHA1); -// if (res != 0) { -// xmlFreeDoc(doc); -// return res; -// } -// } -// -// /* Dump soap response */ -// handler = xmlFindCharEncodingHandler("utf-8"); -// buf = xmlAllocOutputBuffer(handler); -// xmlNodeDumpOutput(buf, NULL, soap_envelope, 0, 0, "utf-8"); -// xmlOutputBufferFlush(buf); -// profile->msg_body = g_strdup( -// (char*)(buf->conv ? buf->conv->content : buf->buffer->content)); -// xmlOutputBufferClose(buf); -// xmlFreeDoc(doc); -// -// return 0; -//} -// -//gint -//lasso_wsf_profile_process_soap_request_msg(LassoWsfProfile *profile, const gchar *message, -// const gchar *service_type, const gchar *security_mech_id) -//{ -// LassoDiscoServiceInstance *si; -// LassoSoapBindingCorrelation *correlation; -// LassoSoapEnvelope *envelope = NULL; -// LassoSoapFault *fault = NULL; -// gchar *messageId; -// int res = 0; -// xmlDoc *doc; -// -// g_return_val_if_fail(LASSO_IS_WSF_PROFILE(profile), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); -// g_return_val_if_fail(message != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); -// -// si = lasso_server_get_service(profile->server, (char *) service_type); -// -// if (security_mech_id == NULL) { -// if (si) { -// profile->private_data->description = LASSO_DISCO_DESCRIPTION( -// si->Description->data); -// } else { -// profile->private_data->description = NULL; -// } -// } else { -// if (si == NULL) { -// return LASSO_PROFILE_ERROR_MISSING_SERVICE_INSTANCE; -// } else { -// lasso_wsf_profile_get_description_auto(si, security_mech_id); -// } -// } -// -// doc = xmlParseMemory(message, strlen(message)); -// -// /* Verify authentication mecanisms */ -// if (lasso_wsf_profile_has_x509_authentication(profile) == TRUE) { -// res = lasso_wsf_profile_verify_x509_authentication(profile, doc, NULL); -// } else if (lasso_wsf_profile_has_saml_authentication(profile) == TRUE) { -// res = lasso_wsf_profile_verify_saml_authentication(profile, doc); -// } -// -// /* FIXME: Return a soap fault if authentication verification failed ? */ -// if (res > 0) { -// fault = lasso_soap_fault_new(); -// fault->faultstring = g_strdup("Invalid signature"); -// } else if (res < 0) { -// xmlFreeDoc(doc); -// return res; -// } -// -// /* FIXME: Remove Signature element if exists, it seg fault when a call to -// lasso_node_new_from_xmlNode() */ -// { -// xmlNode *xmlnode = xmlSecFindNode(xmlDocGetRootElement(doc), xmlSecNodeSignature, -// xmlSecDSigNs); -// if (xmlnode) { -// xmlUnlinkNode(xmlnode); -// xmlFreeNode(xmlnode); -// } -// } -// -// /* Get soap request and his message id */ -// envelope = LASSO_SOAP_ENVELOPE(lasso_node_new_from_xmlNode(xmlDocGetRootElement(doc))); -// profile->soap_envelope_request = envelope; -// profile->request = LASSO_NODE(envelope->Body->any->data); -// correlation = LASSO_SOAP_BINDING_CORRELATION(envelope->Header->Other->data); -// messageId = correlation->messageID; -// -// /* Set soap response */ -// envelope = lasso_wsf_profile_build_soap_envelope(messageId, -// LASSO_PROVIDER(profile->server)->ProviderID); -// LASSO_WSF_PROFILE(profile)->soap_envelope_response = envelope; -// -// /* If fault built at this level (X509 authentication error ?), -// then save it in soap response */ -// if (fault) { -// envelope->Body->any = g_list_append(envelope->Body->any, fault); -// /* FIXME: Need to store it in private data's profile ? */ -// profile->private_data->fault = fault; -// } -// -// xmlFreeDoc(doc); -// -// return res; -//} -// -//gint -//lasso_wsf_profile_process_soap_response_msg(LassoWsfProfile *profile, const gchar *message) -//{ -// LassoSoapEnvelope *envelope; -// xmlNode *credential; -// int res = 0; -// -// xmlXPathContext *xpathCtx = NULL; -// xmlXPathObject *xpathObj; -// -// xmlDoc *doc; -// -// g_return_val_if_fail(LASSO_IS_WSF_PROFILE(profile), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); -// g_return_val_if_fail(message != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); -// -// doc = xmlParseMemory(message, strlen(message)); -// -// if (lasso_wsf_profile_has_x509_authentication(profile) == TRUE) { -// xmlNode *xmlnode; -// int res; -// -// res = lasso_wsf_profile_verify_x509_authentication(profile, doc, NULL); -// if (res != 0) { -// xmlFreeDoc(doc); -// return res; -// } -// -// /* FIXME: Remove Signature element if exists, it seg fault when a call to -// lasso_node_new_from_xmlNode() */ -// xmlnode = xmlSecFindNode(xmlDocGetRootElement(doc), xmlSecNodeSignature, -// xmlSecDSigNs); -// if (xmlnode) { -// xmlUnlinkNode(xmlnode); -// xmlFreeNode(xmlnode); -// } -// } -// -// if (res != 0) { -// xmlFreeDoc(doc); -// return res; -// } -// -// /* If credentials are found, save and remove them from message */ -// { -// int i; -// -// xpathCtx = xmlXPathNewContext(doc); -// xmlXPathRegisterNs(xpathCtx, (xmlChar*)"saml", (xmlChar*)LASSO_SAML_ASSERTION_HREF); -// xpathObj = xmlXPathEvalExpression((xmlChar*)"//saml:Assertion", xpathCtx); -// if (xpathObj->nodesetval && xpathObj->nodesetval->nodeNr) { -// for (i = 0; i < xpathObj->nodesetval->nodeNr; i++) { -// credential = xpathObj->nodesetval->nodeTab[i]; -// xmlUnlinkNode(credential); -// lasso_wsf_profile_add_credential(profile, credential); -// } -// } -// xmlXPathFreeContext(xpathCtx); -// xmlXPathFreeObject(xpathObj); -// } -// -// envelope = LASSO_SOAP_ENVELOPE(lasso_node_new_from_xmlNode(xmlDocGetRootElement(doc))); -// xmlFreeDoc(doc); -// -// profile->soap_envelope_response = envelope; -// -// /* Soap Fault message */ -// if (LASSO_IS_SOAP_FAULT(envelope->Body->any->data) == FALSE) -// profile->response = LASSO_NODE(envelope->Body->any->data); -// -// return 0; -//} -// -//LassoSoapBindingProvider *lasso_wsf_profile_set_provider_soap_request(LassoWsfProfile *profile, -// const char *providerId) -//{ -// LassoSoapBindingProvider *provider; -// LassoSoapEnvelope *soap_request; -// LassoSoapHeader *header; -// -// g_return_val_if_fail(LASSO_IS_WSF_PROFILE(profile), NULL); -// g_return_val_if_fail(providerId != NULL, NULL); -// -// soap_request = profile->soap_envelope_request; -// g_return_val_if_fail(LASSO_IS_SOAP_ENVELOPE(soap_request) == TRUE, NULL); -// -// header = profile->soap_envelope_request->Header; -// provider = lasso_soap_binding_provider_new(providerId); -// header->Other = g_list_append(header->Other, provider); -// -// return provider; -//} - /*****************************************************************************/ /* overrided parent class methods */ /*****************************************************************************/ @@ -1473,7 +190,6 @@ instance_init(LassoWsf2Profile *profile) profile->private_data = g_new0(LassoWsf2ProfilePrivate, 1); profile->private_data->dispose_has_run = FALSE; -// profile->private_data->description = NULL; profile->private_data->fault = NULL; profile->private_data->credentials = NULL; } diff --git a/lasso/id-wsf-2.0/wsf2_profile.h b/lasso/id-wsf-2.0/wsf2_profile.h index eb398d2d..f9fb53c4 100644 --- a/lasso/id-wsf-2.0/wsf2_profile.h +++ b/lasso/id-wsf-2.0/wsf2_profile.h @@ -1,4 +1,4 @@ -/* $Id: wsf_profile.h,v 1.13 2006/11/14 17:07:30 fpeters Exp $ +/* $Id: wsf_profile.h,v 1.13 2006/11/14 17:07:30 Exp $ * * Lasso - A free implementation of the Liberty Alliance specifications. * @@ -35,7 +35,6 @@ extern "C" { #include <lasso/id-ff/session.h> #include <lasso/xml/soap_envelope.h> #include <lasso/xml/soap_binding_provider.h> -//#include <lasso/xml/saml_assertion.h> #define LASSO_TYPE_WSF2_PROFILE (lasso_wsf2_profile_get_type()) #define LASSO_WSF2_PROFILE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \ @@ -79,53 +78,11 @@ struct _LassoWsf2ProfileClass { LASSO_EXPORT GType lasso_wsf2_profile_get_type(void); -//LASSO_EXPORT gboolean lasso_security_mech_id_is_saml_authentication(const gchar *security_mech_id); -// -//LASSO_EXPORT gint lasso_wsf_profile_move_credentials(LassoWsfProfile *src, LassoWsfProfile *dest); -// -//LASSO_EXPORT LassoIdentity* lasso_wsf_profile_get_identity(LassoWsfProfile *profile); -//LASSO_EXPORT LassoSession* lasso_wsf_profile_get_session(LassoWsfProfile *profile); -//LASSO_EXPORT gboolean lasso_wsf_profile_is_identity_dirty(LassoWsfProfile *profile); -//LASSO_EXPORT gboolean lasso_wsf_profile_is_session_dirty(LassoWsfProfile *profile); -//LASSO_EXPORT gint lasso_wsf_profile_set_identity_from_dump(LassoWsfProfile *profile, -// const gchar *dump); -//LASSO_EXPORT gint lasso_wsf_profile_set_session_from_dump(LassoWsfProfile *profile, -// const gchar *dump); - LASSO_EXPORT LassoSoapEnvelope* lasso_wsf2_profile_build_soap_envelope(const char *refToMessageId, const char *providerId); LASSO_EXPORT gint lasso_wsf2_profile_build_soap_request_msg(LassoWsf2Profile *profile); -//LASSO_EXPORT gint lasso_wsf_profile_build_soap_response_msg(LassoWsfProfile *profile); -// -//LASSO_EXPORT gint lasso_wsf_profile_init_soap_request(LassoWsfProfile *profile, -// LassoNode *request); -// -//LASSO_EXPORT gint lasso_wsf_profile_process_soap_request_msg(LassoWsfProfile *profile, -// const gchar *message, const gchar *service_type, const gchar *security_mech_id); -// -//LASSO_EXPORT gint lasso_wsf_profile_process_soap_response_msg(LassoWsfProfile *profile, -// const gchar *message); -// -//LASSO_EXPORT LassoSoapBindingProvider* lasso_wsf_profile_set_provider_soap_request( -// LassoWsfProfile *profile, const char *providerId); -// -//LASSO_EXPORT LassoWsfProfile* lasso_wsf_profile_new(LassoServer *server); -// -//LASSO_EXPORT gboolean lasso_wsf_profile_principal_is_online(LassoWsfProfile *profile); -// -//LASSO_EXPORT gint lasso_wsf_profile_add_credential(LassoWsfProfile *profile, xmlNode *credential); -// -//LASSO_EXPORT void lasso_wsf_profile_set_description(LassoWsfProfile *profile, -// LassoDiscoDescription *description); -//LASSO_EXPORT void lasso_wsf_profile_set_principal_status(LassoWsfProfile *profile, -// const char *status); -// -//LASSO_EXPORT void lasso_wsf_profile_set_principal_online(LassoWsfProfile *profile); -// -//LASSO_EXPORT void lasso_wsf_profile_set_principal_offline(LassoWsfProfile *profile); - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/lasso/xml/id-wsf-2.0/soap_binding_framework.c b/lasso/xml/id-wsf-2.0/soap_binding_framework.c index 124eb5ad..1b310d37 100644 --- a/lasso/xml/id-wsf-2.0/soap_binding_framework.c +++ b/lasso/xml/id-wsf-2.0/soap_binding_framework.c @@ -95,7 +95,9 @@ lasso_soap_binding_framework_get_type() LassoSoapBindingFramework* lasso_soap_binding_framework_new(gchar *version) { - LassoSoapBindingFramework *framework = g_object_new(LASSO_TYPE_SOAP_BINDING_FRAMEWORK, NULL); + LassoSoapBindingFramework *framework; + + framework = g_object_new(LASSO_TYPE_SOAP_BINDING_FRAMEWORK, NULL); framework->Version = version; diff --git a/lasso/xml/id-wsf-2.0/soap_binding_framework.h b/lasso/xml/id-wsf-2.0/soap_binding_framework.h index 002ebaaa..eeefe17e 100644 --- a/lasso/xml/id-wsf-2.0/soap_binding_framework.h +++ b/lasso/xml/id-wsf-2.0/soap_binding_framework.h @@ -32,16 +32,16 @@ extern "C" { #include <lasso/xml/xml.h> #define LASSO_TYPE_SOAP_BINDING_FRAMEWORK (lasso_soap_binding_framework_get_type()) -#define LASSO_SOAP_BINDING_FRAMEWORK(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), LASSO_TYPE_SOAP_BINDING_FRAMEWORK, LassoSoapBindingFramework)) -#define LASSO_SOAP_BINDING_FRAMEWORK_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), LASSO_TYPE_SOAP_BINDING_FRAMEWORK, LassoSoapBindingFrameworkClass)) -#define LASSO_IS_SOAP_BINDING_FRAMEWORK(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), LASSO_TYPE_SOAP_BINDING_FRAMEWORK)) -#define LASSO_IS_SOAP_BINDING_FRAMEWORK_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), LASSO_TYPE_SOAP_BINDING_FRAMEWORK)) -#define LASSO_SOAP_BINDING_FRAMEWORK_GET_CLASS(o) \ - (G_TYPE_INSTANCE_GET_CLASS ((o), LASSO_TYPE_SOAP_BINDING_FRAMEWORK, LassoSoapBindingFrameworkClass)) +#define LASSO_SOAP_BINDING_FRAMEWORK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + LASSO_TYPE_SOAP_BINDING_FRAMEWORK, LassoSoapBindingFramework)) +#define LASSO_SOAP_BINDING_FRAMEWORK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), \ + LASSO_TYPE_SOAP_BINDING_FRAMEWORK, LassoSoapBindingFrameworkClass)) +#define LASSO_IS_SOAP_BINDING_FRAMEWORK(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + LASSO_TYPE_SOAP_BINDING_FRAMEWORK)) +#define LASSO_IS_SOAP_BINDING_FRAMEWORK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ + LASSO_TYPE_SOAP_BINDING_FRAMEWORK)) +#define LASSO_SOAP_BINDING_FRAMEWORK_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), \ + LASSO_TYPE_SOAP_BINDING_FRAMEWORK, LassoSoapBindingFrameworkClass)) typedef struct _LassoSoapBindingFramework LassoSoapBindingFramework; typedef struct _LassoSoapBindingFrameworkClass LassoSoapBindingFrameworkClass; |
