Author: supun
Date: Mon Oct 15 23:33:07 2007
New Revision: 585055

URL: http://svn.apache.org/viewvc?rev=585055&view=rev
Log: (empty)

Modified:
    webservices/rampart/scratch/c/saml/include/SAML.h
    webservices/rampart/scratch/c/saml/src/assertion.c
    webservices/rampart/scratch/c/saml/src/attr_stmt.c
    webservices/rampart/scratch/c/saml/src/auth_des_stmt.c
    webservices/rampart/scratch/c/saml/src/condition.c
    webservices/rampart/scratch/c/saml/src/id_type.c
    webservices/rampart/scratch/c/saml/test/test_main.c

Modified: webservices/rampart/scratch/c/saml/include/SAML.h
URL: 
http://svn.apache.org/viewvc/webservices/rampart/scratch/c/saml/include/SAML.h?rev=585055&r1=585054&r2=585055&view=diff
==============================================================================
--- webservices/rampart/scratch/c/saml/include/SAML.h (original)
+++ webservices/rampart/scratch/c/saml/include/SAML.h Mon Oct 15 23:33:07 2007
@@ -91,8 +91,14 @@
 #define SAML_ATTRIBUTE                                         "Attribute"
 #define SAML_ATTRIBUTE_DESIGNATOR                      "AttributeDesignator"
 
+#define SAML_MAJOR_VERSION                                     "1"
 typedef struct saml_assertion_s saml_assertion_t;
 
