Author: kaushalye
Date: Mon Nov 12 06:42:11 2007
New Revision: 594161
URL: http://svn.apache.org/viewvc?rev=594161&view=rev
Log:
Adding signature value and verification status for security processed results.
This is reqd for the signature confirmation support
Modified:
webservices/rampart/trunk/c/include/rampart_constants.h
webservices/rampart/trunk/c/src/omxmlsec/xml_signature.c
webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c
Modified: webservices/rampart/trunk/c/include/rampart_constants.h
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/include/rampart_constants.h?rev=594161&r1=594160&r2=594161&view=diff
==============================================================================
--- webservices/rampart/trunk/c/include/rampart_constants.h (original)
+++ webservices/rampart/trunk/c/include/rampart_constants.h Mon Nov 12 06:42:11
2007
@@ -129,6 +129,8 @@
#define RAMPART_SPR_UT_CHECKED "SPR_UT_Checked"
#define RAMPART_SPR_TS_CHECKED "SPR_TS_Checked"
#define RAMPART_SPR_ENC_CHECKED "SPR_ENC_Checked"
+#define RAMPART_SPR_SIG_VALUE "SPR_Sig_Val"
+#define RAMPART_SPR_SIG_VERIFIED "SPR_Sig_Verified"
#define RAMPART_YES "YES"
#define RAMPART_NO "NO"
Modified: webservices/rampart/trunk/c/src/omxmlsec/xml_signature.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/xml_signature.c?rev=594161&r1=594160&r2=594161&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/xml_signature.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/xml_signature.c Mon Nov 12
06:42:11 2007
@@ -603,7 +603,7 @@
axis2_char_t *c14n_mtd = NULL;
axis2_char_t *content = NULL;
axis2_char_t *signature_val = NULL;
- axis2_char_t *signed_info_node_value = NULL;
+ axis2_char_t *signed_info_node_value = NULL;
/*Set operation to verify*/
oxs_sign_ctx_set_operation(sign_ctx, env, OXS_SIGN_OPERATION_VERIFY);
@@ -643,10 +643,10 @@
c14n_mtd = oxs_sign_ctx_get_c14n_mtd(sign_ctx, env);
doc = axiom_node_get_document(signed_info_node, env);
- signed_info_node_value = axiom_node_to_string(signed_info_node, env);
+ signed_info_node_value = axiom_node_to_string(signed_info_node, env);
AXIS2_LOG_INFO(env->log, "[oxs][xml_sig] C14N (verif1)= %s ",
signed_info_node_value );
- AXIS2_FREE(env->allocator, signed_info_node_value);
- signed_info_node_value = NULL;
+ AXIS2_FREE(env->allocator, signed_info_node_value);
+ signed_info_node_value = NULL;
/* oxs_c14n_apply(env, doc, AXIS2_FALSE, &content, AXIS2_TRUE, NULL,
signed_info_node);*/
oxs_c14n_apply_algo(env, doc, &content, NULL, signed_info_node, c14n_mtd);
Modified: webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c?rev=594161&r1=594160&r2=594161&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c
(original)
+++ webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c Mon Nov
12 06:42:11 2007
@@ -838,7 +838,7 @@
return AXIS2_FAILURE;
}
-
+ /*TODO Free Sign Ctx*/
return status;
}
@@ -1239,6 +1239,19 @@
}else{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[rampart][shp] Binding type
not supported");
/*Not supported*/
+ }
+ /*We need to set the Signature Value in the Security Processed Resultsi.
This is required for the Signature Confirmation support*/
+ if(AXIS2_SUCCESS == status){
+ axis2_char_t *sig_val = NULL;
+ axiom_node_t *sig_val_node = NULL;
+
+ sig_val_node = oxs_axiom_get_first_child_node_by_name(env, sig_node,
OXS_NODE_SIGNATURE_VALUE, OXS_DSIG_NS, OXS_DS );
+ sig_val = oxs_token_get_signature_value(env, sig_val_node);
+
+ rampart_set_security_processed_result(env, msg_ctx,
RAMPART_SPR_SIG_VERIFIED, RAMPART_YES);
+ rampart_set_security_processed_result(env, msg_ctx,
RAMPART_SPR_SIG_VALUE, sig_val);
+ }else{
+ rampart_set_security_processed_result(env, msg_ctx,
RAMPART_SPR_SIG_VERIFIED, RAMPART_NO);
}
return status;
}