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/06 07:39:13 UTC
svn commit: r514997 - in /webservices/axis2/trunk/c/rampart:
include/oxs_xml_key_processor.h src/omxmlsec/xml_key_processor.c
src/omxmlsec/xml_signature.c test/omxmlsec/test.c
Author: kaushalye
Date: Mon Mar 5 22:39:12 2007
New Revision: 514997
URL: http://svn.apache.org/viewvc?view=rev&rev=514997
Log:
Adding two more key information processing patterns to OMXMLSecurity. X509SKI and X509 Subject Name
Modified:
webservices/axis2/trunk/c/rampart/include/oxs_xml_key_processor.h
webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_key_processor.c
webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_signature.c
webservices/axis2/trunk/c/rampart/test/omxmlsec/test.c
Modified: webservices/axis2/trunk/c/rampart/include/oxs_xml_key_processor.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/include/oxs_xml_key_processor.h?view=diff&rev=514997&r1=514996&r2=514997
==============================================================================
--- webservices/axis2/trunk/c/rampart/include/oxs_xml_key_processor.h (original)
+++ webservices/axis2/trunk/c/rampart/include/oxs_xml_key_processor.h Mon Mar 5 22:39:12 2007
@@ -35,6 +35,15 @@
extern "C"
{
#endif
+/*Process a ds:X509SKI element and populate a certificate */
+AXIS2_EXTERN oxs_x509_cert_t *AXIS2_CALL
+oxs_xml_key_process_X509SKI(const axis2_env_t *env,
+ axiom_node_t *X509SKI_node);
+
+/*Process a ds:X509SubjectName element and populate a certificate*/
+AXIS2_EXTERN oxs_x509_cert_t *AXIS2_CALL
+oxs_xml_key_process_X509SubjectName(const axis2_env_t *env,
+ axiom_node_t *X509_subj_name_node);
/*Process a ds:X509IssuerSerial element and populate a certificate*/
AXIS2_EXTERN oxs_x509_cert_t *AXIS2_CALL
Modified: webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_key_processor.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_key_processor.c?view=diff&rev=514997&r1=514996&r2=514997
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_key_processor.c (original)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_key_processor.c Mon Mar 5 22:39:12 2007
@@ -37,6 +37,49 @@
/*Public functions*/
AXIS2_EXTERN oxs_x509_cert_t *AXIS2_CALL
+oxs_xml_key_process_X509SKI(const axis2_env_t *env,
+ axiom_node_t *X509SKI_node)
+{
+ oxs_x509_cert_t *cert = NULL;
+ axis2_char_t *ski = NULL;
+ axis2_char_t *node_name = NULL;
+
+ node_name = axiom_util_get_localname(X509SKI_node, env);
+ if(0 != axis2_strcmp(node_name, OXS_NODE_X509_SKI)){
+ oxs_error(env, ERROR_LOCATION, OXS_ERROR_INVALID_DATA,"Invalid node. Expected %s. Found", OXS_NODE_X509_SKI, node_name);
+ return NULL;
+ }
+
+ ski = oxs_axiom_get_node_content(env, X509SKI_node);
+ cert = oxs_x509_cert_create(env);
+ oxs_x509_cert_set_subject(cert, env, ski);
+
+ return cert;
+
+}
+
+AXIS2_EXTERN oxs_x509_cert_t *AXIS2_CALL
+oxs_xml_key_process_X509SubjectName(const axis2_env_t *env,
+ axiom_node_t *X509_subj_name_node)
+{
+ oxs_x509_cert_t *cert = NULL;
+ axis2_char_t *subj_name = NULL;
+ axis2_char_t *node_name = NULL;
+
+ node_name = axiom_util_get_localname(X509_subj_name_node, env);
+ if(0 != axis2_strcmp(node_name, OXS_NODE_X509_SUBJECT_NAME)){
+ oxs_error(env, ERROR_LOCATION, OXS_ERROR_INVALID_DATA,"Invalid node. Expected %s. Found", OXS_NODE_X509_SUBJECT_NAME, node_name);
+ return NULL;
+ }
+
+ subj_name = oxs_axiom_get_node_content(env, X509_subj_name_node);
+ cert = oxs_x509_cert_create(env);
+ oxs_x509_cert_set_subject(cert, env, subj_name);
+
+ return cert;
+}
+
+AXIS2_EXTERN oxs_x509_cert_t *AXIS2_CALL
oxs_xml_key_process_X509IssuerSerial(const axis2_env_t *env,
axiom_node_t *X509_issuer_serial_node)
{
@@ -52,16 +95,15 @@
oxs_error(env, ERROR_LOCATION, OXS_ERROR_INVALID_DATA,"Invalid node. Expected %s. Found", OXS_NODE_X509_ISSUER_SERIAL, node_name);
return NULL;
}
-
issuer_name_node = AXIOM_NODE_GET_FIRST_CHILD(X509_issuer_serial_node, env);
if(issuer_name_node){
- issuer_name = oxs_token_get_issuer_name(env, issuer_name_node);
+ issuer_name = oxs_axiom_get_node_content(env, issuer_name_node);
}
serial_num_node = AXIOM_NODE_GET_NEXT_SIBLING(issuer_name_node, env);
if(serial_num_node){
- serial_num_str = oxs_token_get_serial_number(env, serial_num_node);
+ serial_num_str = oxs_axiom_get_node_content(env, serial_num_node);
}
/*we set the key issuername and the serial number*/
@@ -93,6 +135,7 @@
}
+
AXIS2_EXTERN oxs_x509_cert_t *AXIS2_CALL
oxs_xml_key_process_X509Data(const axis2_env_t *env,
axiom_node_t *X509_data_node)
@@ -110,16 +153,17 @@
child_node = AXIOM_NODE_GET_FIRST_CHILD( X509_data_node, env);
child_name = axiom_util_get_localname(child_node, env);
- /*Check wht is inside the <ds:X509Data>*/
+ /*Check wht's inside the <ds:X509Data>*/
if(0 == axis2_strcmp(child_name, OXS_NODE_X509_CERTIFICATE)){
cert = oxs_xml_key_process_X509Certificate(env, child_node);
}else if(0 == axis2_strcmp(child_name, OXS_NODE_X509_ISSUER_SERIAL)){
cert = oxs_xml_key_process_X509IssuerSerial(env, child_node);
- }else if(0 == axis2_strcmp(child_name,OXS_NODE_X509_SUBJECT_NAME )){
- /*TODO*/
+ }else if(0 == axis2_strcmp(child_name, OXS_NODE_X509_SUBJECT_NAME )){
+ cert = oxs_xml_key_process_X509SubjectName(env, child_node);
+ }else if(0 == axis2_strcmp(child_name, OXS_NODE_X509_SKI )){
+ cert = oxs_xml_key_process_X509SKI(env, child_node);
}else{
/*We do not support*/
-
}
return cert;
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=514997&r1=514996&r2=514997
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_signature.c (original)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_signature.c Mon Mar 5 22:39:12 2007
@@ -278,7 +278,7 @@
int i=0;
/*Construct the <Signature> element*/
- signature_node = oxs_token_build_signature_element(env, parent, "Sign-ID");
+ signature_node = oxs_token_build_signature_element(env, parent, oxs_util_generate_id(env,OXS_SIG_ID));
/*Construct the <SignedInfo> */
signed_info_node = oxs_token_build_signed_info_element(env, signature_node);
Modified: webservices/axis2/trunk/c/rampart/test/omxmlsec/test.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/test/omxmlsec/test.c?view=diff&rev=514997&r1=514996&r2=514997
==============================================================================
--- webservices/axis2/trunk/c/rampart/test/omxmlsec/test.c (original)
+++ webservices/axis2/trunk/c/rampart/test/omxmlsec/test.c Mon Mar 5 22:39:12 2007
@@ -204,7 +204,7 @@
certfile = argv[3];
prvkeyfile = argv[4];
}else{
- printf("Usage ./test inputfile prvkey certificate operation[S/V]\n");
+ printf("Usage ./test inputfile operation[S/V] certificate prvkey \n");
return -1;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org