Author: kaushalye
Date: Thu Oct  4 05:37:07 2007
New Revision: 581877

URL: http://svn.apache.org/viewvc?rev=581877&view=rev
Log:
Introducing Signature Confirmation element

Added:
    
webservices/rampart/trunk/c/src/omxmlsec/tokens/token_signature_confirmation.c
Modified:
    webservices/rampart/trunk/c/NEWS
    webservices/rampart/trunk/c/include/oxs_constants.h
    webservices/rampart/trunk/c/include/oxs_tokens.h
    webservices/rampart/trunk/c/src/omxmlsec/tokens/Makefile.am

Modified: webservices/rampart/trunk/c/NEWS
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/NEWS?rev=581877&r1=581876&r2=581877&view=diff
==============================================================================
--- webservices/rampart/trunk/c/NEWS (original)
+++ webservices/rampart/trunk/c/NEWS Thu Oct  4 05:37:07 2007
@@ -19,7 +19,7 @@
 3. Improvements to the context model
 4. Authentication module implementation
 5. Credentials module implementation
-6. Impirovements to Key/Certificate loading mechanisms
+6. Improvements to Key/Certificate loading mechanisms
 7. Easy to use deployment scripts 
 8. Memory leak fixes
 9. Many bug fixes

Modified: webservices/rampart/trunk/c/include/oxs_constants.h
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/include/oxs_constants.h?rev=581877&r1=581876&r2=581877&view=diff
==============================================================================
--- webservices/rampart/trunk/c/include/oxs_constants.h (original)
+++ webservices/rampart/trunk/c/include/oxs_constants.h Thu Oct  4 05:37:07 2007
@@ -134,6 +134,7 @@
 #define OXS_ATTR_TARGET        "Target"
 #define OXS_ATTR_ENCODING_TYPE  "EncodingType"
 #define OXS_ATTR_VALUE_TYPE     "ValueType"
+#define OXS_ATTR_VALUE     "Value"
 
 
     /****************************************************************

Modified: webservices/rampart/trunk/c/include/oxs_tokens.h
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/include/oxs_tokens.h?rev=581877&r1=581876&r2=581877&view=diff
==============================================================================
--- webservices/rampart/trunk/c/include/oxs_tokens.h (original)
+++ webservices/rampart/trunk/c/include/oxs_tokens.h Thu Oct  4 05:37:07 2007
@@ -65,7 +65,22 @@
      * @ingroup oxs
      * @{
      */
+    
+    /*TODO : We need to import functions in other oxs_token_* headers too here 
*/
+    
+    /*<wsse11:SignatureConfirmation> element 
************************************************/
+  
+    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+    oxs_token_get_signature_confirmation_value(const axutil_env_t *env, 
axiom_node_t *signature_confirmation_node);
 
+    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+    oxs_token_get_signature_confirmation_id(const axutil_env_t *env, 
axiom_node_t *signature_confirmation_node);
+
+    AXIS2_EXTERN axiom_node_t* AXIS2_CALL
+    oxs_token_build_signature_confirmation_element(const axutil_env_t *env,
+                                        axiom_node_t *parent,
+                                        axis2_char_t *id,
+                                        axis2_char_t *val); 
     /** @} */
 
 #ifdef __cplusplus