+
+#ifndef SAML_DECLARE
+#define SAML_DECLARE(type)     AXIS2_EXTERN type AXIS2_CALL
+#endif
+
 typedef enum deciosion_type
 {
     PERMIT = 0,
@@ -352,15 +358,32 @@
 AXIS2_EXTERN int AXIS2_CALL saml_assertion_init(saml_assertion_t *assertion, 
axutil_env_t *env);
 AXIS2_EXTERN int saml_assertion_build(saml_assertion_t *assertion, 
axiom_node_t *node, axutil_env_t *env);
 AXIS2_EXTERN axiom_node_t * AXIS2_CALL saml_assertion_to_om(saml_assertion_t 
*assertion, axiom_node_t *node, axutil_env_t *env);
+AXIS2_EXTERN axutil_array_list_t * AXIS2_CALL 
saml_assetion_get_conditions(saml_assertion_t *a, axutil_env_t *env);
+AXIS2_EXTERN axutil_array_list_t * AXIS2_CALL 
saml_assertion_get_statements(saml_assertion_t *a, axutil_env_t *env);
+AXIS2_EXTERN int AXIS2_CALL saml_assertion_set_conditions(saml_assertion_t *a, 
axutil_env_t *env, axutil_array_list_t *list);
+AXIS2_EXTERN int AXIS2_CALL saml_assertion_add_condition(saml_assertion_t *a, 
axutil_env_t *env, saml_condition_t *cond);
+AXIS2_EXTERN int AXIS2_CALL saml_assertion_remove_condition(saml_assertion_t 
*a, axutil_env_t *env, int index);
+AXIS2_EXTERN int AXIS2_CALL saml_assertion_set_statements(saml_assertion_t *a, 
axutil_env_t *env, axutil_array_list_t *list);
+AXIS2_EXTERN int AXIS2_CALL saml_assertion_add_statement(saml_assertion_t *a, 
axutil_env_t *env, saml_stmt_t *stmt);
+AXIS2_EXTERN int AXIS2_CALL saml_assertion_remove_statement(saml_assertion_t 
*a, axutil_env_t *env, int index);
+AXIS2_EXTERN int AXIS2_CALL saml_assertion_set_minor_version(saml_assertion_t 
*a, axutil_env_t *env, int version);
+AXIS2_EXTERN int AXIS2_CALL saml_assertion_set_issuer(saml_assertion_t *a, 
axutil_env_t *env, axis2_char_t *issuer);
+AXIS2_EXTERN int AXIS2_CALL saml_assertion_set_issue_instant(saml_assertion_t 
*a, axutil_env_t *env, axutil_date_time_t *instant);
+AXIS2_EXTERN int AXIS2_CALL saml_assertion_set_not_before(saml_assertion_t *a, 
axutil_env_t *env, axutil_date_time_t *time);
+AXIS2_EXTERN int AXIS2_CALL 
saml_assertion_set_not_on_or_after(saml_assertion_t *a, axutil_env_t *env, 
axutil_date_time_t *time);
+AXIS2_EXTERN axis2_char_t * AXIS2_CALL 
saml_assertion_get_issuer(saml_assertion_t *a, axutil_env_t *env);
+AXIS2_EXTERN axutil_date_time_t * AXIS2_CALL 
saml_assertion_get_issue_instant(saml_assertion_t *a, axutil_env_t *env);
+AXIS2_EXTERN axutil_date_time_t * AXIS2_CALL 
saml_assertion_get_not_before(saml_assertion_t *a, axutil_env_t *env);
+AXIS2_EXTERN axutil_date_time_t * AXIS2_CALL 
saml_assertion_get_not_on_or_after(saml_assertion_t *a, axutil_env_t *env);
 
 AXIS2_EXTERN saml_stmt_t * AXIS2_CALL saml_stmt_create(axutil_env_t *env);
 AXIS2_EXTERN void AXIS2_CALL saml_stmt_free(saml_stmt_t *stmt, axutil_env_t 
*env);
 AXIS2_EXTERN int AXIS2_CALL saml_stmt_build(saml_stmt_t *stmt, axiom_node_t 
*node, axutil_env_t *env);
 AXIS2_EXTERN axiom_node_t * AXIS2_CALL saml_stmt_to_om(saml_stmt_t *stmt, 
axiom_node_t *parent, axutil_env_t *env);
 
-AXIS2_EXTERN int AXIS2_CALL saml_id_init(saml_id_t *id, axutil_env_t *env);
-AXIS2_EXTERN int AXIS2_CALL saml_id_generate_random_bytes(saml_id_t *id, 
axutil_env_t *env);
-AXIS2_EXTERN void AXIS2_CALL saml_id_uninit(saml_id_t *id, axutil_env_t *env);
+/*AXIS2_EXTERN int AXIS2_CALL saml_id_init(saml_id_t *id, axutil_env_t *env);*/
+AXIS2_EXTERN axis2_char_t * AXIS2_CALL 
saml_id_generate_random_bytes(axutil_env_t *env);
+/*AXIS2_EXTERN void AXIS2_CALL saml_id_uninit(saml_id_t *id, axutil_env_t 
*env);*/
 
 AXIS2_EXTERN saml_auth_binding_t * AXIS2_CALL 
saml_auth_binding_create(axutil_env_t *env);
 AXIS2_EXTERN void AXIS2_CALL saml_auth_binding_free(saml_auth_binding_t 
*auth_bind, axutil_env_t *env);
@@ -402,10 +425,22 @@
 AXIS2_EXTERN int AXIS2_CALL saml_condition_build(saml_condition_t *cond, 
axiom_node_t *node, axutil_env_t *env);
 AXIS2_EXTERN axiom_node_t * AXIS2_CALL saml_condition_to_om(saml_condition_t 
*cond, axiom_node_t *parent, axutil_env_t * env);
 
+AXIS2_EXTERN int saml_condition_set_condition(saml_condition_t *cond, 
axutil_env_t *env, void * condition, saml_cond_type_t type);
+AXIS2_EXTERN int saml_condition_set_type(saml_condition_t *cond, axutil_env_t 
*env, saml_cond_type_t type);
+AXIS2_EXTERN void * AXIS2_CALL saml_condition_get_condition(saml_condition_t 
*cond, axutil_env_t *env);
+AXIS2_EXTERN saml_cond_type_t AXIS2_CALL 
saml_condition_get_type(saml_condition_t *cond, axutil_env_t *env);
+
 AXIS2_EXTERN int AXIS2_CALL 
saml_audi_restriction_cond_build(saml_audi_restriction_cond_t *arc, 
axiom_node_t *node, axutil_env_t *env);
 AXIS2_EXTERN axiom_node_t *AXIS2_CALL 
saml_audi_restriction_cond_to_om(saml_audi_restriction_cond_t *cond, 
axiom_node_t *parent, axutil_env_t * env);
 AXIS2_EXTERN void AXIS2_CALL 
saml_audi_restriction_cond_free(saml_audi_restriction_cond_t *arc, axutil_env_t 
* env);
 AXIS2_EXTERN saml_audi_restriction_cond_t * AXIS2_CALL 
saml_audi_restriction_cond_create(axutil_env_t *env);
+
+AXIS2_EXTERN axutil_array_list_t * AXIS2_CALL 
saml_audi_restriction_cond_get_audiences(saml_audi_restriction_cond_t *cond, 
axutil_env_t * env);
+AXIS2_EXTERN int AXIS2_CALL 
saml_audi_restriction_cond_set_audiences(saml_audi_restriction_cond_t *cond, 
axutil_env_t * env, axutil_array_list_t *list);
+AXIS2_EXTERN int AXIS2_CALL 
saml_audi_restriction_cond_remove_audiences(saml_audi_restriction_cond_t *cond, 
axutil_env_t * env, int index);
+AXIS2_EXTERN int AXIS2_CALL 
saml_audi_restriction_cond_add_audience(saml_audi_restriction_cond_t *cond, 
axutil_env_t * env, axis2_char_t *audience);
+
+
 
 AXIS2_EXTERN saml_action_t * AXIS2_CALL saml_action_create(axutil_env_t *env);
 AXIS2_EXTERN void AXIS2_CALL saml_action_free(saml_action_t *action, 
axutil_env_t *env);

Modified: webservices/rampart/scratch/c/saml/src/assertion.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/scratch/c/saml/src/assertion.c?rev=585055&r1=585054&r2=585055&view=diff
==============================================================================
--- webservices/rampart/scratch/c/saml/src/assertion.c (original)
+++ webservices/rampart/scratch/c/saml/src/assertion.c Mon Oct 15 23:33:07 2007
@@ -26,7 +26,7 @@
        assertion->not_on_or_after = NULL;
        assertion->assertion_id = NULL;
        assertion->conditions = NULL;
-       assertion->statements = axutil_array_list_create(env, 
SAML_ARRAY_LIST_DEF * 2);
+       assertion->statements = axutil_array_list_create(env, 
(SAML_ARRAY_LIST_DEF) * 2);
        assertion->issuer = NULL;
        assertion->issue_instant = NULL;
        assertion->signature = NULL;
@@ -133,6 +133,7 @@
                return AXIS2_FAILURE;
        }
 
