Author: milinda
Date: Mon Nov  5 21:07:32 2007
New Revision: 592281

URL: http://svn.apache.org/viewvc?rev=592281&view=rev
Log:
New things added.

Modified:
    webservices/rampart/scratch/c/trust/src/util.c

Modified: webservices/rampart/scratch/c/trust/src/util.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/scratch/c/trust/src/util.c?rev=592281&r1=592280&r2=592281&view=diff
==============================================================================
--- webservices/rampart/scratch/c/trust/src/util.c (original)
+++ webservices/rampart/scratch/c/trust/src/util.c Mon Nov  5 21:07:32 2007
@@ -141,16 +141,17 @@
     AXIS2_ENV_CHECK(env, NULL);
 
     wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
-    
+
     wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
-    request_type_ele = axiom_element_create(env, parent_node, 
TRUST_REQUEST_TYPE, wst_ns, &request_type_node);
+    request_type_ele =
+        axiom_element_create(env, parent_node, TRUST_REQUEST_TYPE, wst_ns, 
&request_type_node);
 
-    if(!request_type_ele)
+    if (!request_type_ele)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] RequestType Element 
creation failed.");
         return NULL;
     }
-    
+
     if (0 == axutil_strcmp(request_type, TRUST_REQ_TYPE_ISSUE) ||
         0 == axutil_strcmp(request_type, TRUST_REQ_TYPE_CANCEL) ||
         0 == axutil_strcmp(request_type, TRUST_REQ_TYPE_RENEW) ||
@@ -163,10 +164,11 @@
     {
         status = axiom_element_set_text(request_type_ele, env, request_type, 
request_type_node);
     }
-    
-    if(status == AXIS2_FAILURE)
+
+    if (status == AXIS2_FAILURE)
     {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] RequestType Element's 
setting text function failed.");
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                        "[trust] RequestType Element's setting text function 
failed.");
         return NULL;
     }
 
@@ -178,35 +180,37 @@
     const axutil_env_t * env,
     int wst_version,
     axiom_node_t * parent_node,
-    axis2_char_t *token_type)
+    axis2_char_t * token_type)
 {
     axis2_char_t *wst_ns_uri = NULL;
     axiom_node_t *token_type_node = NULL;
     axiom_element_t *token_type_ele = NULL;
     axiom_namespace_t *wst_ns = NULL;
     axis2_status_t status = AXIS2_SUCCESS;
-    
+
     AXIS2_ENV_CHECK(env, NULL);
 
     wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
-    
+
     wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
-    token_type_ele = axiom_element_create(env, parent_node, TRUST_TOKEN_TYPE, 
wst_ns, &token_type_node);
-    
-    if(!token_type_ele)
+    token_type_ele =
+        axiom_element_create(env, parent_node, TRUST_TOKEN_TYPE, wst_ns, 
&token_type_node);
+
+    if (!token_type_ele)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] TokenType Element 
creation failed.");
         return NULL;
     }
-    
+
     status = axiom_element_set_text(token_type_ele, env, token_type, 
token_type_node);
-    if(status == AXIS2_FAILURE)
+    if (status == AXIS2_FAILURE)
     {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] TokenType Element's 
setting text function failed.");
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                        "[trust] TokenType Element's setting text function 
failed.");
         return NULL;
     }
-    
-    return token_type_node; 
+
+    return token_type_node;
 }
 
 AXIS2_EXPORT axiom_node_t *AXIS2_CALL
@@ -217,7 +221,7 @@
     const axis2_char_t * addressing_ns)
 {
     axiom_node_t *applies_to_node = NULL;
-    axiom_node_t *epr_node = NULL;  
+    axiom_node_t *epr_node = NULL;
     axiom_node_t *addr_node = NULL;
     axiom_element_t *applies_to_ele = NULL;
     axiom_element_t *epr_ele = NULL;
@@ -228,72 +232,102 @@
 
     wsp_ns = axiom_namespace_create(env, TRUST_WSP_XMLNS, TRUST_WSP);
     wsa_ns = axiom_namespace_create(env, addressing_ns, TRUST_WSA);
-    
-    applies_to_ele = axiom_element_create(env, parent_node, TRUST_APPLIES_TO, 
wsp_ns, &applies_to_node);
-    if(!applies_to_ele)
+
+    applies_to_ele =
+        axiom_element_create(env, parent_node, TRUST_APPLIES_TO, wsp_ns, 
&applies_to_node);
+    if (!applies_to_ele)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] AppliesTo Element 
creation failed!");
         return NULL;
     }
