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/03/16 06:58:18 UTC

svn commit: r518870 - in /webservices/axis2/trunk/c/rampart: src/omxmlsec/openssl/digest.c src/omxmlsec/transforms_factory.c src/omxmlsec/xml_signature.c test/openssl/sign/test.c

Author: kaushalye
Date: Thu Mar 15 22:58:17 2007
New Revision: 518870

URL: http://svn.apache.org/viewvc?view=rev&rev=518870
Log:
Interop changes for Signature

Modified:
    webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/digest.c
    webservices/axis2/trunk/c/rampart/src/omxmlsec/transforms_factory.c
    webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_signature.c
    webservices/axis2/trunk/c/rampart/test/openssl/sign/test.c

Modified: webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/digest.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/digest.c?view=diff&rev=518870&r1=518869&r2=518870
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/digest.c (original)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/digest.c Thu Mar 15 22:58:17 2007
@@ -29,6 +29,7 @@
             axis2_char_t *input,
             int length)
 {
+    printf("SHA1-input =%s",input);
     SHA_CTX c ;
     unsigned char md[SHA_DIGEST_LENGTH];
     axis2_char_t* encoded_str = NULL;
@@ -40,6 +41,7 @@
     encoded_str = AXIS2_MALLOC(env->allocator, axis2_base64_encode_len(SIZE_HASH));
     axis2_base64_encode(encoded_str, (char*)md, SHA_DIGEST_LENGTH);
 
+    printf("SHA1-output =%s",encoded_str);
     return encoded_str;
 }
 

Modified: webservices/axis2/trunk/c/rampart/src/omxmlsec/transforms_factory.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/omxmlsec/transforms_factory.c?view=diff&rev=518870&r1=518869&r2=518870
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/transforms_factory.c (original)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/transforms_factory.c Thu Mar 15 22:58:17 2007
@@ -41,9 +41,10 @@
        oxs_error(env, ERROR_LOCATION, OXS_ERROR_TRANSFORM_FAILED,"Transform expects a NODE.");
        return OXS_TRANSFORM_TYPE_UNKNOWN;
     }
-    
+   
+    doc = axiom_node_get_document(input, env);
     algo = OXS_HREF_TRANSFORM_XML_EXC_C14N;
-    oxs_c14n_apply_algo(env, doc, &c14nized, NULL, (axiom_node_t*)input, algo);
+    oxs_c14n_apply_algo(env, doc, &c14nized, NULL, input, algo);
     /*oxs_c14n_apply(env, doc, AXIS2_FALSE, &c14nized, AXIS2_TRUE, NULL, (axiom_node_t*)input);*/
 
     *output= c14nized;

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=518870&r1=518869&r2=518870
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_signature.c (original)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_signature.c Thu Mar 15 22:58:17 2007
@@ -73,10 +73,12 @@
             /*If the required input type is CHAR and what we have is a NODE*/
             if((input_dtype == OXS_TRANSFORM_TYPE_CHAR) && (output_dtype == OXS_TRANSFORM_TYPE_NODE)){
                 /*Serialize*/
+                printf("Serialize before the transformation\n");
                 tr_input = axiom_node_to_string((axiom_node_t*)tr_output, env);
             /*If the required input type is NODE and what we have is a CHAR*/
             }else if((input_dtype == OXS_TRANSFORM_TYPE_NODE) && (output_dtype == OXS_TRANSFORM_TYPE_CHAR)){
                 /*De-serialize*/
+                printf("De-serialize before the transformation\n");
                 tr_input =  oxs_axiom_deserialize_node(env, (axis2_char_t *)tr_output);
             }else{
                 /*Let it go as it is. */
@@ -108,6 +110,7 @@
         /*No transforms defined. Thus we simply direct the node, to make the digest*/
         serialized_node = AXIOM_NODE_TO_STRING(node, env);
     }
