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