Modified: webservices/rampart/trunk/c/src/omxmlsec/tokens/Makefile.am
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/tokens/Makefile.am?rev=581877&r1=581876&r2=581877&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/tokens/Makefile.am (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/tokens/Makefile.am Thu Oct  4 
05:37:07 2007
@@ -8,7 +8,7 @@
                                                token_embedded.c 
token_reference.c token_signature_value.c token_signed_info.c \
                                                token_c14n_method.c 
token_signature_method.c token_digest_method.c token_digest_value.c \
                                                token_transform.c 
token_transforms.c token_signature.c token_ds_reference.c \
-                                               token_x509_certificate.c
+                                               token_x509_certificate.c 
token_signature_confirmation.c
 
 
 INCLUDES = -I$(top_builddir)/include \

Added: 
webservices/rampart/trunk/c/src/omxmlsec/tokens/token_signature_confirmation.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/tokens/token_signature_confirmation.c?rev=581877&view=auto
==============================================================================
--- 
webservices/rampart/trunk/c/src/omxmlsec/tokens/token_signature_confirmation.c 
(added)
+++ 
webservices/rampart/trunk/c/src/omxmlsec/tokens/token_signature_confirmation.c 
Thu Oct  4 05:37:07 2007
@@ -0,0 +1,116 @@
+/*
+ * 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 <stdio.h>
+#include <oxs_constants.h>
+#include <oxs_error.h>
+#include <oxs_tokens.h>
+#include <axiom_element.h>
+#include <oxs_axiom.h>
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+oxs_token_get_signature_confirmation_value(const axutil_env_t *env, 
axiom_node_t *signature_confirmation_node)
+{
+    axis2_char_t *value = NULL;
+    axiom_element_t *signature_confirmation_ele = NULL;
+
+    if(!signature_confirmation_node){
+        return NULL;
+    }
+
+    signature_confirmation_ele = 
axiom_node_get_data_element(signature_confirmation_node, env);
+    if (!signature_confirmation_ele)
+    {
+        oxs_error(env, ERROR_LOCATION,
+                  OXS_ERROR_ELEMENT_FAILED, "Error retrieving 
SignatureConfirmation method element");
+        return NULL;
+    }
+
+    value = 
axiom_element_get_attribute_value_by_name(signature_confirmation_ele, env, 
OXS_ATTR_VALUE);
+    if((!value) ||(0 == axutil_strcmp("", value))){
+        return NULL;
+    }
+
+    return value;
+}
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+oxs_token_get_signature_confirmation_id(const axutil_env_t *env, axiom_node_t 
*signature_confirmation_node)
+{
+    axis2_char_t *id = NULL;
+    axiom_element_t *signature_confirmation_ele = NULL;
+
+    if(!signature_confirmation_node){
+        return NULL;
+    }
+
+    signature_confirmation_ele = 
axiom_node_get_data_element(signature_confirmation_node, env);
+    if (!signature_confirmation_ele)
+    {
+        oxs_error(env, ERROR_LOCATION,
+                  OXS_ERROR_ELEMENT_FAILED, "Error retrieving 
SignatureConfirmation method element");
+        return NULL;
+    }
+
+    id = axiom_element_get_attribute_value_by_name(signature_confirmation_ele, 
env, OXS_ATTR_ID);
+    if((!id) ||(0 == axutil_strcmp("", id))){
+        return NULL;
+    }
+
+    return id;
+}
+
+
+AXIS2_EXTERN axiom_node_t* AXIS2_CALL
+oxs_token_build_signature_confirmation_element(const axutil_env_t *env,
+                                        axiom_node_t *parent,
+                                        axis2_char_t *id,
+                                        axis2_char_t *val)
+{
+    axiom_node_t *signature_confirmation_node = NULL;
+    axiom_element_t *signature_confirmation_ele = NULL;
+    axis2_status_t ret;
+    axiom_namespace_t *ns_obj = NULL;
+    axiom_attribute_t *id_attr = NULL;
+    axiom_attribute_t *val_attr = NULL;
+
+    ns_obj = axiom_namespace_create(env, OXS_WSSE_11_XMLNS,
+                                    OXS_WSSE_11);
+
+    signature_confirmation_ele = axiom_element_create(env, parent, 
OXS_NODE_SIGNATURE_CONFIRMATION, ns_obj, &signature_confirmation_node);
+    if (!signature_confirmation_ele)
+    {
+        oxs_error(env, ERROR_LOCATION,
+                  OXS_ERROR_ELEMENT_FAILED, "Error %s element", 
OXS_NODE_SIGNATURE_CONFIRMATION);
+        return NULL;
+    }
+
+    if (id)
+    {
+        id_attr =  axiom_attribute_create(env, OXS_ATTR_ID, id, NULL);
+        ret = axiom_element_add_attribute(signature_confirmation_ele, env, 
id_attr, signature_confirmation_node);
+    }
+    
+    if (val)
+    {
+        val_attr =  axiom_attribute_create(env, OXS_ATTR_VALUE, val, NULL);
+        ret = axiom_element_add_attribute(signature_confirmation_ele, env, 
val_attr, signature_confirmation_node);
+    }
+
+    return signature_confirmation_node;
+}
+


Reply via email to