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 su...@apache.org on 2008/04/07 13:16:35 UTC
svn commit: r645462 - in /webservices/rampart/scratch/c/pkcs/c/src:
omxmlsec/key_mgr.c util/rampart_encryption.c
Author: supun
Date: Mon Apr 7 04:16:31 2008
New Revision: 645462
URL: http://svn.apache.org/viewvc?rev=645462&view=rev
Log: (empty)
Modified:
webservices/rampart/scratch/c/pkcs/c/src/omxmlsec/key_mgr.c
webservices/rampart/scratch/c/pkcs/c/src/util/rampart_encryption.c
Modified: webservices/rampart/scratch/c/pkcs/c/src/omxmlsec/key_mgr.c
URL: http://svn.apache.org/viewvc/webservices/rampart/scratch/c/pkcs/c/src/omxmlsec/key_mgr.c?rev=645462&r1=645461&r2=645462&view=diff
==============================================================================
--- webservices/rampart/scratch/c/pkcs/c/src/omxmlsec/key_mgr.c (original)
+++ webservices/rampart/scratch/c/pkcs/c/src/omxmlsec/key_mgr.c Mon Apr 7 04:16:31 2008
@@ -296,7 +296,38 @@
oxs_key_mgr_t *key_mgr,
const axutil_env_t *env)
{
- return key_mgr->receiver_certificate;
+ axis2_char_t *filename = NULL;
+ axis2_char_t *pem_buf = NULL;
+ axis2_status_t status = AXIS2_FAILURE;
+ openssl_x509_format_t format;
+ openssl_pkey_t *open_prvkey = NULL;
+ openssl_pkey_t *open_pubkey = NULL;
+ oxs_x509_cert_t *oxs_cert = NULL;
+
+ X509 *cert = NULL;
+ STACK_OF(X509) *ca = NULL;
+ EVP_PKEY *prvkey = NULL;
+ EVP_PKEY *pubkey = NULL;
+ if (key_mgr->receiver_certificate)
+ {
+ return key_mgr->receiver_certificate;
+ }
+ else
+ {
+ /* If user has specified the certificate/private key directly we will extract the information from it.
+ * Else we will look for a file name to load the certificate/private key*/
+ pem_buf = oxs_key_mgr_get_pem_buf(key_mgr, env);
+ if(pem_buf)
+ {
+ /*load certificate from buf*/
+ status = openssl_x509_load_from_buffer(env, pem_buf, &cert);
+ }
+ else
+ {
+ cert = oxs_key_mgr_load_x509_cert_from_pem_file(env, key_mgr->reciever_certificate_file);
+ }
+ }
+ return cert;
}
AXIS2_EXTERN axis2_key_type_t AXIS2_CALL
Modified: webservices/rampart/scratch/c/pkcs/c/src/util/rampart_encryption.c
URL: http://svn.apache.org/viewvc/webservices/rampart/scratch/c/pkcs/c/src/util/rampart_encryption.c?rev=645462&r1=645461&r2=645462&view=diff
==============================================================================
--- webservices/rampart/scratch/c/pkcs/c/src/util/rampart_encryption.c (original)
+++ webservices/rampart/scratch/c/pkcs/c/src/util/rampart_encryption.c Mon Apr 7 04:16:31 2008
@@ -127,25 +127,19 @@
key_mgr, env);
oxs_key_mgr_set_format(key_mgr, env,
oxs_util_get_format_by_file_extension(env, certificate_file));
- /*First check whether the public key is set*/
- key_buf = rampart_context_get_receiver_certificate(rampart_context, env);
- if(key_buf)
- {
- axis2_key_type_t type = 0;
- type = rampart_context_get_receiver_certificate_type(rampart_context, env);
- if(type == AXIS2_KEY_TYPE_PEM)
- {
- oxs_key_mgr_set_format(key_mgr, env, OXS_ASYM_CTX_FORMAT_PEM);
- oxs_key_mgr_set_pem_buf(key_mgr, env, (axis2_char_t *)key_buf);
- }
- }
-
+
+ certificate = oxs_key_mgr_get_receiver_certificate(key_mgr, env);
+ if (!certificate)
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+ "[rampart][rampart_encryption] Receiver certificate cannot be loaded.");
+ return AXIS2_FAILURE;
+ }
oxs_asym_ctx_set_certificate(asym_ctx, env, certificate);
oxs_asym_ctx_set_operation(asym_ctx, env,
OXS_ASYM_CTX_OPERATION_PUB_ENCRYPT);
oxs_asym_ctx_set_st_ref_pattern(asym_ctx, env, eki);
- oxs_key_mgr_load_key(key_mgr, env, asym_ctx);
/*Encrypt the session key*/
status = oxs_xml_enc_encrypt_key(env, asym_ctx,
sec_node, session_key, id_list);