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(