+
     if(0 == axis2_strcmp( OXS_HREF_SHA1 , digest_mtd)){
         digest = openssl_sha1(env, serialized_node, axis2_strlen(serialized_node));
     }else{

Modified: webservices/axis2/trunk/c/rampart/test/openssl/sign/test.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/test/openssl/sign/test.c?view=diff&rev=518870&r1=518869&r2=518870
==============================================================================
--- webservices/axis2/trunk/c/rampart/test/openssl/sign/test.c (original)
+++ webservices/axis2/trunk/c/rampart/test/openssl/sign/test.c Thu Mar 15 22:58:17 2007
@@ -29,6 +29,75 @@
 #include <oxs_axis2_utils.h>
 #include <oxs_x509_cert.h>
 
+#include <oxs_utility.h>
+#include <oxs_axiom.h>
+#include <axiom.h>
+#include <axiom_xml_reader.h>
+#include <axis2_env.h>
+#include <oxs_ctx.h>
+#include <oxs_key.h>
+#include <oxs_key_mgr.h>
+#include <openssl_pkey.h>
+#include <oxs_error.h>
+#include <oxs_transform.h>
+#include <oxs_transforms_factory.h>
+#include <oxs_xml_signature.h>
+#include <oxs_sign_ctx.h>
+#include <oxs_sign_part.h>
+#include <oxs_xml_key_processor.h>
+#include <oxs_xml_key_info_builder.h>
+
+axiom_node_t* 
+load_sample_xml(const axis2_env_t *env,
+        axis2_char_t* filename
+               )
+{
+
+    axiom_document_t *doc = NULL;
+    axiom_stax_builder_t *builder = NULL;
+    axiom_xml_reader_t *reader = NULL;
+    /*axiom_xml_writer_t *writer = NULL;*/
+    axiom_node_t *tmpl = NULL;
+
+    reader = axiom_xml_reader_create_for_file(env, filename, NULL);
+    if (!reader) printf("\n Reader is NULL");
+    builder = axiom_stax_builder_create(env, reader);
+    if (!builder) printf("\n builder is NULL");
+    doc = axiom_document_create(env, NULL, builder);
+    if (!doc) printf("\n doc is NULL");
+    tmpl = axiom_document_build_all(doc, env);
+
+    /*    tmpl = axiom_document_get_root_element(doc, env);*/
+    if (!tmpl) printf("\n tmpl is NULL");
+    return tmpl;
+}
+
+void c14n(axis2_env_t *env, axis2_char_t* filename)
+{
+    axiom_document_t *doc = NULL;
+    axis2_char_t *algo = NULL;
+    axis2_char_t *c14nized = NULL;
+    axiom_node_t *input = NULL;
+    FILE *outf = NULL;
+
+    input = load_sample_xml(env, filename); 
+    doc = axiom_node_get_document(input, env);
+    algo = OXS_HREF_TRANSFORM_XML_EXC_C14N; 
+    oxs_c14n_apply_algo(env, doc, &c14nized, NULL, (axiom_node_t*)input, algo);
+    outf = fopen("c14n.txt", "w");
+    fwrite(c14nized, 1, strlen(c14nized), outf);
+
+}
+
+void digest(axis2_env_t *env, axis2_char_t *in){
+    axis2_char_t *dg = NULL;
+    FILE *outf = NULL;
+
+    dg = openssl_sha1(env, in, strlen(in));
+    outf = fopen("digest.txt", "w");
+    fwrite(dg, 1, strlen(dg), outf);
+    printf("DIGEST = %s", dg);
+}
 
 int main()
 {
@@ -43,7 +112,13 @@
     int len = -1;
 
     env = axis2_env_create_all("./openssl.log", AXIS2_LOG_LEVEL_TRACE);
-    
+
+    /*new code*/
+     c14n(env, "input.xml");
+     digest(env, "ABCDABCDABCDABCD");
+     return 0;
+    /*eof new code*/
+
     /*Load private key*/
     prvkey = oxs_key_mgr_load_private_key_from_pem_file(env, "key.pem", "");
     if(!prvkey){



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