Author: milinda
Date: Tue Jun 10 01:34:42 2008
New Revision: 666008

URL: http://svn.apache.org/viewvc?rev=666008&view=rev
Log:
Small modification to key store creation logic. Now it support create PKCS12 
key store from buffer it buffer available in the rampart context.

Modified:
    webservices/rampart/trunk/c/src/util/rampart_engine.c

Modified: webservices/rampart/trunk/c/src/util/rampart_engine.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_engine.c?rev=666008&r1=666007&r2=666008&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_engine.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_engine.c Tue Jun 10 01:34:42 
2008
@@ -81,6 +81,7 @@
     axis2_char_t *enc_user = NULL;
     axis2_char_t *pkcs12_file = NULL;
     axis2_char_t *pkcs12_password = NULL;
+    axis2_char_t *pkcs12_buf = NULL;
     password_callback_fn password_function = NULL;
     rampart_callback_t *password_callback = NULL;
     void *param = NULL;
@@ -223,10 +224,7 @@
             if(password_callback)
             {
                 password = rampart_callback_password(env, password_callback, 
enc_user);
-                if((pkcs12_file = 
rampart_context_get_pkcs12_file_name(rampart_context, env)))
-                {
-                    pkcs12_password = rampart_callback_pkcs12_password(env, 
password_callback, enc_user);                   
-                }
+                pkcs12_password = rampart_callback_pkcs12_password(env, 
password_callback, enc_user);
             }
             else
             {
@@ -236,7 +234,8 @@
         }
     } 
     
-    if(pkcs12_file)
+    pkcs12_file = rampart_context_get_pkcs12_file_name(rampart_context, env);
+    if(pkcs12_file && pkcs12_password)
     {
         key_store = pkcs12_keystore_create(env, pkcs12_file, pkcs12_password);
         if(!key_store)
@@ -244,14 +243,24 @@
             AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                             "[rampart][engine] PKCS12 KeyStore creation 
failed.");
             return NULL;       
-        }
-
-        oxs_key_mgr_set_key_store(key_mgr, env, key_store);
-
-        if (password)
+        }        
+    }
+    else if(pkcs12_password && (pkcs12_buf = 
(axis2_char_t*)rampart_context_get_key_store_buff(rampart_context, env)))
+    {
+        key_store = pkcs12_keystore_create_from_buffer(env, pkcs12_buf, 
password);
+        if(!key_store)
         {
-            oxs_key_mgr_set_prv_key_password(key_mgr, env, password);
-        }
+                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                                "[rampart][engine] PKCS12 KeyStore creation 
failed.");
+                return NULL;   
+        }  
+    }
+    
+    oxs_key_mgr_set_key_store(key_mgr, env, key_store);
+
+    if (password)
+    {
+        oxs_key_mgr_set_prv_key_password(key_mgr, env, password);
     }
     
     property = axutil_property_create_with_args(env, AXIS2_SCOPE_REQUEST ,


Reply via email to