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 ka...@apache.org on 2007/08/21 12:55:11 UTC

svn commit: r568057 - in /webservices/rampart/trunk/c/src: omxmlsec/asym_ctx.c omxmlsec/ctx.c omxmlsec/key.c util/rampart_encryption.c util/rampart_sec_header_processor.c

Author: kaushalye
Date: Tue Aug 21 03:55:05 2007
New Revision: 568057

URL: http://svn.apache.org/viewvc?rev=568057&view=rev
Log:
We kepe only one session key for all the symmetric encryptions for efficiency.
Thus the oxs_ctx doesn't free session key.
This is different to rampart context, in which keeps it's own session key.

Modified:
    webservices/rampart/trunk/c/src/omxmlsec/asym_ctx.c
    webservices/rampart/trunk/c/src/omxmlsec/ctx.c
    webservices/rampart/trunk/c/src/omxmlsec/key.c
    webservices/rampart/trunk/c/src/util/rampart_encryption.c
    webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c

Modified: webservices/rampart/trunk/c/src/omxmlsec/asym_ctx.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/asym_ctx.c?rev=568057&r1=568056&r2=568057&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/asym_ctx.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/asym_ctx.c Tue Aug 21 03:55:05 2007
@@ -335,6 +335,12 @@
         oxs_x509_cert_free(asym_ctx->certificate, env);
         asym_ctx->certificate = NULL;
     }
+    
+    if (asym_ctx->private_key)
+    {
+        openssl_pkey_free(asym_ctx->private_key, env);
+        asym_ctx->private_key = NULL;
+    }
 
     AXIS2_FREE(env->allocator,  asym_ctx);
     asym_ctx = NULL;

Modified: webservices/rampart/trunk/c/src/omxmlsec/ctx.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/ctx.c?rev=568057&r1=568056&r2=568057&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/ctx.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/ctx.c Tue Aug 21 03:55:05 2007
@@ -135,7 +135,10 @@
     }
 
     /*TODO free nodes and key*/
-
+    /*if(ctx->key){
+        oxs_key_free(ctx->key, env);
+        ctx->key = NULL;
+    }*/
     AXIS2_FREE(env->allocator,  ctx);
     ctx = NULL;
 
@@ -310,11 +313,11 @@
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    if (ctx->key)
+ /*   if (ctx->key)
     {
-        AXIS2_FREE(env->allocator, ctx->key);
+        oxs_key_free(ctx->key, env);
         ctx->key = NULL;
-    }
+    }*/
     ctx->key = key;
 
     return AXIS2_SUCCESS;

Modified: webservices/rampart/trunk/c/src/omxmlsec/key.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/key.c?rev=568057&r1=568056&r2=568057&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/key.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/key.c Tue Aug 21 03:55:05 2007
@@ -141,7 +141,7 @@
                     oxs_key_get_buffer(key, env),
                     axutil_strdup(env, key->name),
                     key->usage);
-    return key;
+    return new_key;
 }
 
 AXIS2_EXTERN oxs_key_t *AXIS2_CALL
@@ -174,7 +174,7 @@
              const axutil_env_t *env)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-
+    
     oxs_buffer_free(key->buf, env);
     key->buf = NULL;
     AXIS2_FREE(env->allocator,  key->name);
@@ -278,7 +278,7 @@
 
 
     ret = oxs_key_populate(key, env,
-                           oxs_buffer_get_data(key_buf, env), NULL,
+                           oxs_buffer_get_data(key_buf, env), "for-algo",
                            oxs_buffer_get_size(key_buf, env), OXS_KEY_USAGE_NONE);
 
     oxs_buffer_free(key_buf, env);

Modified: webservices/rampart/trunk/c/src/util/rampart_encryption.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_encryption.c?rev=568057&r1=568056&r2=568057&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_encryption.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_encryption.c Tue Aug 21 03:55:05 2007
@@ -182,6 +182,7 @@
         return AXIS2_FAILURE;
     }
 
+    /*Key will be duplicated inside the function. So no worries freeing it here*/
     rampart_context_set_session_key(rampart_context, env, session_key);
 
     /*Create a list to store EncDataIds. This will be used in building the ReferenceList*/
@@ -329,6 +330,9 @@
     }
     oxs_asym_ctx_free(asym_ctx, env);
     asym_ctx = NULL;
+
+    oxs_key_free(session_key, env);
+    session_key = NULL;
 
     return AXIS2_SUCCESS;
 }

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=568057&r1=568056&r2=568057&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 Tue Aug 21 03:55:05 2007
@@ -441,8 +441,8 @@
     /*Free*/
     oxs_asym_ctx_free(asym_ctx, env);
     asym_ctx = NULL;
-    oxs_key_free(decrypted_sym_key, env);
-    decrypted_sym_key = NULL;
+    /*oxs_key_free(decrypted_sym_key, env);
+    decrypted_sym_key = NULL;*/
 
     return AXIS2_SUCCESS;
 }