-    
+
     epr_ele = axiom_element_create(env, applies_to_node, TRUST_EPR, wsa_ns, 
&epr_node);
-    if(!epr_ele)
+    if (!epr_ele)
     {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] EndpointReference 
Element creation failed!");
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                        "[trust] EndpointReference Element creation failed!");
         return NULL;
     }
-    
+
     addr_ele = axiom_element_create(env, epr_node, TRUST_EPR_ADDRESS, wsa_ns, 
&addr_node);
-    if(!addr_ele)
+    if (!addr_ele)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Address Element 
creation failed!");
         return NULL;
     }
-    
+
     status = axiom_element_set_text(addr_ele, env, address, addr_node);
-    if(status == AXIS2_FAILURE)
+    if (status == AXIS2_FAILURE)
     {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Address Element's 
setting text function failed.");
-        return NULL;        
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                        "[trust] Address Element's setting text function 
failed.");
+        return NULL;
     }
-    
+
     return applies_to_node;
 }
 
 AXIS2_EXPORT axiom_node_t *AXIS2_CALL
 trust_util_create_claims_element(
     const axutil_env_t * env,
+    int wst_version,
     axiom_node_t * parent_node,
-    axis2_char_t * claims_val,
-    axis2_char_t * dialect_uri,
-    int version)
+    axiom_node_t * claims_content,
+    axis2_char_t * dialect_uri)
 {
     axis2_char_t *wst_ns_uri = NULL;
-    axiom_node_t *util_claims_node = NULL;
-    axiom_element_t *util_claims_ele = NULL;
+    axiom_node_t *claims_node = NULL;
+    axiom_element_t *claims_ele = NULL;
+    axiom_namespace_t *wst_ns = NULL;
+    axiom_attribute_t *dialect_attr = NULL;
+    axis2_status_t status = AXIS2_SUCCESS;
 
-    AXIS2_ENV_CHECK(env, NULL);
+    wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
+    wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
 
-    wst_ns_uri = trust_util_get_wst_ns(env, version);
-    util_claims_node =
-        trust_util_create_om_node(env, parent_node, wst_ns_uri, TRUST_CLAIMS, 
TRUST_WST);
-    util_claims_ele = axiom_node_get_data_element(util_claims_node, env);
+    claims_ele = axiom_element_create(env, parent_node, TRUST_CLAIMS, wst_ns, 
&claims_node);
+    if (!claims_ele)
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Claims Element 
creation failed!");
+        return NULL;
+    }
+    if (claims_content)
+    {
+        status = axiom_node_add_child(claims_node, env, claims_content);
+        if (status == AXIS2_FAILURE)
+        {
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Claims element 
adding child failed.");
+            return NULL;
+        }
+    }
 
     if (dialect_uri)
     {
-        /* Set Dialect Attribute */
-        /* Dialect NS - NULL */
-        trust_util_create_attribute(env, util_claims_node, version, 
TRUST_CLAIMS_DIALECT,
-                                    dialect_uri, NULL);
-    }
+        dialect_attr = axiom_attribute_create(env, TRUST_CLAIMS_DIALECT, 
dialect_uri, wst_ns);
+        if (dialect_attr)
+        {
+            status = axiom_element_add_attribute(claims_ele, env, 
dialect_attr, claims_node);
+            if (status == AXIS2_FAILURE)
+            {
+                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                                "[trust] Claims element adding attribute 
failed.");
+                return NULL;
+            }
+        }
+        else
+        {
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Dialect attribute 
creation failed.");
+            return NULL;
+        }
 
-    if (claims_val)
+    }
+    else
     {
-        trust_util_set_node_text(env, util_claims_node, claims_val);
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Dialect uri null.");
+        return NULL;
     }
 
-    return util_claims_node;
-
+    return claims_node;
 }
 
 AXIS2_EXPORT axiom_node_t *AXIS2_CALL
