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 ,