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;
+}
+