@@ -304,16 +338,19 @@
 {
     axis2_char_t *wst_ns_uri = NULL;
     axiom_node_t *requested_token_node = NULL;
-    axiom_element_t *requested_token_ele = NULL;    
+    axiom_element_t *requested_token_ele = NULL;
     axiom_namespace_t *wst_ns = NULL;
 
     wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
     wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
-    
-    requested_token_ele = axiom_element_create(env, parent_node, 
TRUST_REQUESTED_SECURITY_TOKEN, wst_ns, &requested_token_node);
-    if(!requested_token_ele)
+
+    requested_token_ele =
+        axiom_element_create(env, parent_node, TRUST_REQUESTED_SECURITY_TOKEN, 
wst_ns,
+                             &requested_token_node);
+    if (!requested_token_ele)
     {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] 
RequestedSecurityToken Element creation failed!");
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                        "[trust] RequestedSecurityToken Element creation 
failed!");
         return NULL;
     }
 
@@ -333,11 +370,14 @@
 
     wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
     wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
-    
-    requested_prooft_ele = axiom_element_create(env, parent_node, 
TRUST_REQUESTED_PROOF_TOKEN, wst_ns, &requested_prooft_node);
-    if(!requested_prooft_ele)
+
+    requested_prooft_ele =
+        axiom_element_create(env, parent_node, TRUST_REQUESTED_PROOF_TOKEN, 
wst_ns,
+                             &requested_prooft_node);
+    if (!requested_prooft_ele)
     {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] RequestedProofToken 
Element creation failed!");
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                        "[trust] RequestedProofToken Element creation 
failed!");
         return NULL;
     }
 
@@ -357,9 +397,9 @@
 
     wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
     wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
-    
+
     entropy_ele = axiom_element_create(env, parent_node, TRUST_ENTROPY, 
wst_ns, &entropy_node);
-    if(!entropy_ele)
+    if (!entropy_ele)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Entropy Element 
creation failed!");
         return NULL;
@@ -381,9 +421,10 @@
 
     wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
     wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
-    
-    computed_key_ele = axiom_element_create(env, parent_node, 
TRUST_COMPUTED_KEY, wst_ns, &computed_key_node);
-    if(!computed_key_ele)
+
+    computed_key_ele =
+        axiom_element_create(env, parent_node, TRUST_COMPUTED_KEY, wst_ns, 
&computed_key_node);
+    if (!computed_key_ele)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] ComputedKey Element 
creation failed!");
         return NULL;
@@ -410,9 +451,10 @@
 
     wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
     wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
-    
-    bin_sec_ele = axiom_element_create(env, parent_node, TRUST_BINARY_SECRET, 
wst_ns, &bin_sec_node);
-    if(!bin_sec_ele)
+
+    bin_sec_ele =
+        axiom_element_create(env, parent_node, TRUST_BINARY_SECRET, wst_ns, 
&bin_sec_node);
+    if (!bin_sec_ele)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] BinarySecret Element 
creation failed!");
         return NULL;
@@ -422,10 +464,11 @@
     {
         /* Setting up the encoeded secret */
         status = axiom_element_set_text(bin_sec_ele, env, enc_secret, 
bin_sec_node);
-        if(status == AXIS2_FAILURE)
+        if (status == AXIS2_FAILURE)
         {
-            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] BinarySecret 
Element's setting text failed.");
-            return NULL;        
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                            "[trust] BinarySecret Element's setting text 
failed.");
+            return NULL;
         }
     }
 
@@ -434,20 +477,22 @@
         /* Setting up BS-Type attribute */
         type_str = axutil_stracat(env, wst_ns_uri, bin_sec_type);
         bin_sec_type_attr = axiom_attribute_create(env, ATTR_TYPE, type_str, 
NULL);
-        if(!bin_sec_type_attr)
+        if (!bin_sec_type_attr)
         {
-            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] BinarySecret 
Element's Type attribute creation failed.");
-            return NULL; 
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                            "[trust] BinarySecret Element's Type attribute 
creation failed.");
+            return NULL;
         }
