You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rampart-dev@ws.apache.org by mi...@apache.org on 2007/10/05 15:23:24 UTC
svn commit: r582252 - in /webservices/rampart/scratch/c/trust:
include/trust_constants.h include/trust_data.h src/data.c
Author: milinda
Date: Fri Oct 5 06:23:23 2007
New Revision: 582252
URL: http://svn.apache.org/viewvc?rev=582252&view=rev
Log:
Adding entropy processing, not completed. Formatting changes.
Modified:
webservices/rampart/scratch/c/trust/include/trust_constants.h
webservices/rampart/scratch/c/trust/include/trust_data.h
webservices/rampart/scratch/c/trust/src/data.c
Modified: webservices/rampart/scratch/c/trust/include/trust_constants.h
URL: http://svn.apache.org/viewvc/webservices/rampart/scratch/c/trust/include/trust_constants.h?rev=582252&r1=582251&r2=582252&view=diff
==============================================================================
--- webservices/rampart/scratch/c/trust/include/trust_constants.h (original)
+++ webservices/rampart/scratch/c/trust/include/trust_constants.h Fri Oct 5 06:23:23 2007
@@ -34,11 +34,15 @@
#define TRUST_TOKEN_TYPE "TokenType"
#define TRUST_REQUEST_TYPE "RequestType"
#define TRUST_APPLIES_TO "AppliesTo"
-#define TRUST_ENTROPY "Entropy"
+
#define TRSUT_KEY_TYPE "KeyType"
-#define TRUST_KEY_SIZE "KeySize"
+#define TRUST_KEY_SIZE "KeySize"
+
#define TRUST_CLAIMS "Claims"
-#define TRUST_CLAIMS_DIALECT "Dialect"
+#define TRUST_CLAIMS_DIALECT "Dialect"
+
+#define TRUST_ENTROPY "Entropy"
+#define TRUST_BINARY_SECRET "BinarySecret"
#define TRUST_LIFE_TIME "LifeTime"
#define TRUST_TIMESTAMP_CREATED "Created"
Modified: webservices/rampart/scratch/c/trust/include/trust_data.h
URL: http://svn.apache.org/viewvc/webservices/rampart/scratch/c/trust/include/trust_data.h?rev=582252&r1=582251&r2=582252&view=diff
==============================================================================
--- webservices/rampart/scratch/c/trust/include/trust_data.h (original)
+++ webservices/rampart/scratch/c/trust/include/trust_data.h Fri Oct 5 06:23:23 2007
@@ -27,11 +27,13 @@
#include <stdlib.h>
#include <axutil_utils.h>
#include <axutil_string.h>
+#include <axutil_base64.h>
#include <axiom_soap.h>
#include <axiom.h>
#include <axis2_msg_ctx.h>
#include <axi2_addr.h>
-#include "trust_constants.h"
+#include <trust_constants.h>
+
#ifdef __cplusplus
extern "C" {
@@ -77,6 +79,10 @@
AXIS2_EXPORT axis2_status_t AXIS2_CALL trust_data_process_token_type(
trust_data_t *trust_data,
+ const axutil_env_t *env);
+
+ AXIS2_EXPORT axis2_status_t AXIS2_CALL trust_data_process_entropy(
+ trust_data *trust_data,
const axutil_env_t *env);
Modified: webservices/rampart/scratch/c/trust/src/data.c
URL: http://svn.apache.org/viewvc/webservices/rampart/scratch/c/trust/src/data.c?rev=582252&r1=582251&r2=582252&view=diff
==============================================================================
--- webservices/rampart/scratch/c/trust/src/data.c (original)
+++ webservices/rampart/scratch/c/trust/src/data.c Fri Oct 5 06:23:23 2007
@@ -1,287 +1,310 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#include <trust_data.h>
-
-struct trust_data {
- /* in message context of STS */
- axis2_msg_ctx_t *in_msg_cntx;
-
- /* Axiom node which holds payload of RST message */
- axiom_node_t *rst_node;
-
- /** Request Type
- * e.g. wsse:ReqIssue/Validate/Renew etc
- */
- axis2_char_t *request_type;
-
- /** Required Token Type
- * e.g. wsse:X509v3
- */
- axis2_char_t *token_type;
-
- /*optional element specifies the scope for which this security token is desired*/
- axiom_node_t *applies_to_epr_node;
-
- axis2_char_t *applies_to_address;
-
- /** RST Context attribute
- * This optional URI specifies an identifier/context for this request
- */
- axis2_char_t *rst_context_attr;
-
- /* KeyType element of the RST */
- axis2_char_t *key_type;
-
- /*optional element for specific set of requested claims*/
- axiom_node_t *claims_node;
-
- /**wst:RequestSecurityToken/wst:Claims@Dialect
- *Attribute specifies a URI to indicate the syntax of the claims
- */
- axis2_char_t *claims_dialect;
-
- /* SOAP Namespace */
- axis2_char_t *soap_namespace;
-
- /* WS-Trust Namespace */
- axis2_char_t *wst_namespace;
-
- /*Addressing NS */
- axis2_char_t *addressing_namespace;
-};
-
-AXIS2_EXPORT trust_data_t* AXIS2_CALL trust_data_create(
- const axis2_msg_ctx_t *in_msg_ctx,
- const axutil_env_t *env)
-{
- axiom_soap_envelope_t *soap_env =NULL;
- axiom_soap_body_t *soap_body = NULL;
- axiom_namespace_t *soap_ns = NULL;
- axiom_namespace_t *wst_ns = NULL;
- axiom_node_t *rst_node = NULL;
- axiom_element_t *rst_ele = NULL;
-
-
-
- trust_data_t *trust_data = (trust_data_t*)AXIS2_MALLOC(env->allocator, sizeof(trust_data_t));
-
- /* Processing Message Context */
- soap_env = axis2_msg_ctx_get_soap_envelope(in_msg_ctx, env);
- soap_body = axiom_soap_envelope_get_body(soap_env, env);
- rst_node = axiom_soap_body_get_base_node(soap_body, env);
- trust_data->rst_node = rst_node;
-
-
- /* Processing SOAP Namespace */
- soap_ns = axiom_soap_envelope_get_namespace(soap_env, env);
- trust_data->soap_namespace = axiom_namespace_get_uri(soap_ns, env);
-
- /* Processing WS-Trust namespace */
- rst_ele = (axiom_element_t *)axiom_node_get_data_element(rst_node, env);
- wst_ns = axiom_element_get_namespace(rst_ele, env, rst_node);
-
- trust_data->wst_namespace = axiom_namespace_get_uri(wst_ns, env);
-
- trust_data_process_request_type(trust_data, env);
- trust_data_process_token_type(trust_data, env);
-
- /* TODO: Process other fields */
- /* TODO: Addressing namespace processing */
- return trust_data;
-}
-
-AXIS2_EXPORT void AXIS2_CALL trust_data_free(
- trust_data_t *trust_data,
- const axutil_env_t *env)
-{
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-
- if(trust_data)
- {
- AXIS2_FREE(env->allocator, trust_data);
- }
-}
-
-AXIS2_EXPORT axis2_status_t AXIS2_CALL trust_data_process_applies_to(
- trust_data_t *trust_data,
- const axutil_env_t *env)
-{
- axutil_qname_t *applies_to_qname = NULL;
- axutil_qname_t *addr_qname = NULL;
- axiom_node_t *appliesto_node = NULL;
- axiom_node_t *rst_node = NULL;
- axiom_node_t *epr_node = NULL;
- axiom_node_t *addr_node = NULL;
- axiom_element_t *appliesto_ele = NULL;
- axiom_element_t *rst_ele = NULL;
- axiom_element_t *epr_ele = NULL;
- axiom_element_t *addr_ele = NULL;
- axiom_namespace_t *addr_namespace = NULL:
-
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-
- rst_node = trust_data->rst_node;
- rst_ele = (axiom_element_t *)(axiom_node_get_data_element(rst_node, env));
-
- applies_to_qname = axutil_qname_create(env, TRUST_APPLIES_TO, TRUST_WSP_XMLNS, TRUST_WSP);
-
- appliesto_ele = axiom_element_get_first_child_with_qname(rst_ele, env, applies_to_qname, rst_node, &appliesto_node);
- if(appliesto_ele)
- {
- epr_ele = axiom_element_get_first_element(appliesto_ele, env, appliesto_node, epr_node);
- trust_data->applies_to_epr_node = epr_node;
-
- if(!trust_data->addressing_namespace)
- {
- addressing_namespace = axiom_element_get_default_namespace(epr_ele, env, epr_node);
- trust_data->addressing_namespace = axiom_namespace_get_uri(addressing_namespace, env);
- }
-
- if(epr_ele)
- {
- addr_qname = axutil_qname_create(env, EPR_ADDRESS, trust_data->addressing_namespace, NULL);
- addr_ele = axiom_element_get_first_child_with_qname(epr_ele, env, addr_qname, epr_node, &addr_node);
- if(addr_ele && axiom_element_get_text(addr_ele, env, addr_node))
- {
- trust_data->applies_to_address = axiom_element_get_text(addr_ele, env, addr_node);
- }
- }else
- {
- return AXIS2_FAILURE;
- }
-
- }else{
- return AXIS2_FAILURE;
- }
- return AXIS2_SUCCESS;
-}
-
-AXIS2_EXPORT axis2_status_t AXIS2_CALL trust_data_process_request_context(
- trust_data_t *trust_data,
- const axutil_env_t *env)
-{
- axiom_element_t *rst_ele = NULL;
- axutil_qname_t *attr_ctx_qname = NULL;
- axis2_char_t *context = NULL;
-
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-
- attr_ctx_qname = axutil_qname_create(env, TRUST_RST_CONTEXT, TRUST_WST_XMLNS, TRUST_WST);
- if(!attr_ctx_qname)
- return AXIS2_FAILURE;
-
- rst_ele = (axiom_element_t*)(axiom_node_get_data_element(trust_data->rst_node, env));
- context = axiom_element_get_attribute_value(rst_ele, env, attr_ctx_qname);
-
- if(context)
- {
- trust_data->rst_context_attr = context;
- return AXIS2_SUCCESS;
- }
- return AXIS2_FAILURE;
-}
-
-AXIS2_EXPORT axis2_status_t AXIS2_CALL trust_data_process_request_type(
- trust_data_t *trust_data,
- const axutil_env_t *env)
-{
- axiom_element_t *req_type_ele = NULL;
- axiom_element_t *rst_ele = NULL;
- axiom_node_t *rst_node = NULL;
- axiom_node_t *req_type_node = NULL;
- axutil_qname_t *req_type_qname = NULL;
-
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-
- rst_node = trust_data->rst_node;
- rst_ele = (axiom_element_t *)(axiom_node_get_data_element(rst_node, env));
-
- req_type_qname = axutil_qname_create(env, TRUST_REQUEST_TYPE, trust_data->wst_namespace, TRUST_WST);
-
- req_type_ele = axiom_element_get_first_child_with_qname(rst_ele, env, req_type_qname, rst_node, &req_type_node);
- if(!req_type_ele)
- return AXIS2_FAILURE;
-
- trust_data->request_type = axiom_element_get_text( req_type_ele, env, req_type_node);
-
- return AXIS2_SUCCESS;
-}
-
-AXIS2_EXPORT axis2_status_t AXIS2_CALL trust_data_process_token_type(
- trust_data_t *trust_data,
- const axutil_env_t *env)
-{
- axiom_node_t* token_type_node = NULL;
- axiom_element_t * token_type_ele = NULL;
- axiom_element_t * rst_ele = NULL;
- axutil_qname_t* token_type_qname = NULL;
-
- rst_ele = (axiom_element_t *)(axiom_node_get_data_element(trust_data->rst_node, env));
-
- token_type_qname = axutil_qname_create(env, TRUST_TOKEN_TYPE, trust_data->wst_namespace, TRUST_WST);
-
- token_type_ele = axiom_element_get_first_child_with_qname(rst_ele, env, token_type_qname,
- trust_data->rst_node, &token_type_node);
- if(!token_type_ele)
- return AXIS2_FAILURE;
-
- trust_data->token_type = axiom_element_get_text( token_type_ele, env, token_type_node);
-
- return AXIS2_SUCCESS;
-}
-
-AXIS2_EXPORT axis2_status_t AXIS2_CALL trust_data_process_claims(
- trust_data_t *trust_data,
- axutil_env_t *env)
-{
- axiom_node_t* claims_node = NULL;
- axiom_element_t * claims_ele = NULL;
- axiom_element_t * rst_ele = NULL;
- axutil_qname_t* claims_qname = NULL;
- axutil_qname_t *attr_dialect_qname = NULL;
- axis2_char_t *dialect = NULL;
-
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-
- rst_ele = (axiom_element_t *)(axiom_node_get_data_element(trust_data->rst_node, env));
-
- claims_qname = axutil_qname_create(env, TRUST_CLAIMS, trust_data->wst_namespace, TRUST_WST);
-
- claims_ele = axiom_element_get_first_child_with_qname(rst_ele, env, claims_qname,
- trust_data->rst_node, &claims_node);
- if(!claims_ele)
- return AXIS2_FAILURE;
-
- trust_data->claims_node = claims_node;
-
- attr_dialect_qname = axutil_qname_create(env, TRUST_CLAIMS_DIALECT, trust_data->wst_namespace, TRUST_WST);
- if(!attr_dialect_qname)
- {
- return AXIS2_FAILURE;
- }
-
- dialect = axiom_element_get_attribute_value(claims_ele, env, attr_dialect_qname);
-
- if(!dialect)
- {
- return AXIS2_FAILURE;
- }
- trust_data->claims_dialect = dialect;
-
- return AXIS2_SUCCESS;
-}
-
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <trust_data.h>
+
+struct trust_data {
+ /* in message context of STS */
+ axis2_msg_ctx_t *in_msg_cntx;
+
+ /* Axiom node which holds payload of RST message */
+ axiom_node_t *rst_node;
+
+ /** Request Type
+ * e.g. wsse:ReqIssue/Validate/Renew etc
+ */
+ axis2_char_t *request_type;
+
+ /** Required Token Type
+ * e.g. wsse:X509v3
+ */
+ axis2_char_t *token_type;
+
+ /*optional element specifies the scope for which this security token is desired*/
+ axiom_node_t *applies_to_epr_node;
+
+ axis2_char_t *applies_to_address;
+
+ /** RST Context attribute
+ * This optional URI specifies an identifier/context for this request
+ */
+ axis2_char_t *rst_context_attr;
+
+ /* KeyType element of the RST */
+ axis2_char_t *key_type;
+
+ /*optional element for specific set of requested claims*/
+ axiom_node_t *claims_node;
+
+ /**wst:RequestSecurityToken/wst:Claims@Dialect
+ *Attribute specifies a URI to indicate the syntax of the claims
+ */
+ axis2_char_t *claims_dialect;
+
+ /* SOAP Namespace */
+ axis2_char_t *soap_namespace;
+
+ /* WS-Trust Namespace */
+ axis2_char_t *wst_namespace;
+
+ /*Addressing NS */
+ axis2_char_t *addressing_namespace;
+};
+
+AXIS2_EXPORT trust_data_t* AXIS2_CALL trust_data_create(
+ const axis2_msg_ctx_t *in_msg_ctx,
+ const axutil_env_t *env)
+{
+ axiom_soap_envelope_t *soap_env =NULL;
+ axiom_soap_body_t *soap_body = NULL;
+ axiom_namespace_t *soap_ns = NULL;
+ axiom_namespace_t *wst_ns = NULL;
+ axiom_node_t *rst_node = NULL;
+ axiom_element_t *rst_ele = NULL;
+
+
+
+ trust_data_t *trust_data = (trust_data_t*)AXIS2_MALLOC(env->allocator, sizeof(trust_data_t));
+
+ /* Processing Message Context */
+ soap_env = axis2_msg_ctx_get_soap_envelope(in_msg_ctx, env);
+ soap_body = axiom_soap_envelope_get_body(soap_env, env);
+ rst_node = axiom_soap_body_get_base_node(soap_body, env);
+ trust_data->rst_node = rst_node;
+
+
+ /* Processing SOAP Namespace */
+ soap_ns = axiom_soap_envelope_get_namespace(soap_env, env);
+ trust_data->soap_namespace = axiom_namespace_get_uri(soap_ns, env);
+
+ /* Processing WS-Trust namespace */
+ rst_ele = (axiom_element_t *)axiom_node_get_data_element(rst_node, env);
+ wst_ns = axiom_element_get_namespace(rst_ele, env, rst_node);
+
+ trust_data->wst_namespace = axiom_namespace_get_uri(wst_ns, env);
+
+ trust_data_process_request_type(trust_data, env);
+ trust_data_process_token_type(trust_data, env);
+
+ /* TODO: Process other fields */
+ /* TODO: Addressing namespace processing */
+ return trust_data;
+}
+
+AXIS2_EXPORT void AXIS2_CALL trust_data_free(
+ trust_data_t *trust_data,
+ const axutil_env_t *env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ if(trust_data)
+ {
+ AXIS2_FREE(env->allocator, trust_data);
+ }
+}
+
+AXIS2_EXPORT axis2_status_t AXIS2_CALL trust_data_process_applies_to(
+ trust_data_t *trust_data,
+ const axutil_env_t *env)
+{
+ axutil_qname_t *applies_to_qname = NULL;
+ axutil_qname_t *addr_qname = NULL;
+ axiom_node_t *appliesto_node = NULL;
+ axiom_node_t *rst_node = NULL;
+ axiom_node_t *epr_node = NULL;
+ axiom_node_t *addr_node = NULL;
+ axiom_element_t *appliesto_ele = NULL;
+ axiom_element_t *rst_ele = NULL;
+ axiom_element_t *epr_ele = NULL;
+ axiom_element_t *addr_ele = NULL;
+ axiom_namespace_t *addr_namespace = NULL:
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ rst_node = trust_data->rst_node;
+ rst_ele = (axiom_element_t *)(axiom_node_get_data_element(rst_node, env));
+
+ applies_to_qname = axutil_qname_create(env, TRUST_APPLIES_TO, TRUST_WSP_XMLNS, TRUST_WSP);
+
+ appliesto_ele = axiom_element_get_first_child_with_qname(rst_ele, env, applies_to_qname, rst_node, &appliesto_node);
+ if(appliesto_ele)
+ {
+ epr_ele = axiom_element_get_first_element(appliesto_ele, env, appliesto_node, epr_node);
+ trust_data->applies_to_epr_node = epr_node;
+
+ if(!trust_data->addressing_namespace)
+ {
+ addressing_namespace = axiom_element_get_default_namespace(epr_ele, env, epr_node);
+ trust_data->addressing_namespace = axiom_namespace_get_uri(addressing_namespace, env);
+ }
+
+ if(epr_ele)
+ {
+ addr_qname = axutil_qname_create(env, EPR_ADDRESS, trust_data->addressing_namespace, NULL);
+ addr_ele = axiom_element_get_first_child_with_qname(epr_ele, env, addr_qname, epr_node, &addr_node);
+ if(addr_ele && axiom_element_get_text(addr_ele, env, addr_node))
+ {
+ trust_data->applies_to_address = axiom_element_get_text(addr_ele, env, addr_node);
+ }
+ }else
+ {
+ return AXIS2_FAILURE;
+ }
+
+ }else{
+ return AXIS2_FAILURE;
+ }
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXPORT axis2_status_t AXIS2_CALL trust_data_process_request_context(
+ trust_data_t *trust_data,
+ const axutil_env_t *env)
+{
+ axiom_element_t *rst_ele = NULL;
+ axutil_qname_t *attr_ctx_qname = NULL;
+ axis2_char_t *context = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ attr_ctx_qname = axutil_qname_create(env, TRUST_RST_CONTEXT, TRUST_WST_XMLNS, TRUST_WST);
+ if(!attr_ctx_qname)
+ return AXIS2_FAILURE;
+
+ rst_ele = (axiom_element_t*)(axiom_node_get_data_element(trust_data->rst_node, env));
+ context = axiom_element_get_attribute_value(rst_ele, env, attr_ctx_qname);
+
+ if(context)
+ {
+ trust_data->rst_context_attr = context;
+ return AXIS2_SUCCESS;
+ }
+ return AXIS2_FAILURE;
+}
+
+AXIS2_EXPORT axis2_status_t AXIS2_CALL trust_data_process_request_type(
+ trust_data_t *trust_data,
+ const axutil_env_t *env)
+{
+ axiom_element_t *req_type_ele = NULL;
+ axiom_element_t *rst_ele = NULL;
+ axiom_node_t *rst_node = NULL;
+ axiom_node_t *req_type_node = NULL;
+ axutil_qname_t *req_type_qname = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ rst_node = trust_data->rst_node;
+ rst_ele = (axiom_element_t *)(axiom_node_get_data_element(rst_node, env));
+
+ req_type_qname = axutil_qname_create(env, TRUST_REQUEST_TYPE, trust_data->wst_namespace, TRUST_WST);
+
+ req_type_ele = axiom_element_get_first_child_with_qname(rst_ele, env, req_type_qname, rst_node, &req_type_node);
+ if(!req_type_ele)
+ return AXIS2_FAILURE;
+
+ trust_data->request_type = axiom_element_get_text( req_type_ele, env, req_type_node);
+
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXPORT axis2_status_t AXIS2_CALL trust_data_process_token_type(
+ trust_data_t *trust_data,
+ const axutil_env_t *env)
+{
+ axiom_node_t* token_type_node = NULL;
+ axiom_element_t * token_type_ele = NULL;
+ axiom_element_t * rst_ele = NULL;
+ axutil_qname_t* token_type_qname = NULL;
+
+ rst_ele = (axiom_element_t *)(axiom_node_get_data_element(trust_data->rst_node, env));
+
+ token_type_qname = axutil_qname_create(env, TRUST_TOKEN_TYPE, trust_data->wst_namespace, TRUST_WST);
+
+ token_type_ele = axiom_element_get_first_child_with_qname(rst_ele, env, token_type_qname,
+ trust_data->rst_node, &token_type_node);
+ if(!token_type_ele)
+ return AXIS2_FAILURE;
+
+ trust_data->token_type = axiom_element_get_text( token_type_ele, env, token_type_node);
+
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXPORT axis2_status_t AXIS2_CALL trust_data_process_claims(
+ trust_data_t *trust_data,
+ axutil_env_t *env)
+{
+ axiom_node_t* claims_node = NULL;
+ axiom_element_t * claims_ele = NULL;
+ axiom_element_t * rst_ele = NULL;
+ axutil_qname_t* claims_qname = NULL;
+ axutil_qname_t *attr_dialect_qname = NULL;
+ axis2_char_t *dialect = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ rst_ele = (axiom_element_t *)(axiom_node_get_data_element(trust_data->rst_node, env));
+
+ claims_qname = axutil_qname_create(env, TRUST_CLAIMS, trust_data->wst_namespace, TRUST_WST);
+
+ claims_ele = axiom_element_get_first_child_with_qname(rst_ele, env, claims_qname,
+ trust_data->rst_node, &claims_node);
+ if(!claims_ele)
+ return AXIS2_FAILURE;
+
+ trust_data->claims_node = claims_node;
+
+ attr_dialect_qname = axutil_qname_create(env, TRUST_CLAIMS_DIALECT, trust_data->wst_namespace, TRUST_WST);
+ if(!attr_dialect_qname)
+ {
+ return AXIS2_FAILURE;
+ }
+
+ dialect = axiom_element_get_attribute_value(claims_ele, env, attr_dialect_qname);
+
+ if(!dialect)
+ {
+ return AXIS2_FAILURE;
+ }
+ trust_data->claims_dialect = dialect;
+
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXPORT axis2_status_t AXIS2_CALL trust_data_process_entropy(
+ trust_data *trust_data,
+ const axutil_env_t *env)
+{
+ /* TO DO: Complete the entropy processing*/
+ axiom_node_t* entropy_node = NULL;
+ axiom_element_t * entropy_ele = NULL;
+ axiom_element_t * rst_ele = NULL;
+ axutil_qname_t* binary_secret_qname = NULL;
+ axutil_qname_t *entropy_qname = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ rst_ele = (axiom_element_t *)(axiom_node_get_data_element(trust_data->rst_node, env));
+
+ claims_qname = axutil_qname_create(env, TRUST_CLAIMS, trust_data->wst_namespace, TRUST_WST);
+
+ claims_ele = axiom_element_get_first_child_with_qname(rst_ele, env, claims_qname,
+ trust_data->rst_node, &claims_node);
+ if(!claims_ele)
+ return AXIS2_FAILURE;
+
+}