+       
        if ((ci = axiom_element_get_child_elements(element, env, node)) != NULL)
        {
                axiom_element_t *ce = NULL;
@@ -179,11 +180,11 @@
                        }
                        else if (axutil_strcmp(axiom_element_get_localname(ce, 
env), SAML_ADVICE))
                        {       
-                                                               
+                               
                        }
                        else if (axutil_strcmp(axiom_element_get_localname(ce, 
env), SAML_SIGNATURE))
                        {       
-                               assertion->signature = cn;                      
                                
+                                                                               
                        }
                        else 
                        {
@@ -224,13 +225,13 @@
        e = axiom_element_create(env, parent, SAML_ASSERTION, ns, &n);
        if (e)
        {
-               if (assertion->major_version && assertion->minor_version && 
assertion->assertion_id && assertion->issuer && assertion->issue_instant)
+               if (assertion->minor_version && assertion->issuer && 
assertion->issue_instant)
                {
-                       attr = axiom_attribute_create(env, SAML_MAJORVERSION, 
assertion->major_version, NULL);
+                       attr = axiom_attribute_create(env, SAML_MAJORVERSION, 
SAML_MAJOR_VERSION, NULL);
                        axiom_element_add_attribute(e, env, attr, n);
                        attr = axiom_attribute_create(env, SAML_MINORVERSION, 
assertion->minor_version, NULL);
                        axiom_element_add_attribute(e, env, attr, n);
-                       attr = axiom_attribute_create(env, SAML_ASSERTION_ID, 
assertion->assertion_id, NULL);
+                       attr = axiom_attribute_create(env, SAML_ASSERTION_ID, 
saml_id_generate_random_bytes(env), NULL);
                        axiom_element_add_attribute(e, env, attr, n);
                        attr = axiom_attribute_create(env, SAML_ISSUER, 
assertion->issuer, NULL);
                        axiom_element_add_attribute(e, env, attr, n);
@@ -239,7 +240,6 @@
                }               
                else
                {
-                       axiom_element_free(e, env);
                        return NULL;
                }
                if (assertion->conditions)
@@ -282,7 +282,7 @@
                }
                if (assertion->signature)
                {
-                                               
+
                }               
        }       
        return n;