-        
+
         status = axiom_element_add_attribute(bin_sec_ele, env, 
bin_sec_type_attr, bin_sec_node);
-        if(status == AXIS2_FAILURE)
+        if (status == AXIS2_FAILURE)
         {
-            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] BinarySecret 
Element's attribute adding failed.");
-            return NULL;        
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                            "[trust] BinarySecret Element's attribute adding 
failed.");
+            return NULL;
         }
     }
-    
+
     return bin_sec_node;
 }
 
@@ -464,29 +509,33 @@
     axiom_namespace_t *wst_ns = NULL;
     axis2_char_t *algo = NULL;
     axis2_status_t status = AXIS2_SUCCESS;
-    
+
     wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
     wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
-    
-    if(algo_id)
+
+    if (algo_id)
     {
-        comp_key_algo_ele = axiom_element_create(env, parent_node, 
TRUST_COMPUTED_KEY_ALGO, wst_ns, &comp_key_algo_node);
-        if(!comp_key_algo_ele)
+        comp_key_algo_ele =
+            axiom_element_create(env, parent_node, TRUST_COMPUTED_KEY_ALGO, 
wst_ns,
+                                 &comp_key_algo_node);
+        if (!comp_key_algo_ele)
         {
-            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] 
ComputedKeyAlgorithm element creation failed.");
-            return NULL;   
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                            "[trust] ComputedKeyAlgorithm element creation 
failed.");
+            return NULL;
         }
-        
+
         algo = axutil_strcat(env, wst_ns_uri, algo_id);
         status = axiom_element_set_text(comp_key_algo_ele, env, algo, 
comp_key_algo_node);
-        if(status == AXIS2_FAILURE)
+        if (status == AXIS2_FAILURE)
         {
-            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] 
ComputedKeyAlgorithm Element's setting text failed.");
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                            "[trust] ComputedKeyAlgorithm Element's setting 
text failed.");
             return NULL;
         }
-        
+
     }
-    
+
     return comp_key_algo_node;
 }
 
@@ -503,25 +552,26 @@
     axiom_element_t *key_size_ele = NULL;
     axiom_namespace_t *wst_ns = NULL;
     axis2_status_t status = AXIS2_SUCCESS;
-    
+
     wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
     wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
 
     key_size_ele = axiom_element_create(env, parent_node, TRUST_KEY_SIZE, 
wst_ns, &key_size_node);
-    if(!key_size_ele)
+    if (!key_size_ele)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] KeySize element 
creation failed.");
-        return NULL; 
+        return NULL;
     }
-    
-    if (size)
+
+    if (key_size)
     {
         status = axiom_element_set_text(key_size_ele, env, key_size, 
key_size_node);
-        if(status == AXIS2_FAILURE)
+        if (status == AXIS2_FAILURE)
         {
-            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] KeySize Element's 
setting text failed.");
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                            "[trust] KeySize Element's setting text failed.");
             return NULL;
-        }        
+        }
     }
 
     return key_size_node;
@@ -542,11 +592,11 @@
     axis2_char_t *type = NULL;
     axis2_status_t status = AXIS2_SUCCESS;
 
-    wst_ns_uri = trust_util_get_wst_ns(env, version);
+    wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
     wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
-    
+
     key_type_ele = axiom_element_create(env, parent_node, TRUST_KEY_TYPE, 
wst_ns, &key_type_node);
-    if(!key_type_ele)
+    if (!key_type_ele)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] KeyType element 
creation failed.");
         return NULL;
@@ -560,11 +610,12 @@
         {
             type = axutil_stracat(env, wst_ns_uri, key_type);
             status = axiom_element_set_text(key_type_ele, env, type, 
key_type_node);
-            if(status == AXIS2_FAILURE)
+            if (status == AXIS2_FAILURE)
             {
-                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] KeyType 
Element's setting text failed.");
+                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                                "[trust] KeyType Element's setting text 
failed.");
                 return NULL;
-            }  
+            }
         }
     }
 
@@ -595,8 +646,9 @@
     wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
     wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WSU);
     wsu_ns = axiom_namespace_create(env, TRUST_WSU_XMLNS, TRUST_WSU);
