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);


Reply via email to