You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ka...@apache.org on 2007/02/16 08:34:07 UTC

svn commit: r508332 - in /webservices/axis2/trunk/c/rampart: include/oxs_c14n.h src/omxmlsec/Makefile.am src/omxmlsec/c14n/Makefile.am src/omxmlsec/openssl/sign.c src/omxmlsec/signature.c src/omxmlsec/xml_signature.c test/Makefile.am test/c14n/Makefile.am

Author: kaushalye
Date: Thu Feb 15 23:34:06 2007
New Revision: 508332

URL: http://svn.apache.org/viewvc?view=rev&rev=508332
Log:
C14N in OMXMLSecurity

Modified:
    webservices/axis2/trunk/c/rampart/include/oxs_c14n.h
    webservices/axis2/trunk/c/rampart/src/omxmlsec/Makefile.am
    webservices/axis2/trunk/c/rampart/src/omxmlsec/c14n/Makefile.am
    webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/sign.c
    webservices/axis2/trunk/c/rampart/src/omxmlsec/signature.c
    webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_signature.c
    webservices/axis2/trunk/c/rampart/test/Makefile.am
    webservices/axis2/trunk/c/rampart/test/c14n/Makefile.am

Modified: webservices/axis2/trunk/c/rampart/include/oxs_c14n.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/include/oxs_c14n.h?view=diff&rev=508332&r1=508331&r2=508332
==============================================================================
--- webservices/axis2/trunk/c/rampart/include/oxs_c14n.h (original)
+++ webservices/axis2/trunk/c/rampart/include/oxs_c14n.h Thu Feb 15 23:34:06 2007
@@ -14,17 +14,17 @@
  * limitations under the License.
  */
 
-#ifndef AXIS2_C14N_H
-#define AXIS2_C14N_H
+#ifndef OXS_C14N_H
+#define OXS_C14N_H
 
-/** @defgroup axis2c_c14n c14n
- * @ingroup axis2_c14n
+/** @defgroup oxs_c14n c14n
+ * @ingroup oxs_c14n
  * XML Canonicalization (XML-C14N).
  * @{
  */
 
 /**
- * @file axis2_c14n.h
+ * @file oxs_c14n.h
  * @brief
  */
 
@@ -68,4 +68,4 @@
 #ifdef __cplusplus
 }
 #endif
-#endif  /* AXIS2_C14N_H */
+#endif  /* OXS_C14N_H */

Modified: webservices/axis2/trunk/c/rampart/src/omxmlsec/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/omxmlsec/Makefile.am?view=diff&rev=508332&r1=508331&r2=508332
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/Makefile.am (original)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/Makefile.am Thu Feb 15 23:34:06 2007
@@ -10,6 +10,7 @@
 libomxmlsec_la_LIBADD  = -lssl\
 			../../../util/src/libaxis2_util.la \
 			../../../axiom/src/om/libaxis2_axiom.la \
+			c14n/liboxsc14n.la \
 			-lcrypto 
 
 INCLUDES = -I$(top_builddir)/include \

Modified: webservices/axis2/trunk/c/rampart/src/omxmlsec/c14n/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/omxmlsec/c14n/Makefile.am?view=diff&rev=508332&r1=508331&r2=508332
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/c14n/Makefile.am (original)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/c14n/Makefile.am Thu Feb 15 23:34:06 2007
@@ -1,11 +1,11 @@
-noinst_LTLIBRARIES=libaxis2_c14n.la
+lib_LTLIBRARIES = liboxsc14n.la
 
-noinst_HEADERS=c14n_sorted_list.h
+noinst_HEADERS = c14n_sorted_list.h
 
-libaxis2_c14n_la_SOURCES=c14n.c \
+liboxsc14n_la_SOURCES = c14n.c \
 					  sorted_list.c
 
-libaxis2_c14n_la_LIBADD=../../../../util/src/libaxis2_util.la \
+liboxsc14n_la_LIBADD = ../../../../util/src/libaxis2_util.la \
 					../../../../axiom/src/om/libaxis2_axiom.la 
 					../../../../axiom/src/parser/libxml2/libaxis2_parser.la 
 

Modified: webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/sign.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/sign.c?view=diff&rev=508332&r1=508331&r2=508332
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/sign.c (original)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/sign.c Thu Feb 15 23:34:06 2007
@@ -64,7 +64,6 @@
         ERR_print_errors_fp (stderr);     
     }
     /*Fill the output buffer*/
-    output_buf = oxs_buffer_create(env);
     OXS_BUFFER_POPULATE(output_buf, env, sig_buf, sig_len);
 
     return sig_len;