-    
-    life_time_ele = axiom_element_create(env, parent_node, TRUST_LIFE_TIME, 
wst_ns, &life_time_node);
+
+    life_time_ele =
+        axiom_element_create(env, parent_node, TRUST_LIFE_TIME, wst_ns, 
&life_time_node);
 
     if (life_time_ele)
     {
@@ -608,12 +660,13 @@
             dt = axutil_date_time_create_with_offset(env, 0);
             created_val_str = axutil_date_time_serialize_date_time(dt, env);
             status = axiom_element_set_text(created_ele, env, created_val_str, 
created_node);
-            if(status == AXIS2_FAILURE)
+            if (status == AXIS2_FAILURE)
             {
-                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Created 
Element's setting text failed.");
+                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                                "[trust] Created Element's setting text 
failed.");
                 return NULL;
             }
-            
+
             AXIS2_FREE(env->allocator, created_val_str);
             axutil_date_time_free(dt, env);
             created_val_str = NULL;
@@ -638,12 +691,13 @@
             dt = axutil_date_time_create_with_offset(env, ttl);
             expires_val_str = axutil_date_time_serialize_date_time(dt, env);
             axiom_element_set_text(expires_ele, env, expires_val_str, 
expires_node);
-            if(status == AXIS2_FAILURE)
+            if (status == AXIS2_FAILURE)
             {
-                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Expires 
Element's setting text failed.");
+                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                                "[trust] Expires Element's setting text 
failed.");
                 return NULL;
             }
-            
+
             AXIS2_FREE(env->allocator, expires_val_str);
             axutil_date_time_free(dt, env);
             expires_val_str = NULL;
@@ -676,39 +730,44 @@
     axiom_node_t *attached_ref_node = NULL;
     axiom_element_t *attached_ref_ele = NULL;
     axiom_namespace_t *wst_ns = NULL;
-    
+
     wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
     wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
-    
-    attached_ref_ele = axiom_element_create(env, parent_node, 
TRUST_REQUESTED_ATTACHED_REFERENCE, wst_ns, &attached_ref_node);
-    if(!attached_ref_ele)
+
+    attached_ref_ele =
+        axiom_element_create(env, parent_node, 
TRUST_REQUESTED_ATTACHED_REFERENCE, wst_ns,
+                             &attached_ref_node);
+    if (!attached_ref_ele)
     {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] 
RequestedAttachedReference element creation failed.");
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                        "[trust] RequestedAttachedReference element creation 
failed.");
         return NULL;
     }
 
     return attached_ref_node;
 }
 
-
 AXIS2_EXPORT axiom_node_t *AXIS2_CALL
 trust_util_create_req_unattached_reference_element(
     const axutil_env_t * env,
-    const int version,
+    int wst_version,
     axiom_node_t * parent_node)
 {
     axis2_char_t *wst_ns_uri = NULL;
     axiom_node_t *unattached_ref_node = NULL;
     axiom_element_t *unattached_ref_ele = NULL;
     axiom_namespace_t *wst_ns = NULL;
-    
+
     wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
     wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
-    
-    unattached_ref_ele = axiom_element_create(env, parent_node, 
TRUST_REQUESTED_UNATTACHED_REFERENCE, wst_ns, &unattached_ref_node);
-    if(!unattached_ref_ele)
+
+    unattached_ref_ele =
+        axiom_element_create(env, parent_node, 
TRUST_REQUESTED_UNATTACHED_REFERENCE, wst_ns,
+                             &unattached_ref_node);
+    if (!unattached_ref_ele)
     {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] 
RequestedUnAttachedReference element creation failed.");
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                        "[trust] RequestedUnAttachedReference element creation 
failed.");
         return NULL;
     }
 
@@ -726,20 +785,22 @@
     axiom_element_t *encrypted_ele = NULL;
     axiom_namespace_t *xenc_ns = NULL;
     axis2_status_t status = AXIS2_SUCCESS;
-    
+
     xenc_ns = axiom_namespace_create(env, TRUST_XENC_XMLNS, TRUST_XENC);
-    encrypted_ele = axiom_element_create(env, parent_node, 
TRUST_ENCRYPTED_DATA, xenc_ns, &encrypted_node);
-    if(!encrypted_ele)
+    encrypted_ele =
+        axiom_element_create(env, parent_node, TRUST_ENCRYPTED_DATA, xenc_ns, 
&encrypted_node);
+    if (!encrypted_ele)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] EncryptedData element 
creation failed.");
         return NULL;
     }
