You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ka...@apache.org on 2006/11/27 10:03:36 UTC
svn commit: r479553 - in /webservices/axis2/trunk/c/rampart: ./ include/
samples/client/enc_echo/data/ src/omxmlsec/ src/omxmlsec/openssl/ src/util/
test/ test/omxmlsec/ test/openssl/ test/openssl/rsa/
Author: kaushalye
Date: Mon Nov 27 01:03:35 2006
New Revision: 479553
URL: http://svn.apache.org/viewvc?view=rev&rev=479553
Log:
1. Introducing key manager
2. Introducing pkcs12 support
3. Introducing x509 certificate support
4. Changes made in the asym ctx to use pkcs12
Added:
webservices/axis2/trunk/c/rampart/include/openssl_pkcs12.h
webservices/axis2/trunk/c/rampart/include/openssl_x509.h
webservices/axis2/trunk/c/rampart/include/oxs_key_mgr.h
webservices/axis2/trunk/c/rampart/src/omxmlsec/key_mgr.c
webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/pkcs12.c
webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/x509.c
Modified:
webservices/axis2/trunk/c/rampart/build.sh
webservices/axis2/trunk/c/rampart/configure.ac
webservices/axis2/trunk/c/rampart/include/openssl_constants.h
webservices/axis2/trunk/c/rampart/include/openssl_pkey.h
webservices/axis2/trunk/c/rampart/include/oxs_asym_ctx.h
webservices/axis2/trunk/c/rampart/include/rampart_constants.h
webservices/axis2/trunk/c/rampart/include/rampart_timestamp_token.h
webservices/axis2/trunk/c/rampart/samples/client/enc_echo/data/server.enc.axis2.xml
webservices/axis2/trunk/c/rampart/src/omxmlsec/Makefile.am
webservices/axis2/trunk/c/rampart/src/omxmlsec/asym_ctx.c
webservices/axis2/trunk/c/rampart/src/omxmlsec/encryption.c
webservices/axis2/trunk/c/rampart/src/omxmlsec/key.c
webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/Makefile.am
webservices/axis2/trunk/c/rampart/src/util/rampart_encryption.c
webservices/axis2/trunk/c/rampart/src/util/rampart_handler_util.c
webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_processor.c
webservices/axis2/trunk/c/rampart/src/util/timestamp_token.c
webservices/axis2/trunk/c/rampart/src/util/username_token.c
webservices/axis2/trunk/c/rampart/test/Makefile.am
webservices/axis2/trunk/c/rampart/test/omxmlsec/test.c
webservices/axis2/trunk/c/rampart/test/openssl/Makefile.am
webservices/axis2/trunk/c/rampart/test/openssl/rsa/test_rsa.c
Modified: webservices/axis2/trunk/c/rampart/build.sh
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/build.sh?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/build.sh (original)
+++ webservices/axis2/trunk/c/rampart/build.sh Mon Nov 27 01:03:35 2006
@@ -1,5 +1,5 @@
#!/bin/bash
./autogen.sh
-./configure --prefix=${AXIS2C_HOME}/rampart --enable-static=no
+./configure --prefix=${AXIS2C_HOME} --enable-static=no
make
make install
Modified: webservices/axis2/trunk/c/rampart/configure.ac
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/configure.ac?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/configure.ac (original)
+++ webservices/axis2/trunk/c/rampart/configure.ac Mon Nov 27 01:03:35 2006
@@ -79,9 +79,11 @@
src/data/Makefile \
src/handlers/Makefile \
src/core/Makefile \
- src/util/Makefile
- test/Makefile
- test/omxmlsec/Makefile
+ src/util/Makefile \
+ test/Makefile \
+ test/omxmlsec/Makefile \
+ test/openssl/Makefile \
+ test/openssl/pkcs/Makefile
])
AC_OUTPUT
Modified: webservices/axis2/trunk/c/rampart/include/openssl_constants.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/include/openssl_constants.h?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/include/openssl_constants.h (original)
+++ webservices/axis2/trunk/c/rampart/include/openssl_constants.h Mon Nov 27 01:03:35 2006
@@ -38,6 +38,8 @@
#define OPENSSL_EVP_aes_192_cbc "EVP_aes_192_cbc"
#define OPENSSL_EVP_aes_256_cbc "EVP_aes_256_cbc"
+#define OPENSSL_RSA_ENCRYPTION "rsaEncryption"
+
#define OPENSSL_DEFAULT_IV8 "01234567"
#define OPENSSL_DEFAULT_IV16 "0123456701234567"
#define OPENSSL_DEFAULT_IV24 "012345670123456701234567"
Added: webservices/axis2/trunk/c/rampart/include/openssl_pkcs12.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/include/openssl_pkcs12.h?view=auto&rev=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/include/openssl_pkcs12.h (added)
+++ webservices/axis2/trunk/c/rampart/include/openssl_pkcs12.h Mon Nov 27 01:03:35 2006
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2003-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <openssl/rand.h>
+#include <openssl/evp.h>
+#include <openssl/pem.h>
+#include <openssl/bio.h>
+#include <openssl/rand.h>
+#include <openssl_constants.h>
+#include <openssl_pkey.h>
+#include <axis2_util.h>
+#include <openssl/pkcs12.h>
+
+/**
+ * @file
+ * @brief
+ */
+#ifndef OPENSSL_PKCS12_H
+#define OPENSSL_PKCS12_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @defgroup
+ * @ingroup
+ * @{
+ */
+
+/*Load*/
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+openssl_pkcs12_load(const axis2_env_t *env,
+ axis2_char_t *filename,
+ PKCS12 **p12);
+
+/*Parse*/
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+openssl_pkcs12_parse(const axis2_env_t *env,
+ axis2_char_t *password ,
+ PKCS12 *p12,
+ EVP_PKEY **pkey,
+ X509 **cert,
+ STACK_OF(X509) **ca);
+
+/*Free*/
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+openssl_pkcs12_free(const axis2_env_t *env,
+ PKCS12 *p12);
+
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* OPENSSL_PKCS12_H */
Modified: webservices/axis2/trunk/c/rampart/include/openssl_pkey.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/include/openssl_pkey.h?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/include/openssl_pkey.h (original)
+++ webservices/axis2/trunk/c/rampart/include/openssl_pkey.h Mon Nov 27 01:03:35 2006
@@ -38,6 +38,7 @@
* @{
*/
+/*TODO make these enums*/
#define OPENSSL_PKEY_TYPE_UNKNOWN 0
#define OPENSSL_PKEY_TYPE_PUBLIC_KEY 1
#define OPENSSL_PKEY_TYPE_PRIVATE_KEY 2
Added: webservices/axis2/trunk/c/rampart/include/openssl_x509.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/include/openssl_x509.h?view=auto&rev=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/include/openssl_x509.h (added)
+++ webservices/axis2/trunk/c/rampart/include/openssl_x509.h Mon Nov 27 01:03:35 2006
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2003-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <openssl/rand.h>
+#include <openssl/evp.h>
+#include <openssl/pem.h>
+#include <openssl/bio.h>
+#include <openssl/rand.h>
+#include <openssl_constants.h>
+#include <openssl_pkey.h>
+#include <axis2_util.h>
+#include <openssl/pkcs12.h>
+#include <oxs_error.h>
+/**
+ * @file
+ * @brief
+ */
+#ifndef OPENSSL_X509_H
+#define OPENSSL_X509_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @defgroup
+ * @ingroup
+ * @{
+ */
+
+typedef enum {
+ OPENSSL_X509_FORMAT_PEM = 0,
+ OPENSSL_X509_FORMAT_DER,
+ OPENSSL_X509_FORMAT_PKCS12
+} openssl_x509_format_t;
+
+typedef enum {
+ OPENSSL_X509_INFO_SUBJECT = 0,
+ OPENSSL_X509_INFO_ISSUER ,
+ OPENSSL_X509_INFO_VALID_FROM ,
+ OPENSSL_X509_INFO_VALID_TO ,
+ OPENSSL_X509_INFO_FINGER ,
+ OPENSSL_X509_INFO_SIGNATURE ,
+ OPENSSL_X509_INFO_VERSION ,
+ OPENSSL_X509_INFO_PUBKEY ,
+ OPENSSL_X509_INFO_PUBKEY_ALGO ,
+ OPENSSL_X509_INFO_DATA_CERT
+} openssl_x509_info_type_t;
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+openssl_x509_load_from_buffer(const axis2_env_t *env,
+ axis2_char_t *b64_encoded_buf,
+ X509 **cert);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+openssl_x509_load_from_pkcs12(const axis2_env_t *env,
+ axis2_char_t *filename,
+ axis2_char_t *password,
+ X509 **cert,
+ EVP_PKEY **pkey,
+ STACK_OF(X509) **ca);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+openssl_x509_load_certificate(const axis2_env_t *env,
+ openssl_x509_format_t format,
+ axis2_char_t *filename,
+ axis2_char_t *password,
+ X509 **cert);
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+openssl_x509_get_cert_data(const axis2_env_t *env,
+ X509 *cert);
+
+
+AXIS2_EXTERN int AXIS2_CALL
+openssl_x509_get_serial(const axis2_env_t *env,
+ X509 *cert);
+
+AXIS2_EXTERN unsigned long AXIS2_CALL
+openssl_x509_get_subject_name_hash(const axis2_env_t *env,
+ X509 *cert);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+openssl_x509_get_pubkey(const axis2_env_t *env,
+ X509 *cert,
+ EVP_PKEY **pubkey);
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+openssl_x509_get_info(const axis2_env_t *env,
+ openssl_x509_info_type_t type,
+ X509 *cert);
+
+AXIS2_EXTERN void AXIS2_CALL
+openssl_x509_print(const axis2_env_t *env,
+ X509 *cert);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* OPENSSL_X509_H */
Modified: webservices/axis2/trunk/c/rampart/include/oxs_asym_ctx.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/include/oxs_asym_ctx.h?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/include/oxs_asym_ctx.h (original)
+++ webservices/axis2/trunk/c/rampart/include/oxs_asym_ctx.h Mon Nov 27 01:03:35 2006
@@ -27,6 +27,7 @@
#include <axis2_env.h>
#include <axiom_node.h>
#include <oxs_x509_cert.h>
+#include <openssl_pkey.h>
#ifdef __cplusplus
extern "C"
@@ -39,113 +40,30 @@
*/
typedef enum {
- OXS_ASYM_CTX_FORMAT_PEM,
+ OXS_ASYM_CTX_FORMAT_PEM=0,
OXS_ASYM_CTX_FORMAT_PKCS12
}oxs_asym_ctx_format_t;
typedef enum {
- OXS_ASYM_CTX_OPERATION_PUB_ENCRYPT,
+ OXS_ASYM_CTX_OPERATION_PUB_ENCRYPT=0,
OXS_ASYM_CTX_OPERATION_PRV_DECRYPT,
OXS_ASYM_CTX_OPERATION_PUB_DECRYPT,
OXS_ASYM_CTX_OPERATION_PRV_ENCRYPT
}oxs_asym_ctx_operation_t;
- /** Type name for struct oxs_asym_ctx_ops */
- typedef struct oxs_asym_ctx_ops oxs_asym_ctx_ops_t;
- /** Type name for struct oxs_asym_ctx */
- typedef struct oxs_asym_ctx oxs_asym_ctx_t;
-
- struct oxs_asym_ctx_ops
- {
-
- axis2_status_t (AXIS2_CALL *
- free)(
- oxs_asym_ctx_t *ctx,
- const axis2_env_t *env
- );
-
- oxs_asym_ctx_operation_t (AXIS2_CALL *
- get_operation)(
- const oxs_asym_ctx_t *ctx,
- const axis2_env_t *env
- );
-
-
- axis2_char_t *(AXIS2_CALL *
- get_file_name)(
- const oxs_asym_ctx_t *ctx,
- const axis2_env_t *env
- );
-
- axis2_char_t *(AXIS2_CALL *
- get_format)(
- const oxs_asym_ctx_t *ctx,
- const axis2_env_t *env
- );
-
- oxs_x509_cert_t *(AXIS2_CALL *
- get_certificate)(
- const oxs_asym_ctx_t *ctx,
- const axis2_env_t *env
- );
-
- axis2_char_t *(AXIS2_CALL *
- get_algorithm)(
- const oxs_asym_ctx_t *ctx,
- const axis2_env_t *env
- );
-
- axis2_status_t (AXIS2_CALL *
- set_operation)(
- oxs_asym_ctx_t *ctx,
- const axis2_env_t *env,
- oxs_asym_ctx_operation_t operation
- );
-
- axis2_status_t (AXIS2_CALL *
- set_file_name)(
- oxs_asym_ctx_t *ctx,
- const axis2_env_t *env,
- axis2_char_t *file_name
- );
-
- axis2_status_t (AXIS2_CALL *
- set_format)(
- oxs_asym_ctx_t *ctx,
- const axis2_env_t *env,
- axis2_char_t *format
- );
-
- axis2_status_t (AXIS2_CALL *
- set_certificate)(
- oxs_asym_ctx_t *ctx,
- const axis2_env_t *env,
- oxs_x509_cert_t *cert
- );
-
-
- axis2_status_t (AXIS2_CALL *
- set_algorithm)(
- oxs_asym_ctx_t *ctx,
- const axis2_env_t *env,
- axis2_char_t *enc_algorithm
- );
-
-
- };
-
- struct oxs_asym_ctx
- {
- /** operations of oxs_asym_ctx */
- oxs_asym_ctx_ops_t *ops;
- };
+ typedef struct oxs_asym_ctx_t oxs_asym_ctx_t;
/*Create function*/
AXIS2_EXTERN oxs_asym_ctx_t *AXIS2_CALL
oxs_asym_ctx_create(const axis2_env_t *env);
+ /*Free*/
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ oxs_asym_ctx_free(oxs_asym_ctx_t *ctx,
+ const axis2_env_t *env);
-/**********************Wrappers******************************************/
+
+/**********************Getter functions******************************************/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
oxs_asym_ctx_free(oxs_asym_ctx_t *ctx,
@@ -155,7 +73,7 @@
oxs_asym_ctx_get_file_name(const oxs_asym_ctx_t *ctx,
const axis2_env_t *env);
-AXIS2_EXTERN axis2_char_t* AXIS2_CALL
+AXIS2_EXTERN oxs_asym_ctx_format_t AXIS2_CALL
oxs_asym_ctx_get_format(const oxs_asym_ctx_t *ctx,
const axis2_env_t *env);
@@ -167,6 +85,10 @@
oxs_asym_ctx_get_operation(const oxs_asym_ctx_t *ctx,
const axis2_env_t *env);
+AXIS2_EXTERN openssl_pkey_t* AXIS2_CALL
+oxs_asym_ctx_private_key(const oxs_asym_ctx_t *ctx,
+ const axis2_env_t *env);
+
AXIS2_EXTERN oxs_x509_cert_t* AXIS2_CALL
oxs_asym_ctx_get_certificate(const oxs_asym_ctx_t *ctx,
const axis2_env_t *env);
@@ -179,7 +101,7 @@
AXIS2_EXTERN axis2_status_t AXIS2_CALL
oxs_asym_ctx_set_format(oxs_asym_ctx_t *ctx,
const axis2_env_t *env,
- axis2_char_t *format);
+ oxs_asym_ctx_format_t format);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
oxs_asym_ctx_set_algorithm(oxs_asym_ctx_t *ctx,
@@ -196,7 +118,10 @@
const axis2_env_t *env,
oxs_x509_cert_t *certificate);
-
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+oxs_asym_ctx_set_private_key(oxs_asym_ctx_t *asym_ctx,
+ const axis2_env_t *env,
+ openssl_pkey_t *private_key);
/** @} */
#ifdef __cplusplus
}
Added: webservices/axis2/trunk/c/rampart/include/oxs_key_mgr.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/include/oxs_key_mgr.h?view=auto&rev=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/include/oxs_key_mgr.h (added)
+++ webservices/axis2/trunk/c/rampart/include/oxs_key_mgr.h Mon Nov 27 01:03:35 2006
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef OXS_KEY_MGR_H
+#define OXS_KEY_MGR_H
+
+
+/**
+ * @file oxs_encryption.h
+ * @brief
+ */
+
+#include <axis2_defines.h>
+#include <oxs_ctx.h>
+#include <oxs_asym_ctx.h>
+#include <axis2_env.h>
+#include <axis2_qname.h>
+#include <oxs_x509_cert.h>
+#include <openssl_pkey.h>
+#include <openssl_x509.h>
+#include <openssl_pkcs12.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+oxs_key_mgr_load_key(const axis2_env_t *env,
+ oxs_asym_ctx_t *ctx);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* OXS_KEY_MGR_H */
Modified: webservices/axis2/trunk/c/rampart/include/rampart_constants.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/include/rampart_constants.h?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/include/rampart_constants.h (original)
+++ webservices/axis2/trunk/c/rampart/include/rampart_constants.h Mon Nov 27 01:03:35 2006
@@ -132,6 +132,12 @@
#define RAMPART_SPR_UT_PASSWORD_TYPE "SPR_UT_passwordType"
#define RAMPART_SPR_TS_CREATED "SPR_TS_created"
#define RAMPART_SPR_TS_EXPIRES "SPR_TS_expires"
+#define RAMPART_SPR_UT_CHECKED "SPR_UT_Checked"
+#define RAMPART_SPR_TS_CHECKED "SPR_TS_Checked"
+#define RAMPART_SPR_ENC_CHECKED "SPR_ENC_Checked"
+
+#define RAMPART_YES "YES"
+#define RAMPART_NO "NO"
#ifdef __cplusplus
}
Modified: webservices/axis2/trunk/c/rampart/include/rampart_timestamp_token.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/include/rampart_timestamp_token.h?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/include/rampart_timestamp_token.h (original)
+++ webservices/axis2/trunk/c/rampart/include/rampart_timestamp_token.h Mon Nov 27 01:03:35 2006
@@ -69,6 +69,7 @@
axis2_status_t (AXIS2_CALL *
validate)(rampart_timestamp_token_t *timestamp_token,
const axis2_env_t *env,
+ axis2_msg_ctx_t *msg_ctx,
axiom_node_t *ts_node,
axis2_array_list_t *sub_codes);
};
@@ -98,8 +99,8 @@
#define RAMPART_TIMESTAMP_TOKEN_BUILD(timestamp_token, env, ctx, sec_node, sec_ns_obj, ttl) \
((timestamp_token)->ops->build(timestamp_token, env, ctx, sec_node, sec_ns_obj, ttl))
-#define RAMPART_TIMESTAMP_TOKEN_VALIDATE(timestamp_token, env, ts_node, sub_codes) \
- ((timestamp_token)->ops->validate(timestamp_token, env, ts_node, sub_codes))
+#define RAMPART_TIMESTAMP_TOKEN_VALIDATE(timestamp_token, env, msg_ctx, ts_node, sub_codes) \
+ ((timestamp_token)->ops->validate(timestamp_token, env, msg_ctx, ts_node, sub_codes))
/** @} */
#ifdef __cplusplus
Modified: webservices/axis2/trunk/c/rampart/samples/client/enc_echo/data/server.enc.axis2.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/samples/client/enc_echo/data/server.enc.axis2.xml?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/samples/client/enc_echo/data/server.enc.axis2.xml (original)
+++ webservices/axis2/trunk/c/rampart/samples/client/enc_echo/data/server.enc.axis2.xml Mon Nov 27 01:03:35 2006
@@ -31,6 +31,7 @@
<parameter name="InflowSecurity">
<action>
+ <items>Encrypt</items>
<decryptionPropFile>/home/kau/keys/rsakey.pem</decryptionPropFile>
</action>
</parameter>
Modified: webservices/axis2/trunk/c/rampart/src/omxmlsec/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/omxmlsec/Makefile.am?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/Makefile.am (original)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/Makefile.am Mon Nov 27 01:03:35 2006
@@ -5,7 +5,7 @@
token_encrypted_data.c token_encryption_method.c token_cipher_value.c \
token_cipher_data.c token_key_name.c token_key_info.c token_binary_security_token.c \
token_reference_list.c token_data_reference.c token_encrypted_key.c iv.c xml_encryption.c encryption.c\
- utility.c asym_ctx.c x509_cert.c
+ utility.c asym_ctx.c x509_cert.c key_mgr.c
libomxmlsec_la_LIBADD = -lssl\
../../../util/src/libaxis2_util.la \
Modified: webservices/axis2/trunk/c/rampart/src/omxmlsec/asym_ctx.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/omxmlsec/asym_ctx.c?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/asym_ctx.c (original)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/asym_ctx.c Mon Nov 27 01:03:35 2006
@@ -20,428 +20,210 @@
#include <oxs_x509_cert.h>
#include <oxs_error.h>
-typedef struct oxs_asym_ctx_impl
+struct oxs_asym_ctx_t
{
- oxs_asym_ctx_t asym_ctx;
-
axis2_char_t *file_name;
- axis2_char_t *format;
axis2_char_t *algorithm;
oxs_asym_ctx_operation_t operation;
+ oxs_asym_ctx_format_t format;
oxs_x509_cert_t *certificate;
-}
-oxs_asym_ctx_impl_t;
+ openssl_pkey_t *private_key;
+};
-/** Interface to implementation conversion macro */
-#define AXIS2_INTF_TO_IMPL(oxs_asym_ctx) ((oxs_asym_ctx_impl_t *)oxs_asym_ctx)
-
-/******** function headers ***************/
/*private functions*/
-static void
-oxs_asym_ctx_init_ops(
- oxs_asym_ctx_t *asym_ctx);
-
-/*Public functions*/
-axis2_status_t AXIS2_CALL
-oxs_asym_ctx_free_impl(
- oxs_asym_ctx_t *asym_ctx,
- const axis2_env_t *env
-);
axis2_char_t *AXIS2_CALL
-oxs_asym_ctx_get_file_name_impl(
- const oxs_asym_ctx_t *asym_ctx,
- const axis2_env_t *env);
-
-axis2_char_t *AXIS2_CALL
-oxs_asym_ctx_get_format_impl(
- const oxs_asym_ctx_t *asym_ctx,
- const axis2_env_t *env);
-
-axis2_char_t *AXIS2_CALL
-oxs_asym_ctx_get_algorithm_impl(
- const oxs_asym_ctx_t *asym_ctx,
- const axis2_env_t *env);
-
-oxs_asym_ctx_operation_t AXIS2_CALL
-oxs_asym_ctx_get_operation_impl(
+oxs_asym_ctx_get_file_name(
const oxs_asym_ctx_t *asym_ctx,
- const axis2_env_t *env);
-
-oxs_x509_cert_t *AXIS2_CALL
-oxs_asym_ctx_get_certificate_impl(
- const oxs_asym_ctx_t *asym_ctx,
- const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-oxs_asym_ctx_set_file_name_impl(
- oxs_asym_ctx_t *asym_ctx,
- const axis2_env_t *env,
- axis2_char_t *file_name);
-
-axis2_status_t AXIS2_CALL
-oxs_asym_ctx_set_format_impl(
- oxs_asym_ctx_t *asym_ctx,
- const axis2_env_t *env,
- axis2_char_t *file_name);
-
-axis2_status_t AXIS2_CALL
-oxs_asym_ctx_set_algorithm_impl(
- oxs_asym_ctx_t *asym_ctx,
- const axis2_env_t *env,
- axis2_char_t *algorithm);
-
-axis2_status_t AXIS2_CALL
-oxs_asym_ctx_set_operation_impl(
- oxs_asym_ctx_t *asym_ctx,
- const axis2_env_t *env,
- oxs_asym_ctx_operation_t operation);
-
-axis2_status_t AXIS2_CALL
-oxs_asym_ctx_set_certificate_impl(
- oxs_asym_ctx_t *asym_ctx,
- const axis2_env_t *env,
- oxs_x509_cert_t *certificate);
-
-/******************** end of function headers *****************/
-
+ const axis2_env_t *env)
+{
+ return asym_ctx->file_name;
+}
-axis2_char_t *AXIS2_CALL
-oxs_asym_ctx_get_file_name_impl(
+oxs_asym_ctx_format_t AXIS2_CALL
+oxs_asym_ctx_get_format(
const oxs_asym_ctx_t *asym_ctx,
const axis2_env_t *env)
{
- oxs_asym_ctx_impl_t *asym_ctx_impl = NULL;
- AXIS2_ENV_CHECK(env, NULL);
- asym_ctx_impl = AXIS2_INTF_TO_IMPL(asym_ctx);
-
- return asym_ctx_impl->file_name;
+ return asym_ctx->format;
}
axis2_char_t *AXIS2_CALL
-oxs_asym_ctx_get_format_impl(
+oxs_asym_ctx_get_algorithm(
const oxs_asym_ctx_t *asym_ctx,
const axis2_env_t *env)
{
- oxs_asym_ctx_impl_t *asym_ctx_impl = NULL;
- AXIS2_ENV_CHECK(env, NULL);
- asym_ctx_impl = AXIS2_INTF_TO_IMPL(asym_ctx);
-
- return asym_ctx_impl->format;
+ return asym_ctx->algorithm;
}
-axis2_char_t *AXIS2_CALL
-oxs_asym_ctx_get_algorithm_impl(
+oxs_asym_ctx_operation_t AXIS2_CALL
+oxs_asym_ctx_get_operation(
const oxs_asym_ctx_t *asym_ctx,
const axis2_env_t *env)
{
- oxs_asym_ctx_impl_t *asym_ctx_impl = NULL;
- AXIS2_ENV_CHECK(env, NULL);
- asym_ctx_impl = AXIS2_INTF_TO_IMPL(asym_ctx);
-
- return asym_ctx_impl->algorithm;
+ return asym_ctx->operation;
}
-oxs_asym_ctx_operation_t AXIS2_CALL
-oxs_asym_ctx_get_operation_impl(
+openssl_pkey_t *AXIS2_CALL
+oxs_asym_ctx_get_private_key(
const oxs_asym_ctx_t *asym_ctx,
const axis2_env_t *env)
{
- oxs_asym_ctx_impl_t *asym_ctx_impl = NULL;
- /*AXIS2_ENV_CHECK(env, NULL);*/
- asym_ctx_impl = AXIS2_INTF_TO_IMPL(asym_ctx);
- return asym_ctx_impl->operation;
+ return asym_ctx->private_key;
}
oxs_x509_cert_t *AXIS2_CALL
-oxs_asym_ctx_get_certificate_impl(
+oxs_asym_ctx_get_certificate(
const oxs_asym_ctx_t *asym_ctx,
const axis2_env_t *env)
{
- oxs_asym_ctx_impl_t *asym_ctx_impl = NULL;
- AXIS2_ENV_CHECK(env, NULL);
- asym_ctx_impl = AXIS2_INTF_TO_IMPL(asym_ctx);
- return asym_ctx_impl->certificate;
+ return asym_ctx->certificate;
}
axis2_status_t AXIS2_CALL
-oxs_asym_ctx_set_file_name_impl(
+oxs_asym_ctx_set_file_name(
oxs_asym_ctx_t *asym_ctx,
const axis2_env_t *env,
axis2_char_t *file_name)
{
- oxs_asym_ctx_impl_t *oxs_asym_ctx_impl = NULL;
-
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK(env->error, file_name, AXIS2_FAILURE);
- oxs_asym_ctx_impl = AXIS2_INTF_TO_IMPL(asym_ctx);
- if (oxs_asym_ctx_impl->file_name)
+ if (asym_ctx->file_name)
{
- AXIS2_FREE(env->allocator, oxs_asym_ctx_impl->file_name);
- oxs_asym_ctx_impl->file_name = NULL;
+ AXIS2_FREE(env->allocator, asym_ctx->file_name);
+ asym_ctx->file_name = NULL;
}
- oxs_asym_ctx_impl->file_name = AXIS2_STRDUP(file_name, env);
+ asym_ctx->file_name = AXIS2_STRDUP(file_name, env);
return AXIS2_SUCCESS;
}
axis2_status_t AXIS2_CALL
-oxs_asym_ctx_set_format_impl(
+oxs_asym_ctx_set_format(
oxs_asym_ctx_t *asym_ctx,
const axis2_env_t *env,
- axis2_char_t *format)
+ oxs_asym_ctx_format_t format)
{
- oxs_asym_ctx_impl_t *oxs_asym_ctx_impl = NULL;
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK(env->error, format, AXIS2_FAILURE);
- oxs_asym_ctx_impl = AXIS2_INTF_TO_IMPL(asym_ctx);
-
- if (oxs_asym_ctx_impl->format)
- {
- AXIS2_FREE(env->allocator, oxs_asym_ctx_impl->format);
- oxs_asym_ctx_impl->format = NULL;
- }
- oxs_asym_ctx_impl->format = AXIS2_STRDUP(format, env);
+ asym_ctx->format = format;
return AXIS2_SUCCESS;
}
axis2_status_t AXIS2_CALL
-oxs_asym_ctx_set_algorithm_impl(
+oxs_asym_ctx_set_algorithm(
oxs_asym_ctx_t *asym_ctx,
const axis2_env_t *env,
axis2_char_t *algorithm)
{
- oxs_asym_ctx_impl_t *oxs_asym_ctx_impl = NULL;
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK(env->error, algorithm, AXIS2_FAILURE);
- oxs_asym_ctx_impl = AXIS2_INTF_TO_IMPL(asym_ctx);
-
- if (oxs_asym_ctx_impl->algorithm)
+ if (asym_ctx->algorithm)
{
- AXIS2_FREE(env->allocator, oxs_asym_ctx_impl->algorithm);
- oxs_asym_ctx_impl->algorithm = NULL;
+ AXIS2_FREE(env->allocator, asym_ctx->algorithm);
+ asym_ctx->algorithm = NULL;
}
- oxs_asym_ctx_impl->algorithm = AXIS2_STRDUP(algorithm, env);
+ asym_ctx->algorithm = AXIS2_STRDUP(algorithm, env);
return AXIS2_SUCCESS;
}
axis2_status_t AXIS2_CALL
-oxs_asym_ctx_set_operation_impl(
+oxs_asym_ctx_set_operation(
oxs_asym_ctx_t *asym_ctx,
const axis2_env_t *env,
oxs_asym_ctx_operation_t operation)
{
- oxs_asym_ctx_impl_t *oxs_asym_ctx_impl = NULL;
-
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- oxs_asym_ctx_impl = AXIS2_INTF_TO_IMPL(asym_ctx);
- oxs_asym_ctx_impl->operation = operation;
+ asym_ctx->operation = operation;
return AXIS2_SUCCESS;
}
axis2_status_t AXIS2_CALL
-oxs_asym_ctx_set_certificate_impl(
+oxs_asym_ctx_set_certificate(
oxs_asym_ctx_t *asym_ctx,
const axis2_env_t *env,
oxs_x509_cert_t *certificate)
{
- oxs_asym_ctx_impl_t *oxs_asym_ctx_impl = NULL;
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK(env->error, certificate, AXIS2_FAILURE);
- oxs_asym_ctx_impl = AXIS2_INTF_TO_IMPL(asym_ctx);
-
- if (oxs_asym_ctx_impl->certificate)
+ if (asym_ctx->certificate)
{
- oxs_x509_cert_free(oxs_asym_ctx_impl->certificate, env);
- oxs_asym_ctx_impl->certificate = NULL;
+ oxs_x509_cert_free(asym_ctx->certificate, env);
+ asym_ctx->certificate = NULL;
}
- oxs_asym_ctx_impl->certificate = certificate;
+ asym_ctx->certificate = certificate;
return AXIS2_SUCCESS;
}
+axis2_status_t AXIS2_CALL
+oxs_asym_ctx_set_private_key(
+ oxs_asym_ctx_t *asym_ctx,
+ const axis2_env_t *env,
+ openssl_pkey_t *private_key)
+{
-static void
-oxs_asym_ctx_init_ops(
- oxs_asym_ctx_t *asym_ctx)
-{
- asym_ctx->ops->get_file_name = oxs_asym_ctx_get_file_name_impl;
- asym_ctx->ops->get_format = oxs_asym_ctx_get_format;
- asym_ctx->ops->get_algorithm = oxs_asym_ctx_get_algorithm_impl;
- asym_ctx->ops->get_operation = oxs_asym_ctx_get_operation_impl;
- asym_ctx->ops->get_certificate = oxs_asym_ctx_get_certificate_impl;
- asym_ctx->ops->set_file_name = oxs_asym_ctx_set_file_name_impl;
- asym_ctx->ops->set_format = oxs_asym_ctx_set_format;
- asym_ctx->ops->set_algorithm = oxs_asym_ctx_set_algorithm_impl;
- asym_ctx->ops->set_operation = oxs_asym_ctx_set_operation_impl;
- asym_ctx->ops->set_certificate = oxs_asym_ctx_set_certificate_impl;
- asym_ctx->ops->free = oxs_asym_ctx_free_impl;
+ if (asym_ctx->private_key)
+ {
+ OPENSSL_PKEY_FREE(asym_ctx->private_key, env);
+ asym_ctx->private_key = NULL;
+ }
+ asym_ctx->private_key = private_key;
+ return AXIS2_SUCCESS;
}
AXIS2_EXTERN oxs_asym_ctx_t *AXIS2_CALL
oxs_asym_ctx_create(const axis2_env_t *env)
{
- oxs_asym_ctx_impl_t *asym_ctx_impl = NULL;
+ oxs_asym_ctx_t *asym_ctx = NULL;
AXIS2_ENV_CHECK(env, NULL);
- asym_ctx_impl = AXIS2_MALLOC(env->allocator, sizeof(oxs_asym_ctx_impl_t));
- if (!asym_ctx_impl)
- {
- AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
- return NULL;
- }
-
- asym_ctx_impl->file_name= NULL;
- asym_ctx_impl->format= NULL;
- asym_ctx_impl->algorithm = NULL;
- asym_ctx_impl->operation = -1;
- asym_ctx_impl->certificate = NULL;
-
- asym_ctx_impl->asym_ctx.ops = AXIS2_MALLOC(env->allocator, sizeof(oxs_asym_ctx_ops_t));
- if (!asym_ctx_impl->asym_ctx.ops)
+ asym_ctx = AXIS2_MALLOC(env->allocator, sizeof(oxs_asym_ctx_t));
+ if (!asym_ctx)
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
- oxs_asym_ctx_free(&(asym_ctx_impl->asym_ctx), env);
return NULL;
}
- oxs_asym_ctx_init_ops(&(asym_ctx_impl->asym_ctx));
-
- return &(asym_ctx_impl->asym_ctx);
-
+ asym_ctx->file_name= NULL;
+ asym_ctx->format= -1;
+ asym_ctx->algorithm = NULL;
+ asym_ctx->operation = -1;
+ asym_ctx->certificate = NULL;
+
+ return asym_ctx;
}
axis2_status_t AXIS2_CALL
-oxs_asym_ctx_free_impl(oxs_asym_ctx_t *asym_ctx,
+oxs_asym_ctx_free(oxs_asym_ctx_t *asym_ctx,
const axis2_env_t *env)
{
- oxs_asym_ctx_impl_t *asym_ctx_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- asym_ctx_impl = AXIS2_INTF_TO_IMPL(asym_ctx);
-
- if (asym_ctx_impl->file_name)
+ if (asym_ctx->file_name)
{
- AXIS2_FREE(env->allocator, asym_ctx_impl->file_name);
- asym_ctx_impl->file_name = NULL;
+ AXIS2_FREE(env->allocator, asym_ctx->file_name);
+ asym_ctx->file_name = NULL;
}
- if (asym_ctx_impl->format)
+ if (asym_ctx->algorithm)
{
- AXIS2_FREE(env->allocator, asym_ctx_impl->format);
- asym_ctx_impl->format = NULL;
+ AXIS2_FREE(env->allocator, asym_ctx->algorithm);
+ asym_ctx->algorithm = NULL;
}
- if (asym_ctx_impl->algorithm)
+ if (asym_ctx->certificate)
{
- AXIS2_FREE(env->allocator, asym_ctx_impl->algorithm);
- asym_ctx_impl->algorithm = NULL;
+ oxs_x509_cert_free(asym_ctx->certificate, env);
+ asym_ctx->certificate = NULL;
}
- if (asym_ctx_impl->certificate)
- {
- oxs_x509_cert_free(asym_ctx_impl->certificate, env);
- asym_ctx_impl->certificate = NULL;
- }
-
- AXIS2_FREE(env->allocator, asym_ctx_impl);
- asym_ctx_impl = NULL;
+ AXIS2_FREE(env->allocator, asym_ctx);
+ asym_ctx = NULL;
return AXIS2_SUCCESS;
}
-/**********************Wrappers******************************************/
-
-AXIS2_EXTERN axis2_status_t AXIS2_CALL
-oxs_asym_ctx_free(oxs_asym_ctx_t *ctx,
- const axis2_env_t *env)
-{
- return ctx->ops->free(ctx, env);
-}
-
-AXIS2_EXTERN axis2_char_t* AXIS2_CALL
-oxs_asym_ctx_get_file_name(const oxs_asym_ctx_t *ctx,
- const axis2_env_t *env)
-{
- return ctx->ops->get_file_name(ctx, env);
-}
-
-AXIS2_EXTERN axis2_char_t* AXIS2_CALL
-oxs_asym_ctx_get_format(const oxs_asym_ctx_t *ctx,
- const axis2_env_t *env)
-{
- return ctx->ops->get_format(ctx, env);
-}
-
-AXIS2_EXTERN axis2_char_t* AXIS2_CALL
-oxs_asym_ctx_get_algorithm(const oxs_asym_ctx_t *ctx,
- const axis2_env_t *env)
-{
- return ctx->ops->get_algorithm(ctx, env);
-}
-
-AXIS2_EXTERN oxs_asym_ctx_operation_t AXIS2_CALL
-oxs_asym_ctx_get_operation(const oxs_asym_ctx_t *ctx,
- const axis2_env_t *env)
-{
- return ctx->ops->get_operation(ctx, env);
-}
-
-AXIS2_EXTERN oxs_x509_cert_t* AXIS2_CALL
-oxs_asym_ctx_get_certificate(const oxs_asym_ctx_t *ctx,
- const axis2_env_t *env)
-{
- return ctx->ops->get_certificate(ctx, env);
-}
-
-AXIS2_EXTERN axis2_status_t AXIS2_CALL
-oxs_asym_ctx_set_file_name(oxs_asym_ctx_t *ctx,
- const axis2_env_t *env,
- axis2_char_t *file_name)
-{
- return ctx->ops->set_file_name(ctx, env,file_name );
-}
-
-AXIS2_EXTERN axis2_status_t AXIS2_CALL
-oxs_asym_ctx_set_format(oxs_asym_ctx_t *ctx,
- const axis2_env_t *env,
- axis2_char_t *format)
-{
- return ctx->ops->set_format(ctx, env,format );
-}
-
-AXIS2_EXTERN axis2_status_t AXIS2_CALL
-oxs_asym_ctx_set_algorithm(oxs_asym_ctx_t *ctx,
- const axis2_env_t *env,
- axis2_char_t *algorithm)
-{
- return ctx->ops->set_algorithm(ctx, env, algorithm);
-}
-
-AXIS2_EXTERN axis2_status_t AXIS2_CALL
-oxs_asym_ctx_set_operation(oxs_asym_ctx_t *ctx,
- const axis2_env_t *env,
- oxs_asym_ctx_operation_t operation)
-{
- return ctx->ops->set_operation(ctx, env,operation );
-}
-
-AXIS2_EXTERN axis2_status_t AXIS2_CALL
-oxs_asym_ctx_set_certificate(oxs_asym_ctx_t *ctx,
- const axis2_env_t *env,
- oxs_x509_cert_t *certificate)
-{
- return ctx->ops->set_certificate(ctx, env, certificate);
-}
Modified: webservices/axis2/trunk/c/rampart/src/omxmlsec/encryption.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/omxmlsec/encryption.c?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/encryption.c (original)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/encryption.c Mon Nov 27 01:03:35 2006
@@ -166,6 +166,7 @@
/*1. Try to get the pkey from the asy_ctx*/
+
/*2. If not try to load the key from the dec_prop_file*/
file_name = oxs_asym_ctx_get_file_name(ctx, env);
pkey = openssl_pkey_create(env);
Modified: webservices/axis2/trunk/c/rampart/src/omxmlsec/key.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/omxmlsec/key.c?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/key.c (original)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/key.c Mon Nov 27 01:03:35 2006
@@ -31,8 +31,6 @@
oxs_buffer_t *buf;
axis2_char_t *name;
int usage;
- /*int size;
- unsigned char *data;*/
}
oxs_key_impl_t;
Added: webservices/axis2/trunk/c/rampart/src/omxmlsec/key_mgr.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/omxmlsec/key_mgr.c?view=auto&rev=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/key_mgr.c (added)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/key_mgr.c Mon Nov 27 01:03:35 2006
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2003-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>
+#include <axis2_util.h>
+#include <oxs_error.h>
+#include <oxs_key_mgr.h>
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+oxs_key_mgr_load_key(const axis2_env_t *env,
+ oxs_asym_ctx_t *ctx)
+{
+ axis2_char_t *filename = NULL;
+ axis2_char_t *password = "1234";
+ axis2_status_t status = AXIS2_FAILURE;
+ openssl_x509_format_t format;
+ openssl_pkey_t *open_pkey = NULL;
+ oxs_x509_cert_t *oxs_cert = NULL;
+
+ X509 *cert = NULL;
+ STACK_OF(X509) *ca = NULL;
+ EVP_PKEY *pkey = NULL;
+
+ /*Get file to be loaded. Can be either in PEM or PKCS12 format*/
+ filename = oxs_asym_ctx_get_file_name(ctx, env);
+ if(!filename){
+ return AXIS2_FAILURE;
+ }
+
+ if(OXS_ASYM_CTX_FORMAT_PEM == oxs_asym_ctx_get_format(ctx, env)){
+ format = OPENSSL_X509_FORMAT_PEM;
+ }else if(OXS_ASYM_CTX_FORMAT_PKCS12 == oxs_asym_ctx_get_format(ctx, env)){
+ format = OPENSSL_X509_FORMAT_PKCS12;
+ status = openssl_x509_load_from_pkcs12(env, filename, password, &cert, &pkey, &ca);
+
+ }
+
+ /**
+ * Now we have X509 and/or Pkey. If the format is PKCS12, then we have a chance to get both certificate and pkey.
+ * If the format is PEM only, we might have only the pkey.
+ */
+
+ /*Alright if the pkey is available, populate the openssl_pkey*/
+ if(pkey){
+ open_pkey = openssl_pkey_create(env);
+ OPENSSL_PKEY_POPULATE(open_pkey, env, pkey, filename, OPENSSL_PKEY_TYPE_PRIVATE_KEY);
+
+ }
+ /*If the X509 certificate is available, populate oxs_x509_cert*/
+ if(cert){
+ axis2_char_t *serial = NULL;
+ int serial_num = 0;
+
+ oxs_cert = oxs_x509_cert_create(env);
+ oxs_x509_cert_set_data(oxs_cert, env, openssl_x509_get_cert_data(env, cert));
+ oxs_x509_cert_set_date(oxs_cert, env, openssl_x509_get_info(env, OPENSSL_X509_INFO_VALID_TO ,cert));
+ oxs_x509_cert_set_issuer(oxs_cert, env, openssl_x509_get_info(env, OPENSSL_X509_INFO_ISSUER ,cert));
+ oxs_x509_cert_set_subject(oxs_cert, env, openssl_x509_get_info(env, OPENSSL_X509_INFO_SUBJECT ,cert));
+ oxs_x509_cert_set_fingerprint(oxs_cert, env, openssl_x509_get_info(env, OPENSSL_X509_INFO_FINGER,cert));
+ serial_num = openssl_x509_get_serial(env, cert);
+ sprintf(serial, "%d" ,serial_num);
+ oxs_x509_cert_set_serial_number(oxs_cert, env, serial);
+ /*TODO Subject hash*/
+
+
+ }
+
+ return AXIS2_SUCCESS;
+}
Modified: webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/Makefile.am?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/Makefile.am (original)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/Makefile.am Mon Nov 27 01:03:35 2006
@@ -1,5 +1,5 @@
noinst_LTLIBRARIES = libomopenssl.la
-libomopenssl_la_SOURCES = cipher_ctx.c crypt.c rsa.c pkey.c util.c cipher_property.c digest.c
+libomopenssl_la_SOURCES = cipher_ctx.c crypt.c rsa.c pkey.c util.c cipher_property.c digest.c x509.c pkcs12.c
libomopenssl_la_LIBADD = -lssl\
../../../../util/src/libaxis2_util.la \
Added: webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/pkcs12.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/pkcs12.c?view=auto&rev=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/pkcs12.c (added)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/pkcs12.c Mon Nov 27 01:03:35 2006
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2003-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>
+#include <axis2_util.h>
+#include <openssl_rsa.h>
+#include <openssl/rand.h>
+#include <openssl/evp.h>
+#include <openssl/pem.h>
+#include <openssl/bio.h>
+#include <openssl/rand.h>
+#include <oxs_error.h>
+#include <openssl_pkcs12.h>
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+openssl_pkcs12_load(const axis2_env_t *env,
+ axis2_char_t *filename,
+ PKCS12 **p12)
+{
+ FILE *fp = NULL;
+
+ SSLeay_add_all_algorithms();
+ ERR_load_crypto_strings();
+ if (!(fp = fopen(filename, "rb"))) {
+ fprintf(stderr, "Error opening file %s\n", filename);
+ return AXIS2_FAILURE;
+ }
+ /*Load pkcs store*/
+ *p12 = d2i_PKCS12_fp(fp, NULL);
+ fclose (fp);
+
+ if (!p12) {
+ fprintf(stderr, "Error reading PKCS#12 file\n");
+ ERR_print_errors_fp(stderr);
+ return AXIS2_FAILURE;
+ }
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+openssl_pkcs12_parse(const axis2_env_t *env,
+ axis2_char_t *password ,
+ PKCS12 *p12,
+ EVP_PKEY **pkey,
+ X509 **cert,
+ STACK_OF(X509) **ca)
+{
+ /*Parse the pkcs store*/
+ if (!PKCS12_parse(p12, password, pkey, cert, ca)) {
+ fprintf(stderr, "Error parsing PKCS#12 file\n");
+ ERR_print_errors_fp(stderr);
+ return AXIS2_FAILURE;
+ }
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+openssl_pkcs12_free(const axis2_env_t *env,
+ PKCS12 *p12)
+{
+
+ PKCS12_free(p12);
+ return AXIS2_SUCCESS;
+}
+
+
Added: webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/x509.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/x509.c?view=auto&rev=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/x509.c (added)
+++ webservices/axis2/trunk/c/rampart/src/omxmlsec/openssl/x509.c Mon Nov 27 01:03:35 2006
@@ -0,0 +1,307 @@
+/*
+ * Copyright 2003-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>
+#include <axis2_util.h>
+#include <openssl_rsa.h>
+#include <openssl/rand.h>
+#include <openssl/evp.h>
+#include <openssl/pem.h>
+#include <openssl/bio.h>
+#include <openssl/rand.h>
+#include <oxs_buffer.h>
+#include <oxs_error.h>
+#include <openssl_pkcs12.h>
+#include <openssl_x509.h>
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+openssl_x509_load_from_buffer(const axis2_env_t *env,
+ axis2_char_t *b64_encoded_buf,
+ X509 **cert)
+{
+ unsigned char *buff = NULL;
+ BIO *mem = NULL;
+ int ilen = 0;
+
+ /*First we need to base64 decode*/
+#if 0
+ int decoded_len = -1;
+
+ buff = AXIS2_MALLOC(env->allocator, axis2_base64_decode_len(b64_encoded_buf));
+ ilen = axis2_strlen(b64_encoded_buf);
+ decoded_len = axis2_base64_decode_binary(buff, b64_encoded_buf );
+ if (decoded_len < 0)
+ {
+ /*oxs_error(ERROR_LOCATION, OXS_ERROR_DEFAULT,
+ "axis2_base64_decode_binary failed");*/
+ return AXIS2_FAILURE;
+ }
+#else
+ EVP_ENCODE_CTX ctx;
+ int len = 0;
+ int ret = 0;
+
+ buff = AXIS2_MALLOC(env->allocator, axis2_base64_decode_len(b64_encoded_buf));
+ ilen = axis2_strlen(b64_encoded_buf);
+ EVP_DecodeInit(&ctx);
+ EVP_DecodeUpdate(&ctx, (unsigned char*)buff, &len,
+ (unsigned char*)b64_encoded_buf, ilen);
+ EVP_DecodeFinal(&ctx, (unsigned char*)buff, &ret);
+ ret += len;
+#endif
+ if ((mem = BIO_new_mem_buf(buff, ilen)) == NULL)
+ {
+ /*oxs_error(ERROR_LOCATION, OXS_ERROR_DEFAULT,
+ "BIO memeory allocation failure");*/
+ return AXIS2_FAILURE;
+ }
+
+ *cert = d2i_X509_bio(mem, NULL);
+ BIO_free(mem);
+
+ if (*cert == NULL){
+ /*oxs_error(ERROR_LOCATION, OXS_ERROR_DEFAULT,
+ "Certificate is NULL");*/
+ return AXIS2_FAILURE;
+ }
+
+ return AXIS2_SUCCESS;
+
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+openssl_x509_load_from_pkcs12(const axis2_env_t *env,
+ axis2_char_t *filename,
+ axis2_char_t *password,
+ X509 **cert,
+ EVP_PKEY **pkey,
+ STACK_OF(X509) **ca)
+{
+ PKCS12 *p12 = NULL;
+ axis2_status_t status = AXIS2_FAILURE;
+
+ /*Load*/
+ status = openssl_pkcs12_load(env, filename, &p12);
+ if(AXIS2_FAILURE == status){
+ return AXIS2_FAILURE;
+ }
+ /*Parse*/
+ status = openssl_pkcs12_parse(env, password, p12, pkey,
+ cert,
+ ca);
+ if(AXIS2_FAILURE == status){
+ return AXIS2_FAILURE;
+ }
+ /*Free*/
+ status = openssl_pkcs12_free(env, p12);
+ if(AXIS2_FAILURE == status){
+ return AXIS2_FAILURE;
+ }
+
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+openssl_x509_load_certificate(const axis2_env_t *env,
+ openssl_x509_format_t format,
+ axis2_char_t *filename,
+ axis2_char_t *password,
+ X509 **cert)
+{
+ axis2_status_t status = AXIS2_FAILURE;
+
+ if(OPENSSL_X509_FORMAT_PEM == format){
+ /*Load from PEM*/
+
+ }else if(OPENSSL_X509_FORMAT_PKCS12 == format){
+ /*Load from PKCS12*/
+ EVP_PKEY *pkey = NULL;
+ STACK_OF(X509) *ca = NULL;
+ status = openssl_x509_load_from_pkcs12(env, filename, password, cert, &pkey, &ca);
+ if(AXIS2_FAILURE == status){
+ return AXIS2_FAILURE;
+ }
+ }else if(OPENSSL_X509_FORMAT_DER == format){
+ /*Load from DER*/
+
+ }else{
+ /*Unspported*/
+ }
+ return AXIS2_SUCCESS;
+}
+
+
+/*
+ * Here we take data in btwn
+ -----BEGIN CERTIFICATE-----
+ -----END CERTIFICATE-----
+ */
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+openssl_x509_get_cert_data(const axis2_env_t *env,
+ X509 *cert)
+{
+ axis2_char_t *unformatted = NULL;
+ axis2_char_t *core_tail = NULL;
+ axis2_char_t *core = NULL;
+ axis2_char_t *res = NULL;
+
+ unformatted = openssl_x509_get_info(env, OPENSSL_X509_INFO_DATA_CERT, cert);
+ core_tail = axis2_strstr(unformatted, "\n");
+ res = axis2_strstr(core_tail,"-----END");
+ res[0] = '\0';
+ core = (axis2_char_t*)axis2_strdup(core_tail,env);
+ return core;
+}
+
+
+AXIS2_EXTERN int AXIS2_CALL
+openssl_x509_get_serial(const axis2_env_t *env,
+ X509 *cert)
+{
+ axis2_char_t *serial = NULL;
+ int no = 0;
+ serial = (axis2_char_t*)i2s_ASN1_INTEGER(NULL,X509_get_serialNumber(cert));
+ no = atoi(serial);
+
+ return no;
+}
+
+AXIS2_EXTERN unsigned long AXIS2_CALL
+openssl_x509_get_subject_name_hash(const axis2_env_t *env,
+ X509 *cert)
+{
+ unsigned long l = 0;
+ l=X509_subject_name_hash(cert);
+ return l;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+openssl_x509_get_pubkey(const axis2_env_t *env,
+ X509 *cert,
+ EVP_PKEY **pubkey)
+{
+ *pubkey = X509_get_pubkey(cert);
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+openssl_x509_get_info(const axis2_env_t *env,
+ openssl_x509_info_type_t type,
+ X509 *cert)
+{
+ BIO *out = NULL;
+ unsigned char *data= NULL;
+ axis2_char_t *result = NULL;
+ int n = 0;
+
+ out = BIO_new(BIO_s_mem());
+ if(OPENSSL_X509_INFO_SUBJECT==type){
+ X509_NAME_print_ex(out, X509_get_subject_name(cert), 0, 0);
+ }else if(OPENSSL_X509_INFO_ISSUER == type){
+ X509_NAME_print_ex(out, X509_get_subject_name(cert), 0, 0);
+ }else if(OPENSSL_X509_INFO_VALID_FROM == type){
+ ASN1_TIME_print(out, X509_get_notBefore(cert));
+ }else if(OPENSSL_X509_INFO_VALID_TO == type){
+ ASN1_TIME_print(out, X509_get_notAfter(cert));
+ }else if(OPENSSL_X509_INFO_DATA_CERT == type){
+ if(!PEM_write_bio_X509(out, cert)){
+ return NULL;
+ }
+ }else if(OPENSSL_X509_INFO_FINGER == type){
+ int j = 0;
+ const EVP_MD *digest = NULL;
+ unsigned char md[EVP_MAX_MD_SIZE];
+ unsigned int _n = 0;
+
+ digest = EVP_sha1();/*If we use EVP_md5(); here we can get the digest from md5. */
+ if(X509_digest(cert,digest,md,&_n))
+ {
+ BIO_printf(out, "%s:", OBJ_nid2sn(EVP_MD_type(digest)));
+ for (j=0; j<(int)_n; j++)
+ {
+ BIO_printf (out, "%02X",md[j]);
+ if (j+1 != (int)_n) BIO_printf(out,":");
+ }
+ }
+ }else if(OPENSSL_X509_INFO_SIGNATURE == type){
+ int i = 0;
+ unsigned char *s = NULL;
+
+ n=cert->signature->length;
+ s=cert->signature->data;
+ for (i=0; i<n; i++)
+ {
+ if ( ((i%18) == 0) && (i!=0) ) BIO_printf(out,"\n");
+ BIO_printf(out,"%02x%s",s[i], (((i+1)%18) == 0)?"":":");
+ }
+
+ }else if(OPENSSL_X509_INFO_VERSION == type){
+ long l = 0.0;
+
+ l = X509_get_version(cert);
+ BIO_printf (out,"%lu (0x%lx)",l+1,l);
+ }else if(OPENSSL_X509_INFO_PUBKEY == type){
+ EVP_PKEY *pkey = NULL;
+
+ pkey=X509_get_pubkey(cert);
+ if (pkey != NULL)
+ {
+ if (pkey->type == EVP_PKEY_RSA){
+ RSA_print(out,pkey->pkey.rsa,0);
+ }else if (pkey->type == EVP_PKEY_DSA){
+ DSA_print(out,pkey->pkey.dsa,0);
+ }
+ EVP_PKEY_free(pkey);
+ }
+ }else if(OPENSSL_X509_INFO_PUBKEY_ALGO == type){
+ X509_CINF *ci = NULL;
+
+ ci = cert->cert_info;
+ i2a_ASN1_OBJECT(out, ci->key->algor->algorithm);
+ }
+ n = BIO_get_mem_data(out, &data);
+ result = axis2_strndup( data, n, env );
+ BIO_free(out);
+ out = NULL;
+
+ return result;
+}
+
+
+AXIS2_EXTERN void AXIS2_CALL
+openssl_x509_print(const axis2_env_t *env,
+ X509 *cert)
+{
+ printf("\n*************START PRINTING*****************\n");
+ printf("OPENSSL_X509_INFO_SUBJECT : %s\n", openssl_x509_get_info(env, OPENSSL_X509_INFO_SUBJECT,cert));
+ printf("OPENSSL_X509_INFO_ISSUER : %s\n", openssl_x509_get_info(env,OPENSSL_X509_INFO_ISSUER ,cert));
+ printf("OPENSSL_X509_INFO_VALID_FROM : %s\n", openssl_x509_get_info(env, OPENSSL_X509_INFO_VALID_FROM,cert));
+ printf("OPENSSL_X509_INFO_VALID_TO : %s\n", openssl_x509_get_info(env,OPENSSL_X509_INFO_VALID_TO ,cert));
+ printf("OPENSSL_X509_INFO_FINGER : %s\n", openssl_x509_get_info(env,OPENSSL_X509_INFO_FINGER ,cert));
+ printf("OPENSSL_X509_INFO_SIGNATURE : %s\n", openssl_x509_get_info(env, OPENSSL_X509_INFO_SIGNATURE,cert));
+ printf("OPENSSL_X509_INFO_VERSION : %s\n", openssl_x509_get_info(env,OPENSSL_X509_INFO_VERSION ,cert));
+ printf("OPENSSL_X509_INFO_PUBKEY : %s\n", openssl_x509_get_info(env,OPENSSL_X509_INFO_PUBKEY ,cert));
+ printf("OPENSSL_X509_INFO_PUBKEY_ALGO : %s\n", openssl_x509_get_info(env,OPENSSL_X509_INFO_PUBKEY_ALGO ,cert));
+ /*printf("SUBJ_NAME_HASH : %u\n", openssl_x509_get_subject_name_hash(env,cert));*/
+ printf("SERIAL : %u\n", openssl_x509_get_serial(env,cert));
+ printf("PUBKEY : %s\n", openssl_x509_get_cert_data(env,cert));
+
+ printf("\n*************END PRINTING********************\n");
+
+
+
+}
Modified: webservices/axis2/trunk/c/rampart/src/util/rampart_encryption.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/util/rampart_encryption.c?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/rampart_encryption.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/rampart_encryption.c Mon Nov 27 01:03:35 2006
@@ -119,6 +119,8 @@
oxs_asym_ctx_set_algorithm(asym_ctx, env, enc_asym_algo);
oxs_asym_ctx_set_file_name(asym_ctx, env, certificate_file);
oxs_asym_ctx_set_operation(asym_ctx, env, OXS_ASYM_CTX_OPERATION_PUB_ENCRYPT);
+ /*TODO This should be taken from the configurations*/
+ oxs_asym_ctx_set_format(asym_ctx, env, OXS_ASYM_CTX_FORMAT_PKCS12);
/*Encrypt the session key*/
oxs_xml_enc_encrypt_key(env, asym_ctx, sec_node,session_key, id_list);
Modified: webservices/axis2/trunk/c/rampart/src/util/rampart_handler_util.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/util/rampart_handler_util.c?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/rampart_handler_util.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/rampart_handler_util.c Mon Nov 27 01:03:35 2006
@@ -218,12 +218,9 @@
}/*End of for*/
}
-
return header_block_node;
}
-
-
AXIS2_EXTERN void AXIS2_CALL
rampart_create_fault_envelope(const axis2_env_t *env,
Modified: webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_processor.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_processor.c?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_processor.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_processor.c Mon Nov 27 01:03:35 2006
@@ -52,7 +52,7 @@
axis2_status_t valid_ts = AXIS2_FAILURE;
timestamp_token = rampart_timestamp_token_create(env);
- valid_ts = RAMPART_TIMESTAMP_TOKEN_VALIDATE(timestamp_token, env, ts_node, sub_codes);
+ valid_ts = RAMPART_TIMESTAMP_TOKEN_VALIDATE(timestamp_token, env, msg_ctx, ts_node, sub_codes);
if (valid_ts)
{
@@ -267,7 +267,11 @@
axis2_status_t status = AXIS2_FAILURE;
/*If certian security elements are expected by the reciever, rampart should check for those */
- return rampart_shp_enforce_security(env, msg_ctx, actions, soap_envelope, sec_node, sub_codes);
+ /*This should be done along with the the message header processing. Need to be modified later for encryption*/
+ status = rampart_shp_enforce_security(env, msg_ctx, actions, soap_envelope, sec_node, sub_codes);
+ if(AXIS2_FAILURE == status){
+ return AXIS2_FAILURE;
+ }
AXIS2_LOG_INFO(env->log, "[rampart][shp] Process security header");
/*Get the first token of the security header element*/
Modified: webservices/axis2/trunk/c/rampart/src/util/timestamp_token.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/util/timestamp_token.c?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/timestamp_token.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/timestamp_token.c Mon Nov 27 01:03:35 2006
@@ -58,6 +58,7 @@
axis2_status_t AXIS2_CALL
rampart_timestamp_token_validate(rampart_timestamp_token_t *timestamp_token,
const axis2_env_t *env,
+ axis2_msg_ctx_t *msg_ctx,
axiom_node_t *ts_node,
axis2_array_list_t *sub_codes);
@@ -184,6 +185,7 @@
axis2_status_t AXIS2_CALL
rampart_timestamp_token_validate(rampart_timestamp_token_t *timestamp_token,
const axis2_env_t *env,
+ axis2_msg_ctx_t *msg_ctx,
axiom_node_t *ts_node,
axis2_array_list_t *sub_codes)
{
@@ -233,6 +235,7 @@
}
created_val = AXIOM_ELEMENT_GET_TEXT(created_ele, env, created_node);
+ rampart_set_security_processed_result(env, msg_ctx,RAMPART_SPR_TS_CREATED, created_val);
/*Check whether created is less than current time or not*/
current_val = rampart_generate_time(env, 0);
validity = rampart_compare_date_time(env, created_val, current_val);
@@ -262,6 +265,7 @@
/*Now the expires element is present. So check whether this has a valid timestamp.
If not it's a failure*/
expires_val = AXIOM_ELEMENT_GET_TEXT(expires_ele, env, expires_node);
+ rampart_set_security_processed_result(env, msg_ctx,RAMPART_SPR_TS_EXPIRES, expires_val);
/*Check whether time has expired or not*/
validity = rampart_compare_date_time(env, current_val, expires_val);
@@ -271,7 +275,7 @@
return AXIS2_FAILURE;
}
AXIS2_LOG_INFO(env->log, "[rampart][ts] Timstamp is valid");
-
+ rampart_set_security_processed_result(env, msg_ctx,RAMPART_SPR_TS_CHECKED, RAMPART_YES);
/*free memory for qnames*/
return validity;
}
Modified: webservices/axis2/trunk/c/rampart/src/util/username_token.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/util/username_token.c?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/username_token.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/username_token.c Mon Nov 27 01:03:35 2006
@@ -577,6 +577,7 @@
if (0 == AXIS2_STRCMP(password_to_compare , password))
{
AXIS2_LOG_INFO(env->log, "[rampart][rampart_usernametoken] Password comparison SUCCESS");
+ rampart_set_security_processed_result(env, msg_ctx,RAMPART_SPR_UT_CHECKED, RAMPART_YES);
return AXIS2_SUCCESS;
}
else
Modified: webservices/axis2/trunk/c/rampart/test/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/test/Makefile.am?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/test/Makefile.am (original)
+++ webservices/axis2/trunk/c/rampart/test/Makefile.am Mon Nov 27 01:03:35 2006
@@ -1,2 +1,2 @@
-SUBDIRS = omxmlsec
+SUBDIRS = omxmlsec openssl
Modified: webservices/axis2/trunk/c/rampart/test/omxmlsec/test.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/test/omxmlsec/test.c?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/test/omxmlsec/test.c (original)
+++ webservices/axis2/trunk/c/rampart/test/omxmlsec/test.c Mon Nov 27 01:03:35 2006
@@ -122,13 +122,6 @@
env = test_init();
printf("--Testing started--------------------------------------------\n");
- /*additional code start*/
- oxs_x509_cert_t *cert = NULL;
- cert = oxs_x509_cert_create(env);
- oxs_x509_cert_set_issuer(cert, env, "IssuerXYZ");
- printf("\nSER NO :%s\n", oxs_x509_cert_get_issuer(cert, env));
- /*additional code end*/
-
if (argc > 1)
filename = argv[1];
Modified: webservices/axis2/trunk/c/rampart/test/openssl/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/test/openssl/Makefile.am?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/test/openssl/Makefile.am (original)
+++ webservices/axis2/trunk/c/rampart/test/openssl/Makefile.am Mon Nov 27 01:03:35 2006
@@ -1,20 +1,4 @@
-TESTS = test
-bin_PROGRAMS = test
-#SUBDIRS = rsa
+SUBDIRS = pkcs
-AM_CFLAGS = -g -O2 -pthread
+
-#test_SOURCES = des_test.c
-test_SOURCES = block_cipher_test.c
-
-INCLUDES = -I$(top_builddir)/include \
- @UTILINC@ \
- @AXIOMINC@
-
-test_LDADD = $(top_builddir)/src/util/librampart_util.la \
- $(top_builddir)/src/omxmlsec/libomxmlsec.la \
- $(top_builddir)/src/omxmlsec/openssl/libomopenssl.la \
- -laxis2_util \
- -laxis2_axiom \
- -laxis2_libxml2 \
- -lxml2
Modified: webservices/axis2/trunk/c/rampart/test/openssl/rsa/test_rsa.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/test/openssl/rsa/test_rsa.c?view=diff&rev=479553&r1=479552&r2=479553
==============================================================================
--- webservices/axis2/trunk/c/rampart/test/openssl/rsa/test_rsa.c (original)
+++ webservices/axis2/trunk/c/rampart/test/openssl/rsa/test_rsa.c Mon Nov 27 01:03:35 2006
@@ -78,6 +78,9 @@
return 0;
}
+
+
+
int main()
{
return encdec();
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org