Modified: webservices/axis2/trunk/c/rampart/src/omxmlsec/signature.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/omxmlsec/signature.c?view=diff&rev=508332&r1=508331&r2=508332
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/signature.c (original)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/signature.c Thu Feb 15 23:34:06 2007
@@ -33,32 +33,16 @@
     oxs_buffer_t *input,
     oxs_buffer_t *output)
 {
-    axis2_char_t *to_be_signed_content = NULL;
     axis2_char_t *encoded_str = NULL;
     axis2_status_t status = AXIS2_FAILURE;
-    oxs_buffer_t *digested_buf = NULL;
     oxs_buffer_t *signed_result_buf = NULL;
-    openssl_pkey_t *prv_key = NULL;
-    openssl_rsa_t *rsa = NULL;
     int signedlen = -1, encodedlen = -1, ret = -1;
 
-    /*Make sha-1 digest. Do we really need to do this OR is it part of OpenSSL operation????*/
-    to_be_signed_content = openssl_sha1(env, (axis2_char_t*)OXS_BUFFER_GET_DATA(input, env),  OXS_BUFFER_GET_SIZE(input, env));
-  
-    /*Create and populate the new input buffer*/
-    digested_buf = oxs_buffer_create(env);
-    OXS_BUFFER_POPULATE(digested_buf, env, (unsigned char*)to_be_signed_content, axis2_strlen(to_be_signed_content));
-
-
-    /*Get the key*/
-    prv_key = oxs_sign_ctx_get_private_key(sign_ctx, env);
-
     /*Create output buffer to store signed data*/
     signed_result_buf = oxs_buffer_create(env);
 
     /*Sign */
-    rsa = openssl_rsa_create(env);
-    signedlen = OPENSSL_RSA_PRV_ENCRYPT(rsa, env, prv_key, OPENSSL_RSA_PKCS1_PADDING, digested_buf, signed_result_buf);
+    signedlen = openssl_sign(env, sign_ctx, input, signed_result_buf);
     if(signedlen < 0){
         /*Error*/
     }
@@ -69,10 +53,8 @@
     ret = axis2_base64_encode(encoded_str, (const char *)OXS_BUFFER_GET_DATA(signed_result_buf, env), signedlen);
     status = OXS_BUFFER_POPULATE(output, env, (unsigned char*)AXIS2_STRDUP(encoded_str, env), encodedlen);
 
-    /*Free digested_buf*/
     /*Free signed_result_buf*/
-    /*Free rsa*/
-
+    
     return AXIS2_SUCCESS;
 }
 

Modified: webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_signature.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_signature.c?view=diff&rev=508332&r1=508331&r2=508332
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_signature.c (original)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_signature.c Thu Feb 15 23:34:06 2007
@@ -21,6 +21,7 @@
 #include <oxs_error.h>
 #include <oxs_buffer.h>
 #include <oxs_cipher.h>
+#include <oxs_c14n.h>
 #include <openssl_rsa.h>
 #include <openssl_digest.h>
 #include <oxs_sign_ctx.h>
@@ -101,16 +102,20 @@
     axis2_char_t *signature_val = "FAKE_SIG_VAL(734dwe93721fd8y2==";
     axis2_char_t *serialized_signed_info = NULL;
     axis2_char_t *c14n_algo = NULL;
+    axis2_char_t *c14nized = NULL;
     axiom_node_t *signature_val_node = NULL;
+    axiom_document_t *doc = NULL;
     oxs_buffer_t *input_buf = NULL;
     oxs_buffer_t *output_buf = NULL;
     axis2_status_t status = AXIS2_FAILURE;
 
     /*TODO : Cannonicalize <SignedInfo>*/
     c14n_algo = oxs_sign_ctx_get_c14n_mtd(sign_ctx, env);
-
+    doc = axiom_node_get_document(signed_info_node, env);
+    oxs_c14n_apply(env, doc, AXIS2_FALSE, &c14nized, AXIS2_TRUE, NULL, signed_info_node); 
+    
     /*Then serialize <SignedInfo>*/
-    serialized_signed_info = AXIOM_NODE_TO_STRING(signed_info_node, env);
+    serialized_signed_info = c14nized; /*AXIOM_NODE_TO_STRING(signed_info_node, env);*/
     printf("serialized_signed_info %s\n",serialized_signed_info); 
 
     /*Make the input and out put buffers*/
@@ -121,8 +126,7 @@
     /*Then sign... NOTE: The signature process includes making the digest. e.g. rsa-sha1 => RSA(SHA-1(contents))*/ 
     status = oxs_sig_sign(env, sign_ctx, input_buf, output_buf);
 
-    /*Sign the data using the private key*/
-    signature_val = "MC0CFFrVLtRlk=";
+    signature_val = (axis2_char_t*)OXS_BUFFER_GET_DATA(output_buf, env);
     
     /*Construct <SignatureValue>*/
     signature_val_node = oxs_token_build_signature_value_element(env, signature_node, signature_val);

Modified: webservices/axis2/trunk/c/rampart/test/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/test/Makefile.am?view=diff&rev=508332&r1=508331&r2=508332
==============================================================================
--- webservices/axis2/trunk/c/rampart/test/Makefile.am (original)
+++ webservices/axis2/trunk/c/rampart/test/Makefile.am Thu Feb 15 23:34:06 2007
@@ -1,2 +1,2 @@
-SUBDIRS = openssl c14n omxmlsec
+SUBDIRS = openssl  omxmlsec
 

Modified: webservices/axis2/trunk/c/rampart/test/c14n/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/test/c14n/Makefile.am?view=diff&rev=508332&r1=508331&r2=508332
==============================================================================
--- webservices/axis2/trunk/c/rampart/test/c14n/Makefile.am (original)
+++ webservices/axis2/trunk/c/rampart/test/c14n/Makefile.am Thu Feb 15 23:34:06 2007
@@ -13,4 +13,4 @@
 test_c14n_LDADD   =	../../../util/src/libaxis2_util.la \
 					../../../axiom/src/om/libaxis2_axiom.la \
 					../../../axiom/src/parser/libxml2/libaxis2_libxml2.la \
-					../../../rampart/src/omxmlsec/c14n/libaxis2_c14n.la 
+					../../../rampart/src/omxmlsec/c14n/liboxsc14n.la 



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org