-    if(enc_data)
+    if (enc_data)
     {
         status = axiom_element_set_text(encrypted_ele, env, enc_data, 
encrypted_node);
-        if(status == AXIS2_FAILURE)
+        if (status == AXIS2_FAILURE)
         {
-            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Encrypted Data 
Element's setting text failed.");
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                            "[trust] Encrypted Data Element's setting text 
failed.");
             return NULL;
         }
     }
@@ -752,7 +813,7 @@
     const axutil_env_t * env,
     int wst_version,
     axiom_node_t * parent_node,
-    axiom_node_t * token_renew_pending_node)
+    axiom_node_t * renew_pending_node)
 {
     axiom_node_t *renew_target_node = NULL;
     axiom_element_t *renew_target_ele = NULL;
@@ -762,20 +823,22 @@
 
     wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
     wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
-    
-    renew_target_ele = axiom_element_create(env, parent_node, 
TRUST_RENEW_TARGET, wst_ns, &renew_target_node);
-    if(!renew_target_ele)
+
+    renew_target_ele =
+        axiom_element_create(env, parent_node, TRUST_RENEW_TARGET, wst_ns, 
&renew_target_node);
+    if (!renew_target_ele)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] RenewTarget element 
creation failed.");
         return NULL;
     }
-    if (token_renew_pending_node)
+    if (renew_pending_node)
     {
         /* Set up token as it is  for the request */
         status = axiom_node_add_child(renew_target_node, env, 
renew_pending_node);
-        if(status == AXIS2_FAILURE)
+        if (status == AXIS2_FAILURE)
         {
-            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] token renew 
pending node adding as a child failed.");
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                            "[trust] token renew pending node adding as a 
child failed.");
         }
     }
 
@@ -796,12 +859,14 @@
     axiom_node_t *allow_postdating_node = NULL;
     axiom_element_t *allow_postdating_ele = NULL;
     axiom_namespace_t *wst_ns = NULL;
-    
+
     wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
     wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
-    
-    allow_postdating_ele = axiom_element_create(env, parent_node, 
TRUST_REQUESTED_UNATTACHED_REFERENCE, wst_ns, &allow_postdating_node);
-    if(!allow_postdating_ele)
+
+    allow_postdating_ele =
+        axiom_element_create(env, parent_node, 
TRUST_REQUESTED_UNATTACHED_REFERENCE, wst_ns,
+                             &allow_postdating_node);
+    if (!allow_postdating_ele)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] AllowPostdating 
element creation failed.");
         return NULL;
@@ -825,37 +890,152 @@
     axiom_attribute_t *allow_attr = NULL;
     axiom_attribute_t *ok_attr = NULL;
     axis2_status_t status = AXIS2_SUCCESS;
+    axis2_char_t *allow = NULL;
+    axis2_char_t *ok = NULL;
 
     wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
     wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
-    
+
     renewing_ele = axiom_element_create(env, parent_node, TRUST_RENEWING, 
wst_ns, &renewing_node);
 
-    allow_attr = axiom_attribute_create(env, TRUST_RENEW_ALLOW_ATTR, 
allow_attr, wst_ns);
-    ok_attr = axiom_attribute_create(env, TRUST_RENEW_OK_ATTR, ok_flag, 
wst_ns);
-    
+    sprintf(allow, "%d", allow_flag);
+    sprintf(ok, "%d", ok_flag);
+
+    allow_attr = axiom_attribute_create(env, TRUST_RENEW_ALLOW_ATTR, allow, 
wst_ns);
+    ok_attr = axiom_attribute_create(env, TRUST_RENEW_OK_ATTR, ok, wst_ns);
+
     status = axiom_element_add_attribute(renewing_ele, env, allow_attr, 
renewing_node);
-    if(status == AXIS2_FAILURE)
+    if (status == AXIS2_FAILURE)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Allow attribute 
setting failed.");
     }
     status = axiom_element_add_attribute(renewing_ele, env, ok_attr, 
renewing_node);
-    if(status == AXIS2_FAILURE)
+    if (status == AXIS2_FAILURE)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Ok attribute setting 
failed.");
     }
