Author: kaushalye
Date: Fri Nov 23 01:40:54 2007
New Revision: 597615

URL: http://svn.apache.org/viewvc?rev=597615&view=rev
Log:
Free keys used to sign based on its type

Modified:
    webservices/rampart/trunk/c/src/omxmlsec/openssl/hmac.c
    webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c
    webservices/rampart/trunk/c/src/util/rampart_signature.c

Modified: webservices/rampart/trunk/c/src/omxmlsec/openssl/hmac.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/openssl/hmac.c?rev=597615&r1=597614&r2=597615&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/openssl/hmac.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/openssl/hmac.c Fri Nov 23 01:40:54 
2007
@@ -234,7 +234,7 @@
        dk_id = (axis2_char_t*)oxs_util_generate_id(env, 
(axis2_char_t*)OXS_DERIVED_ID);
        dk_name = axutil_stracat(env, "#", dk_id);
 
-       status = status && oxs_key_populate(derived_key, env, (unsigned 
char*)(output+offset), dk_name, length, oxs_key_get_usage(secret, env));
+       status = status && oxs_key_populate(derived_key, env, (unsigned 
char*)(output+offset), dk_name, length, OXS_KEY_USAGE_DERIVED);
        AXIS2_FREE(env->allocator, output);
        AXIS2_FREE(env->allocator, dk_id);
        AXIS2_FREE(env->allocator, dk_name);

Modified: webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c?rev=597615&r1=597614&r2=597615&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c 
(original)
+++ webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c Fri Nov 
23 01:40:54 2007
@@ -966,7 +966,7 @@
 
         return  AXIS2_FAILURE;
     }
-    if(rampart_context_check_is_derived_keys(env, token))
+    /*if(rampart_context_check_is_derived_keys(env, token))
     {
         rampart_create_fault_envelope(env, 
RAMPART_FAULT_UNSUPPORTED_SECURITY_TOKEN,
                                       "Derived Keys are not supported.", 
RAMPART_FAULT_IN_SIGNATURE, msg_ctx);
@@ -974,7 +974,7 @@
                         "[rampart][shp] Derived Keys are not supported.");
 
         return AXIS2_FAILURE;
-    }
+    }*/
     is_include_token = rampart_context_is_token_include(
                            rampart_context, token, token_type, server_side, 
AXIS2_TRUE, env);
 

Modified: webservices/rampart/trunk/c/src/util/rampart_signature.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_signature.c?rev=597615&r1=597614&r2=597615&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_signature.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_signature.c Fri Nov 23 
01:40:54 2007
@@ -709,12 +709,14 @@
     }
 
     /*If we have used derived keys, then we need to free the key in sign_ctx*/
-    if(rampart_context_check_is_derived_keys (env, token)){
+    if((RP_PROPERTY_SYMMETRIC_BINDING == binding_type) && 
(rampart_context_check_is_derived_keys (env, token))){
         oxs_key_t *sig_ctx_dk = NULL;
 
         sig_ctx_dk = oxs_sign_ctx_get_secret(sign_ctx, env);
-        /*oxs_key_free(sig_ctx_dk, env);
-        sig_ctx_dk = NULL;*/
+        if(sig_ctx_dk && (OXS_KEY_USAGE_DERIVED == 
oxs_key_get_usage(sig_ctx_dk, env))){
+            oxs_key_free(sig_ctx_dk, env);
+            sig_ctx_dk = NULL;
+        }
     }
     /*Free sig ctx*/
     oxs_sign_ctx_free(sign_ctx, env);


Reply via email to