You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rampart-dev@ws.apache.org by su...@apache.org on 2008/04/07 13:16:35 UTC

svn commit: r645462 - in /webservices/rampart/scratch/c/pkcs/c/src: omxmlsec/key_mgr.c util/rampart_encryption.c

Author: supun
Date: Mon Apr  7 04:16:31 2008
New Revision: 645462

URL: http://svn.apache.org/viewvc?rev=645462&view=rev
Log: (empty)

Modified:
    webservices/rampart/scratch/c/pkcs/c/src/omxmlsec/key_mgr.c
    webservices/rampart/scratch/c/pkcs/c/src/util/rampart_encryption.c

Modified: webservices/rampart/scratch/c/pkcs/c/src/omxmlsec/key_mgr.c
URL: http://svn.apache.org/viewvc/webservices/rampart/scratch/c/pkcs/c/src/omxmlsec/key_mgr.c?rev=645462&r1=645461&r2=645462&view=diff
==============================================================================
--- webservices/rampart/scratch/c/pkcs/c/src/omxmlsec/key_mgr.c (original)
+++ webservices/rampart/scratch/c/pkcs/c/src/omxmlsec/key_mgr.c Mon Apr  7 04:16:31 2008
@@ -296,7 +296,38 @@
     oxs_key_mgr_t *key_mgr,
     const axutil_env_t *env)
 {
-	return key_mgr->receiver_certificate;
+	axis2_char_t *filename = NULL;
+    axis2_char_t *pem_buf = NULL;
+    axis2_status_t status = AXIS2_FAILURE;
+    openssl_x509_format_t format;
+    openssl_pkey_t *open_prvkey = NULL;
+    openssl_pkey_t *open_pubkey = NULL;
+    oxs_x509_cert_t *oxs_cert = NULL;
+
+    X509 *cert = NULL;
+    STACK_OF(X509) *ca = NULL;
+    EVP_PKEY *prvkey = NULL;
+    EVP_PKEY *pubkey = NULL;
+	if (key_mgr->receiver_certificate)
+	{
+		return key_mgr->receiver_certificate;
+	}
+	else
+	{
+		/* If user has specified the certificate/private key directly we will extract the information from it.
+		 * Else we will look for a file name to load the certificate/private key*/
+		pem_buf = oxs_key_mgr_get_pem_buf(key_mgr, env);
+		if(pem_buf)
+		{			
+			/*load certificate from buf*/
+			status = openssl_x509_load_from_buffer(env, pem_buf, &cert);			
+		}	
+		else
+		{
+			cert = oxs_key_mgr_load_x509_cert_from_pem_file(env, key_mgr->reciever_certificate_file);
+		}
+	}
+	return cert;
 }
 
 AXIS2_EXTERN axis2_key_type_t AXIS2_CALL

Modified: webservices/rampart/scratch/c/pkcs/c/src/util/rampart_encryption.c
URL: http://svn.apache.org/viewvc/webservices/rampart/scratch/c/pkcs/c/src/util/rampart_encryption.c?rev=645462&r1=645461&r2=645462&view=diff
==============================================================================
--- webservices/rampart/scratch/c/pkcs/c/src/util/rampart_encryption.c (original)
+++ webservices/rampart/scratch/c/pkcs/c/src/util/rampart_encryption.c Mon Apr  7 04:16:31 2008
@@ -127,25 +127,19 @@
                                key_mgr, env);
     oxs_key_mgr_set_format(key_mgr, env,
                                 oxs_util_get_format_by_file_extension(env, certificate_file));
-    /*First check whether the public key is set*/
-    key_buf = rampart_context_get_receiver_certificate(rampart_context, env);
-    if(key_buf)
-    {
-        axis2_key_type_t type = 0;
-        type = rampart_context_get_receiver_certificate_type(rampart_context, env);
-        if(type == AXIS2_KEY_TYPE_PEM)
-        {
-            oxs_key_mgr_set_format(key_mgr, env, OXS_ASYM_CTX_FORMAT_PEM);
-            oxs_key_mgr_set_pem_buf(key_mgr, env, (axis2_char_t *)key_buf);
-        }
-    }
-    
+
+	certificate = oxs_key_mgr_get_receiver_certificate(key_mgr, env);
+	if (!certificate)
+	{
+		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                        "[rampart][rampart_encryption] Receiver certificate cannot be loaded.");
+        return AXIS2_FAILURE;
+	}
 	oxs_asym_ctx_set_certificate(asym_ctx, env, certificate);
     oxs_asym_ctx_set_operation(asym_ctx, env,
                                OXS_ASYM_CTX_OPERATION_PUB_ENCRYPT);
     oxs_asym_ctx_set_st_ref_pattern(asym_ctx, env, eki);
 
-    oxs_key_mgr_load_key(key_mgr, env, asym_ctx);
     /*Encrypt the session key*/
     status = oxs_xml_enc_encrypt_key(env, asym_ctx,
                                      sec_node, session_key, id_list);