-    
+
     return renewing_node;
 }
 
+AXIS2_EXPORT axiom_node_t *AXIS2_CALL
+trust_util_create_cancel_target_element(
+    const axutil_env_t * env,
+    int wst_version,
+    axiom_node_t * parent_node,
+    axiom_node_t * token_cancel_pending_node)
+{
+    axiom_node_t *cancel_target_node = NULL;
+    axiom_element_t *cancel_target_ele = NULL;
+    axis2_char_t *wst_ns_uri = NULL;
+    axiom_namespace_t *wst_ns = NULL;
+
+    wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
+    wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
+
+    cancel_target_ele =
+        axiom_element_create(env, parent_node, TRUST_CANCEL_TARGET, wst_ns, 
&cancel_target_node);
+    if (!cancel_target_ele)
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] CancelTarget element 
creation failed.");
+        return NULL;
+    }
+
+    if (token_cancel_pending_node)
+    {
+        /* Set up token as it is  for the request */
+        axiom_node_add_child(cancel_target_node, env, 
token_cancel_pending_node);
+    }
+
+    /** Otherwise user has to create a STR as a child ot CancelTarget element 
and
+    *   add the token reference to it.
+    **/
+    return cancel_target_node;
+
+}
+
+AXIS2_EXPORT axiom_node_t *AXIS2_CALL
+trust_util_create_validation_response_element(
+    const axutil_env_t * env,
+    axiom_node_t * parent_node,
+    int wst_version,
+    axis2_char_t * code,
+    axis2_char_t * reason)
+{
+    axis2_char_t *wst_ns_uri = NULL;
+    axiom_node_t *status_node = NULL;
+    axiom_node_t *code_node = NULL;
+    axiom_node_t *reason_node = NULL;
+    axiom_element_t *status_ele = NULL;
+    axiom_element_t *code_ele = NULL;
+    axiom_element_t *reason_ele = NULL;
+    axiom_namespace_t *wst_ns = NULL;
+    axis2_status_t status = AXIS2_SUCCESS;
+
+    wst_ns_uri = trust_util_get_wst_ns(env, wst_version);
+    wst_ns = axiom_namespace_create(env, wst_ns_uri, TRUST_WST);
+
+    status_ele =
+        axiom_element_create(env, parent_node, TRUST_VALIDATION_STATUS, 
wst_ns, &status_node);
+    if (status_ele)
+    {
+        if (code)
+        {
+            code_ele =
+                axiom_element_create(env, status_node, TRUST_VALIDATION_CODE, 
wst_ns, &code_node);
+            if (!code_ele)
+            {
+                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Code element 
creation failed.");
+                return NULL;
+            }
+            status = axiom_element_set_text(code_ele, env, code, code_node);
+            if (status == AXIS2_FAILURE)
+            {
+                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                                "[trust] Code element text setting failed.");
+                return NULL;
+            }
+        }
+        else
+        {
+            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Code string 
null.");
+            return NULL;
+        }
+
+        if (reason)
+        {
+            reason_ele =
+                axiom_element_create(env, status_node, 
TRUST_VALIDATION_REASON, wst_ns,
+                                     &reason_node);
+            if (!reason_ele)
+            {
+                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Reason 
element creation failed.");
+                return NULL;
+            }
+            status = axiom_element_set_text(reason_ele, env, reason, 
reason_node);
+            if (status == AXIS2_FAILURE)
+            {
+                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                                "[trust] Reason element text setting failed.");
+                return status_node;
+            }
+        }
+    }
+    else
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[trust] Status element 
creation failed.");
+        return NULL;
+    }
+
+    return status_node;
+}
+
 axis2_char_t *AXIS2_CALL
 trust_util_get_wst_ns(
     const axutil_env_t * env,
-    const int version)
+    int wst_version)
 {
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-
-    switch (version)
+    switch (wst_version)
     {
     case TRUST_VERSION_05_02:
         return axutil_strdup(env, TRUST_WST_XMLNS_05_02);
@@ -864,4 +1044,4 @@
     default:
         return NULL;
     }
-}
\ No newline at end of file
+}


Reply via email to