@@ -406,10 +406,10 @@
 
 AXIS2_EXTERN int AXIS2_CALL saml_assertion_set_minor_version(saml_assertion_t 
*a, axutil_env_t *env, int version)
 {
-       if (a->minor_version)
+       if (!a->minor_version)
        {
-               AXIS2_FREE(env->allocator, a->minor_version);
-       }
+               a->minor_version = AXIS2_MALLOC(env->allocator, 8);
+       }       
        sprintf(a->minor_version, "%d", version);
        return AXIS2_SUCCESS;
 }

Modified: webservices/rampart/scratch/c/saml/src/attr_stmt.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/scratch/c/saml/src/attr_stmt.c?rev=585055&r1=585054&r2=585055&view=diff
==============================================================================
--- webservices/rampart/scratch/c/saml/src/attr_stmt.c (original)
+++ webservices/rampart/scratch/c/saml/src/attr_stmt.c Mon Oct 15 23:33:07 2007
@@ -97,6 +97,35 @@
        return n;
 }
 
+AXIS2_EXTERN axis2_char_t * AXIS2_CALL 
saml_attr_desig_get_name(saml_attr_desig_t *attr_desig, axutil_env_t *env)
+{
+       return attr_desig->attr_name;
+}
+
+AXIS2_EXTERN axis2_char_t * AXIS2_CALL 
saml_attr_desig_get_namespace(saml_attr_desig_t *attr_desig, axutil_env_t *env)
+{
+       return attr_desig->attr_nmsp;
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_attr_desig_set_name(saml_attr_desig_t 
*attr_desig, axutil_env_t *env, axis2_char_t *name)
+{
+       if (attr_desig->attr_name)
+       {
+               AXIS2_FREE(env->allocator, name);
+       }
+       attr_desig->attr_name = name;
+       return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_attr_desig_set_namespace(saml_attr_desig_t 
*attr_desig, axutil_env_t *env, axis2_char_t *name_space)
+{
+       if (attr_desig->attr_nmsp)
+       {
+               AXIS2_FREE(env->allocator, name_space);
+       }
+       attr_desig->attr_nmsp = name_space;
+       return AXIS2_SUCCESS;
+}
 
 AXIS2_EXTERN int AXIS2_CALL saml_attr_init(saml_attr_t *attr, axutil_env_t 
*env)
 {
@@ -219,6 +248,85 @@
        return n;                                                               
                                                                                
                                                                                
                                
 }
 
+AXIS2_EXTERN axis2_char_t * AXIS2_CALL saml_attr_get_name(saml_attr_t 
*attr_stmt, axutil_env_t *env)
+{
+       return attr_stmt->attr_name;
+}
+
+AXIS2_EXTERN axis2_char_t * AXIS2_CALL saml_attr_get_namespace(saml_attr_t 
*attr_stmt, axutil_env_t *env)
+{
+       return attr_stmt->attr_nmsp;
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_attr_set_name(saml_attr_t *attr_stmt, 
axutil_env_t *env, axis2_char_t *name)
+{
+       if (attr_stmt->attr_name)
+       {
+               AXIS2_FREE(env->allocator, name);
+       }
+       attr_stmt->attr_name = name;
+       return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_attr_set_namespace(saml_attr_t *attr_stmt, 
axutil_env_t *env, axis2_char_t *name_space)
+{
+       if (attr_stmt->attr_nmsp)
+       {
+               AXIS2_FREE(env->allocator, name_space);
+       }
+       attr_stmt->attr_nmsp = name_space;
+       return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_attr_stmt_set_values(saml_attr_t *attr, 
axutil_env_t *env, axutil_array_list_t *list)
+{
+       int i = 0, size = 0;
+       axis2_char_t *val = NULL;
+       if (attr->attr_value)
+       {
+               size = axutil_array_list_size(attr->attr_value, env);
+               for (i = 0; i <size; i++)
+               {
+                       val = axutil_array_list_get(attr->attr_value, env, i);
+                       if (val)
+                       {
+                               AXIS2_FREE(env->allocator, val);
+                       }
+               }
+       }
+       attr->attr_value = list;
+       return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_attr_remove_value(saml_attr_t *attr, 
axutil_env_t *env, int index)
+{
+       axis2_char_t *val = NULL;
+       if (attr->attr_value && axutil_array_list_size(attr->attr_value, env) > 
index)
+       {
+               val = axutil_array_list_remove(attr->attr_value, env, index);   
                
+               if (attr)
+               {
+                       AXIS2_FREE(env->allocator, val);
+               }
+               return AXIS2_SUCCESS;           
+       }
+       else
+       {
+               return AXIS2_FAILURE;
+       }
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_attr_stmt_add_value(saml_attr_t *attr, 
axutil_env_t *env, axis2_char_t *value)
+{
+       if (!attr->attr_value)
+       {
+               attr->attr_value = axutil_array_list_create(env, 
SAML_ARRAY_LIST_DEF);
+       }
+       axutil_array_list_add(attr->attr_value, env, value);
+       return AXIS2_SUCCESS;
+}
+
+
 AXIS2_EXTERN saml_attr_stmt_t * AXIS2_CALL saml_attr_stmt_create(axutil_env_t 
*env)
 {      
        saml_attr_stmt_t *attr_stmt = AXIS2_MALLOC(env->allocator, 
sizeof(saml_attr_stmt_t));
@@ -305,4 +413,62 @@
                }
        }
        return n;
-}
\ No newline at end of file
+}
+
+AXIS2_EXTERN saml_subject_t * AXIS2_CALL 
saml_attr_stmt_get_subject(saml_attr_stmt_t *attr_stmt, axutil_env_t *env)
+{
+       return &attr_stmt->subject;
+}
+
+AXIS2_EXTERN axutil_array_list_t * AXIS2_CALL 
saml_attr_stmt_get_attributes(saml_attr_stmt_t *attr_stmt, axutil_env_t *env)
+{
+       return attr_stmt->attribute;
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_attr_stmt_set_attributes(saml_attr_stmt_t 
*attr_stmt, axutil_env_t *env, axutil_array_list_t *list)
+{
+       int i = 0, size = 0;
+       saml_attr_t *attr = NULL;
+       if (attr_stmt->attribute)
+       {
+               size = axutil_array_list_size(attr_stmt->attribute, env);
+               for (i = 0; i <size; i++)
+               {
+                       attr = axutil_array_list_get(attr_stmt->attribute, env, 
i);
+                       if (attr)
+                       {
+                               AXIS2_FREE(env->allocator, attr);
+                       }
+               }
+       }
+       attr_stmt->attribute = list;
+       return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_attr_stmt_remove_attribute(saml_attr_stmt_t 
*attr_stmt, axutil_env_t *env, int index)
+{
+       saml_attr_t *attr = NULL;
+       if (attr_stmt->attribute && 
axutil_array_list_size(attr_stmt->attribute, env) > index)
+       {
+               attr = axutil_array_list_remove(attr_stmt->attribute, env, 
index);                      
+               if (attr)
+               {
+                       AXIS2_FREE(env->allocator, attr);
+               }
+               return AXIS2_SUCCESS;           
+       }
+       else
+       {
+               return AXIS2_FAILURE;
+       }
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_attr_stmt_add_attribute(saml_attr_stmt_t 
*attr_stmt, axutil_env_t *env, saml_attr_t *attribute)
+{
+       if (!attr_stmt->attribute)
+       {
+               attr_stmt->attribute = axutil_array_list_create(env, 
SAML_ARRAY_LIST_DEF);
+       }
+       axutil_array_list_add(attr_stmt->attribute, env, attribute);
+       return AXIS2_SUCCESS;
+}

Modified: webservices/rampart/scratch/c/saml/src/auth_des_stmt.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/scratch/c/saml/src/auth_des_stmt.c?rev=585055&r1=585054&r2=585055&view=diff
==============================================================================
--- webservices/rampart/scratch/c/saml/src/auth_des_stmt.c (original)
+++ webservices/rampart/scratch/c/saml/src/auth_des_stmt.c Mon Oct 15 23:33:07 
2007
@@ -84,6 +84,36 @@
        return n;
 }
 
+AXIS2_EXTERN axis2_char_t * AXIS2_CALL saml_action_get_data(saml_action_t 
*action, axutil_env_t *env)
+{
+       return action->data;
+}
+
+AXIS2_EXTERN axis2_char_t * AXIS2_CALL saml_action_get_namespace(saml_action_t 
*action, axutil_env_t *env)
+{
+       return action->name_space;
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_action_set_data(saml_action_t *action, 
axutil_env_t *env, axis2_char_t *data)
+{
+       if (action->data)
+       {
+               AXIS2_FREE(env->allocator, action->data);
+       }
+       action->data = data;
+       return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_action_set_namespace(saml_action_t *action, 
axutil_env_t *env, axis2_char_t *name_space)
+{
+       if (action->name_space)
+       {
+               AXIS2_FREE(env->allocator, action->name_space);
+       }
+       action->name_space = name_space;
+       return AXIS2_SUCCESS;
+}
+
 AXIS2_EXTERN saml_evidence_t * AXIS2_CALL saml_evidence_create(axutil_env_t 
*env)
 {
        saml_evidence_t *evidence = (saml_evidence_t 
*)AXIS2_MALLOC(env->allocator, sizeof(saml_evidence_t));
@@ -199,6 +229,112 @@
        return n;
 }
 
+AXIS2_EXTERN axutil_array_list_t * AXIS2_CALL 
saml_evidence_get_assertions(saml_evidence_t *evidence, axutil_env_t *env)
+{
+       return evidence->assertions;
+}
+
+AXIS2_EXTERN axutil_array_list_t * AXIS2_CALL 
saml_evidence_get_assertion_ids(saml_evidence_t *evidence, axutil_env_t *env)
+{
+       return evidence->assertion_ids;
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_evidence_set_assertions(saml_evidence_t 
*evidence, axutil_env_t * env, axutil_array_list_t *list)
+{
+       int i = 0, size = 0;
+       saml_assertion_t *a = NULL;
+       if (evidence->assertions)
+       {
+               size = axutil_array_list_size(evidence->assertions, env);
+               for (i = 0; i <size; i++)
+               {
+                       a = axutil_array_list_get(evidence->assertions, env, i);
+                       if (a)
+                       {
+                               AXIS2_FREE(env->allocator, a);
+                       }
+               }
+       }
+       evidence->assertions = list;
+       return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_evidence_remove_assertion(saml_evidence_t 
*evidence, axutil_env_t * env, int index)
+{
+       saml_assertion_t *a = NULL;
+       if (evidence->assertions && 
axutil_array_list_size(evidence->assertions, env) > index)
+       {
+               a = axutil_array_list_remove(evidence->assertions, env, index); 
                
+               if (a)
+               {
+                       AXIS2_FREE(env->allocator, a);
+               }
+               return AXIS2_SUCCESS;           
+       }
+       else
+       {
+               return AXIS2_FAILURE;
+       }
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_evidence_add_assertion(saml_evidence_t 
*evidence, axutil_env_t * env, saml_assertion_t *assertion)
+{
+       if (!evidence->assertions)
+       {
+               evidence->assertions = axutil_array_list_create(env, 
SAML_ARRAY_LIST_DEF);
+       }
+       axutil_array_list_add(evidence->assertions, env, assertion);
+       return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_evidence_set_assertion_ids(saml_evidence_t 
*evidence, axutil_env_t * env, axutil_array_list_t *list)
+{
+       int i = 0, size = 0;
+       axis2_char_t *a = NULL;
+       if (evidence->assertion_ids)
+       {
+               size = axutil_array_list_size(evidence->assertion_ids, env);
+               for (i = 0; i <size; i++)
+               {
+                       a = axutil_array_list_get(evidence->assertion_ids, env, 
i);
+                       if (a)
+                       {
+                               AXIS2_FREE(env->allocator, a);
+                       }
+               }
+       }
+       evidence->assertion_ids = list;
+       return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_evidence_remove_assertion_id(saml_evidence_t 
*evidence, axutil_env_t * env, int index)
+{
+       axis2_char_t *a = NULL;
+       if (evidence->assertion_ids && 
axutil_array_list_size(evidence->assertion_ids, env) > index)
+       {
+               a = axutil_array_list_remove(evidence->assertion_ids, env, 
index);                      
+               if (a)
+               {
+                       AXIS2_FREE(env->allocator, a);
+               }
+               return AXIS2_SUCCESS;           
+       }
+       else
+       {
+               return AXIS2_FAILURE;
+       }
+}
+
+AXIS2_EXTERN int AXIS2_CALL saml_evidence_add_assertion_id(saml_evidence_t 
*evidence, axutil_env_t * env, axis2_char_t *assertion_id)
+{
+       if (!evidence->assertion_ids)
+       {
+               evidence->assertion_ids = axutil_array_list_create(env, 
SAML_ARRAY_LIST_DEF);
+       }
+       axutil_array_list_add(evidence->assertion_ids, env, assertion_id);
+       return AXIS2_SUCCESS;
+}
+
 
 AXIS2_EXTERN saml_auth_desicion_stmt_t * AXIS2_CALL 
saml_auth_desicion_stmt_create(axutil_env_t *env)
 {
@@ -213,6 +349,8 @@
        }
        return auth_des_stmt;
 }
+
+
 
 AXIS2_EXTERN void AXIS2_CALL 
saml_auth_desicion_stmt_free(saml_auth_desicion_stmt_t *auth_des_stmt, 
axutil_env_t *env)
 {

Modified: webservices/rampart/scratch/c/saml/src/condition.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/scratch/c/saml/src/condition.c?rev=585055&r1=585054&r2=585055&view=diff
==============================================================================
--- webservices/rampart/scratch/c/saml/src/condition.c (original)
+++ webservices/rampart/scratch/c/saml/src/condition.c Mon Oct 15 23:33:07 2007
@@ -90,7 +90,7 @@
        axiom_node_t *n = NULL, *cn = NULL;
        axiom_namespace_t *ns = NULL, *cns = NULL;
        ns = axiom_namespace_create(env, SAML_NMSP_URI, SAML_PREFIX);
-       e = axiom_element_create(env, parent, 
SAML_AUDIENCE_RESTRICTION_CONDITION_TYPE, ns, &n);
+       e = axiom_element_create(env, parent, 
SAML_AUDIENCE_RESTRICTION_CONDITION, ns, &n);
        if (e && cond->audiences)
        {
                size = axutil_array_list_size(cond->audiences, env);

Modified: webservices/rampart/scratch/c/saml/src/id_type.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/scratch/c/saml/src/id_type.c?rev=585055&r1=585054&r2=585055&view=diff
==============================================================================
--- webservices/rampart/scratch/c/saml/src/id_type.c (original)
+++ webservices/rampart/scratch/c/saml/src/id_type.c Mon Oct 15 23:33:07 2007
@@ -18,29 +18,9 @@
 #include <SAML.h>
 #include <axutil_uuid_gen.h>
 
-AXIS2_EXTERN int AXIS2_CALL saml_id_init(saml_id_t *id, axutil_env_t *env)
-{      
-       id->id = NULL;
-       return AXIS2_SUCCESS;
-}
-
-AXIS2_EXTERN int AXIS2_CALL saml_id_generate_random_bytes(saml_id_t *id, 
axutil_env_t *env)
+AXIS2_EXTERN axis2_char_t * AXIS2_CALL 
saml_id_generate_random_bytes(axutil_env_t *env)
 {
-       if (!id->id)
-       {
-               id->id = axutil_uuid_gen(env);
-               if (id->id)
-               {
-                       return AXIS2_SUCCESS;
-               }
-       }
-       return AXIS2_FAILURE;
+       return  axutil_uuid_gen(env);
 }
 
-AXIS2_EXTERN void AXIS2_CALL saml_id_uninit(saml_id_t *id, axutil_env_t *env)
-{
-       if (id->id)
-       {
-               AXIS2_FREE(env->allocator, id->id);
-       }
-}
+

Modified: webservices/rampart/scratch/c/saml/test/test_main.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/scratch/c/saml/test/test_main.c?rev=585055&r1=585054&r2=585055&view=diff
==============================================================================
--- webservices/rampart/scratch/c/saml/test/test_main.c (original)
+++ webservices/rampart/scratch/c/saml/test/test_main.c Mon Oct 15 23:33:07 2007
@@ -1,6 +1,74 @@
+#include <SAML.h>
+#include <axutil_env.h>
+
+saml_condition_t * AXIS2_CALL saml_test_condition(axutil_env_t *env);
 
 int main()
 {
-
+       axiom_element_t *e = NULL;
+       axiom_node_t *n = NULL; 
+       axis2_char_t *a_text = NULL;
+       saml_assertion_t *assertion = NULL;
+       axutil_env_t *env = NULL;
+       axutil_date_time_t *time = NULL;
+       env = axutil_env_create_all("SAML_TEST.log", 1);
+       time = axutil_date_time_create(env);
+       assertion = AXIS2_MALLOC(env->allocator, sizeof(saml_assertion_t));
+       if (assertion)
+       {
+               saml_assertion_init(assertion, env);            
+               saml_assertion_set_minor_version(assertion, env, 1);            
+               saml_assertion_set_issue_instant(assertion, env, time);
+               saml_assertion_set_issuer(assertion, env, 
"http://ws.apache.org/rampart/c";);    
+               saml_assertion_add_condition(assertion, env, 
saml_test_condition(env));
+               saml_assertion_set_not_before(assertion, env, 
axutil_date_time_create(env));
+               axiom_element_create(env, NULL, "TEST_ASSERTION", NULL, &n);
+               saml_assertion_to_om(assertion, n, env);
+               a_text = axiom_node_to_string(n, env);
+       }
+       if (assertion)
+       {
+               saml_assertion_uninit(assertion, env);
+       }
+       AXIS2_FREE(env->allocator, assertion);  
        return 0;
-}
\ No newline at end of file
+}
+
+
+saml_condition_t * AXIS2_CALL saml_test_condition(axutil_env_t *env)
+{
+       saml_audi_restriction_cond_t *arc = NULL;
+       axis2_char_t *audience = NULL, *c_to_om = NULL;
+       axis2_char_t *cond_text = NULL;
+       axiom_element_t *e = NULL;
+       axiom_node_t *n = NULL; 
+       saml_condition_t *condition = AXIS2_MALLOC(env->allocator, 
sizeof(saml_condition_t));   
+       arc = saml_audi_restriction_cond_create(env);
+       saml_condition_set_condition(condition, env, arc, 
SAML_COND_AUDI_RESTRICTION);
+       audience = axutil_strdup(env, "www.samle.com");
+       saml_audi_restriction_cond_add_audience(arc, env, audience);
+
+       axiom_element_create(env, NULL, "TEST_COND", NULL, &n);
+       /*saml_condition_to_om(condition, n, env);
+       cond_text = axiom_node_to_string(n, env);*/
+       return condition;
+}
+
+saml_condition_t * AXIS2_CALL saml_test_statement(axutil_env_t *env)
+{
+       saml_auth_stmt_t *a_stmt = NULL;
+       axis2_char_t *audience = NULL, *c_to_om = NULL;
+       axis2_char_t *cond_text = NULL;
+       axiom_element_t *e = NULL;
+       axiom_node_t *n = NULL; 
+       saml_condition_t *condition = AXIS2_MALLOC(env->allocator, 
sizeof(saml_condition_t));   
+       arc = saml_audi_restriction_cond_create(env);
+       saml_condition_set_condition(condition, env, arc, 
SAML_COND_AUDI_RESTRICTION);
+       audience = axutil_strdup(env, "www.samle.com");
+       saml_audi_restriction_cond_add_audience(arc, env, audience);
+
+       axiom_element_create(env, NULL, "TEST_COND", NULL, &n);
+       /*saml_condition_to_om(condition, n, env);
+       cond_text = axiom_node_to_string(n, env);*/
+       return condition;
+}


Reply via email to