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/10/17 08:38:41 UTC

svn commit: r585397 - in /webservices/rampart/trunk/c: include/openssl_hmac.h include/oxs_sign_ctx.h src/omxmlsec/openssl/hmac.c src/omxmlsec/sign_ctx.c

Author: kaushalye
Date: Tue Oct 16 23:38:41 2007
New Revision: 585397

URL: http://svn.apache.org/viewvc?rev=585397&view=rev
Log:
Allocating a place for a shared secret in the signature context

Modified:
    webservices/rampart/trunk/c/include/openssl_hmac.h
    webservices/rampart/trunk/c/include/oxs_sign_ctx.h
    webservices/rampart/trunk/c/src/omxmlsec/openssl/hmac.c
    webservices/rampart/trunk/c/src/omxmlsec/sign_ctx.c

Modified: webservices/rampart/trunk/c/include/openssl_hmac.h
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/include/openssl_hmac.h?rev=585397&r1=585396&r2=585397&view=diff
==============================================================================
--- webservices/rampart/trunk/c/include/openssl_hmac.h (original)
+++ webservices/rampart/trunk/c/include/openssl_hmac.h Tue Oct 16 23:38:41 2007
@@ -41,7 +41,7 @@
         AXIS2_EXTERN axis2_status_t AXIS2_CALL
         openssl_hmac_sha1(const axutil_env_t *env,
              oxs_buffer_t *secret,
-             oxs_buffer_t *seed,
+             oxs_buffer_t *input,
              oxs_buffer_t *output); 
     /* @} */
 #ifdef __cplusplus

Modified: webservices/rampart/trunk/c/include/oxs_sign_ctx.h
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/include/oxs_sign_ctx.h?rev=585397&r1=585396&r2=585397&view=diff
==============================================================================
--- webservices/rampart/trunk/c/include/oxs_sign_ctx.h (original)
+++ webservices/rampart/trunk/c/include/oxs_sign_ctx.h Tue Oct 16 23:38:41 2007
@@ -33,6 +33,7 @@
 #include <axutil_env.h>
 #include <axiom_node.h>
 #include <oxs_x509_cert.h>
+#include <oxs_key.h>
 #include <openssl_pkey.h>
 
 #ifdef __cplusplus
@@ -149,6 +150,17 @@
         const axutil_env_t *env);
 
     /**
+     * Get shared secret of the signature context
+     * @sign_ctx the signature context
+     * @env the environemnt struct 
+     * @return the shared secret
+     */
+    AXIS2_EXTERN oxs_key_t *AXIS2_CALL
+    oxs_sign_ctx_get_secret(
+    const oxs_sign_ctx_t *sign_ctx,
+    const axutil_env_t *env);
+ 
+    /**
      * Get the operation of the signature context
      * @sign_ctx the signature context
      * @env the environemnt struct 
@@ -251,6 +263,19 @@
         const axutil_env_t *env,
         openssl_pkey_t *pub_key);
 
+    /**
+     * Set the shared secret of the signature context @sign_ctx
+     * @sign_ctx the signature context
+     * @env the environemnt struct
+     * @secret the shared secret
+     * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
+     */
+    AXIS2_EXTERN axis2_status_t AXIS2_CALL
+    oxs_sign_ctx_set_secret(
+        oxs_sign_ctx_t *sign_ctx,
+        const axutil_env_t *env,
+        oxs_key_t *secret);
+    
     /**
      * Set the operation of the signature context @sign_ctx
      * @sign_ctx the signature context

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=585397&r1=585396&r2=585397&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/openssl/hmac.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/openssl/hmac.c Tue Oct 16 23:38:41 2007
@@ -23,27 +23,12 @@
 #include <axis2_util.h>
 
 /**
-        unsigned char *HMAC(const EVP_MD *evp_md, const void *key,
-                      int key_len, const unsigned char *d, int n,
-                      unsigned char *md, unsigned int *md_len);
-
-        void HMAC_CTX_init(HMAC_CTX *ctx);
-
-        void HMAC_Init(HMAC_CTX *ctx, const void *key, int key_len,
-                      const EVP_MD *md);
-        void HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int key_len,
-                          const EVP_MD *md, ENGINE *impl);
-        void HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, int len);
-        void HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len);
-
-        void HMAC_CTX_cleanup(HMAC_CTX *ctx);
-        void HMAC_cleanup(HMAC_CTX *ctx);
 
 */
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
 openssl_hmac_sha1(const axutil_env_t *env,
              oxs_buffer_t *secret,
-             oxs_buffer_t *seed,
+             oxs_buffer_t *input,
              oxs_buffer_t *output)
 {
     HMAC_CTX ctx;
@@ -52,7 +37,7 @@
 
     HMAC_CTX_init(&ctx);
     HMAC_Init_ex(&ctx, oxs_buffer_get_data(secret, env), oxs_buffer_get_size(secret, env), EVP_sha1(), NULL);
-    HMAC_Update(&ctx, oxs_buffer_get_data(seed, env), oxs_buffer_get_size(seed, env));
+    HMAC_Update(&ctx, oxs_buffer_get_data(input, env), oxs_buffer_get_size(input, env));
     HMAC_Final(&ctx, hmac, &hashed_len);
     HMAC_cleanup(&ctx); 
     

Modified: webservices/rampart/trunk/c/src/omxmlsec/sign_ctx.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/sign_ctx.c?rev=585397&r1=585396&r2=585397&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/sign_ctx.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/sign_ctx.c Tue Oct 16 23:38:41 2007
@@ -31,6 +31,7 @@
     openssl_pkey_t *prv_key ;
     openssl_pkey_t *pub_key ;
     oxs_sign_operation_t operation;
+    oxs_key_t *secret;
 };
 
 /*Public functions*/
@@ -103,6 +104,15 @@
     }
 }
 
+AXIS2_EXTERN oxs_key_t *AXIS2_CALL
+oxs_sign_ctx_get_secret(
+    const oxs_sign_ctx_t *sign_ctx,
+    const axutil_env_t *env)
+{
+    return sign_ctx->secret;
+}
+
+
 AXIS2_EXTERN oxs_sign_operation_t AXIS2_CALL
 oxs_sign_ctx_get_operation(
     const oxs_sign_ctx_t *sign_ctx,
@@ -152,6 +162,21 @@
     sign_ctx->pub_key = pub_key;
     return AXIS2_SUCCESS;
 }
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+oxs_sign_ctx_set_secret(
+    oxs_sign_ctx_t *sign_ctx,
+    const axutil_env_t *env,
+    oxs_key_t *secret)
+{
+    if (sign_ctx->secret )
+    {
+        sign_ctx->secret = NULL;
+    }
+    sign_ctx->secret = secret;
+    return AXIS2_SUCCESS;
+}
+
 
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
 oxs_sign_ctx_set_sign_mtd_algo(