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/05 12:55:27 UTC
svn commit: r514653 - in /webservices/axis2/trunk/c/rampart:
include/oxs_xml_key_processor.h src/omxmlsec/xml_key_processor.c
Author: kaushalye
Date: Mon Mar 5 03:55:26 2007
New Revision: 514653
URL: http://svn.apache.org/viewvc?view=rev&rev=514653
Log:
Processing Key Information to obtain the Issuer name and the serial number
Modified:
webservices/axis2/trunk/c/rampart/include/oxs_xml_key_processor.h
webservices/axis2/trunk/c/rampart/src/omxmlsec/xml_key_processor.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=514653&r1=514652&r2=514653
==============================================================================
--- 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 03:55:26 2007
@@ -36,6 +36,11 @@
{
#endif
+/*Process a ds:X509IssuerSerial element and populate a certificate*/
+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);
+
/*Process data in a ds:X509Certificate and returns a certificate*/
AXIS2_EXTERN oxs_x509_cert_t *AXIS2_CALL
oxs_xml_key_process_X509Certificate(const axis2_env_t *env,
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=514653&r1=514652&r2=514653
==============================================================================
--- 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 03:55:26 2007
@@ -30,10 +30,47 @@
#include <oxs_token_x509_data.h>
#include <oxs_token_x509_certificate.h>
#include <oxs_token_key_info.h>
+#include <oxs_token_x509_issuer_name.h>
+#include <oxs_token_x509_serial_number.h>
#include <oxs_xml_key_processor.h>
/*Private functions*/
/*Public functions*/
+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)
+{
+ oxs_x509_cert_t *cert = NULL;
+ axiom_node_t *issuer_name_node = NULL;
+ axiom_node_t *serial_num_node = NULL;
+ axis2_char_t *node_name = NULL;
+ axis2_char_t *issuer_name = NULL;
+ axis2_char_t *serial_num_str = NULL;
+
+ node_name = axiom_util_get_localname(X509_issuer_serial_node, env);
+ if(0 != axis2_strcmp(node_name, OXS_NODE_X509_ISSUER_SERIAL)){
+ 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);
+ }
+
+ 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);
+ }
+
+ /*we set the key issuername and the serial number*/
+ cert = oxs_x509_cert_create(env);
+ oxs_x509_cert_set_issuer(cert, env, issuer_name);
+ oxs_x509_cert_set_serial_number(cert, env, atoi(serial_num_str));
+
+ return cert;
+}
AXIS2_EXTERN oxs_x509_cert_t *AXIS2_CALL
oxs_xml_key_process_X509Certificate(const axis2_env_t *env,
@@ -76,6 +113,8 @@
/*Check wht is 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{
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org