You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ka...@apache.org on 2007/02/26 11:36:49 UTC

svn commit: r511773 [2/2] - in /webservices/axis2/trunk/c/rampart: include/ samples/secpolicy/scenario1/ samples/secpolicy/scenario2/ samples/secpolicy/scenario3/ samples/secpolicy/scenario4/ samples/secpolicy/scenario5/ samples/secpolicy/scenario6/ sa...

Modified: webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/client-incoming-secpolicy.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/client-incoming-secpolicy.xml?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/client-incoming-secpolicy.xml (original)
+++ webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/client-incoming-secpolicy.xml Mon Feb 26 02:36:47 2007
@@ -33,30 +33,30 @@
 					</sp:Layout>
                     <sp:IncludeTimestamp/>
                     <sp:EncryptBeforeSigning/>
-					<sp:OnlySignEntireHeadersAndBody/>
 				</wsp:Policy>
             </sp:AsymmetricBinding>
+            <sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+            <wsp:Policy>
+                <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Always"/>
+            </wsp:Policy>
+            </sp:SignedSupportingTokens>
 			<sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
-                <wsp:Policy>
+				<wsp:Policy>
                     <sp:MustSupportRefEmbeddedToken/>
 				</wsp:Policy>
-            </sp:Wss10>
-            <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
-                <sp:Body/>
+			</sp:Wss10>
+			<sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+				<sp:Body/>
             </sp:EncryptedParts>
             <rampc:RampartConfig xmlns:rampc="http://ws.apache.org/rampart/c/policy">
-                <rampc:user>Gampola</rampc:user>
-                <rampc:encryptionUser>a</rampc:encryptionUser>
-                <rampc:passwordType>Digest</rampc:passwordType>
-                <rampc:passwordCallbackClass>/home/AXIS2_USER/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:passwordCallbackClass>
-                <rampc:signatureCrypto>
-                    <rampc:signaturePropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/b_cert.cert</rampc:signaturePropFile>
-                </rampc:signatureCrypto>
-                <rampc:encryptionCypto>
-                    <rampc:encryptionPropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/b_cert.cert</rampc:encryptionPropFile>
-                    <rampc:decryptionPropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/a_store.pfx</rampc:decryptionPropFile>
-                </rampc:encryptionCypto>
-        </rampc:RampartConfig>
+                <rampc:User>Gampola</rampc:User>
+                <rampc:TimeToLive>360</rampc:TimeToLive>
+                <rampc:EncryptionUser>a</rampc:EncryptionUser>
+                <rampc:PasswordType>Digest</rampc:PasswordType>
+                <rampc:PasswordCallbackClass>/home/AXIS2_USER/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:PasswordCallbackClass>
+                <rampc:PublicKey>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/b_cert.cert</rampc:PublicKey>
+                <rampc:PrivateKey>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/a_store.pfx</rampc:PrivateKey>
+            </rampc:RampartConfig>
 		</wsp:All>
 	</wsp:ExactlyOne>
 </wsp:Policy>

Modified: webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/client-outgoing-secpolicy.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/client-outgoing-secpolicy.xml?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/client-outgoing-secpolicy.xml (original)
+++ webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/client-outgoing-secpolicy.xml Mon Feb 26 02:36:47 2007
@@ -33,7 +33,6 @@
 					</sp:Layout>
                     <sp:IncludeTimestamp/>
                     <sp:EncryptBeforeSigning/>
-					<sp:OnlySignEntireHeadersAndBody/>
 				</wsp:Policy>
             </sp:AsymmetricBinding>
             <sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
@@ -43,25 +42,21 @@
             </sp:SignedSupportingTokens>
 			<sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
 				<wsp:Policy>
-					<sp:MustSupportRefEmbeddedToken/>
+                    <sp:MustSupportRefEmbeddedToken/>
 				</wsp:Policy>
 			</sp:Wss10>
 			<sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
 				<sp:Body/>
             </sp:EncryptedParts>
             <rampc:RampartConfig xmlns:rampc="http://ws.apache.org/rampart/c/policy">
-                <rampc:user>Gampola</rampc:user>
-                <rampc:encryptionUser>a</rampc:encryptionUser>
-                <rampc:passwordType>Digest</rampc:passwordType>
-                <rampc:passwordCallbackClass>/home/AXIS2_USER/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:passwordCallbackClass>
-                <rampc:signatureCrypto>
-                    <rampc:signaturePropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/b_cert.cert</rampc:signaturePropFile>
-                </rampc:signatureCrypto>
-                <rampc:encryptionCypto>
-                    <rampc:encryptionPropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/b_cert.cert</rampc:encryptionPropFile>
-                    <rampc:decryptionPropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/a_store.pfx</rampc:decryptionPropFile>
-                </rampc:encryptionCypto>
-        </rampc:RampartConfig>
+                <rampc:User>Gampola</rampc:User>
+                <rampc:TimeToLive>360</rampc:TimeToLive>
+                <rampc:EncryptionUser>a</rampc:EncryptionUser>
+                <rampc:PasswordType>Digest</rampc:PasswordType>
+                <rampc:PasswordCallbackClass>/home/AXIS2_USER/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:PasswordCallbackClass>
+                <rampc:PublicKey>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/b_cert.cert</rampc:PublicKey>
+                <rampc:PrivateKey>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/a_store.pfx</rampc:PrivateKey>
+            </rampc:RampartConfig>
 		</wsp:All>
 	</wsp:ExactlyOne>
 </wsp:Policy>

Modified: webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/service-incoming-secpolicy.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/service-incoming-secpolicy.xml?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/service-incoming-secpolicy.xml (original)
+++ webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/service-incoming-secpolicy.xml Mon Feb 26 02:36:47 2007
@@ -33,7 +33,6 @@
 					</sp:Layout>
                     <sp:IncludeTimestamp/>
                     <sp:EncryptBeforeSigning/>
-					<sp:OnlySignEntireHeadersAndBody/>
 				</wsp:Policy>
             </sp:AsymmetricBinding>
             <sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
@@ -42,27 +41,22 @@
             </wsp:Policy>
             </sp:SignedSupportingTokens>
 			<sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
-                <wsp:Policy>
+				<wsp:Policy>
                     <sp:MustSupportRefEmbeddedToken/>
-					<sp:MustSupportRefIssuerSerial/>
 				</wsp:Policy>
-            </sp:Wss10>
-            <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
-                <sp:Body/>
+			</sp:Wss10>
+			<sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+				<sp:Body/>
             </sp:EncryptedParts>
             <rampc:RampartConfig xmlns:rampc="http://ws.apache.org/rampart/c/policy">
-                <rampc:user>Gampola</rampc:user>
-                <rampc:encryptionUser>b</rampc:encryptionUser>
-                <rampc:passwordType>Digest</rampc:passwordType>
-                <rampc:passwordCallbackClass>/home/AXIS2_USER/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:passwordCallbackClass>
-                <rampc:signatureCrypto>
-                    <rampc:signaturePropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/b_cert.cert</rampc:signaturePropFile>
-                </rampc:signatureCrypto>
-                <rampc:encryptionCypto>
-                    <rampc:encryptionPropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/bhome/a_cert.cert</rampc:encryptionPropFile>
-                    <rampc:decryptionPropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/bhome/b_store.pfx</rampc:decryptionPropFile>
-                </rampc:encryptionCypto>
-        </rampc:RampartConfig>
+                <rampc:User>Gampola</rampc:User>
+                <rampc:TimeToLive>360</rampc:TimeToLive>
+                <rampc:EncryptionUser>b</rampc:EncryptionUser>
+                <rampc:PasswordType>Digest</rampc:PasswordType>
+                <rampc:PasswordCallbackClass>/home/AXIS2_USER/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:PasswordCallbackClass>
+                <rampc:PublicKey>/home/AXIS2_USER/axis2/c/rampart/samples/keys/bhome/a_cert.cert</rampc:PublicKey>
+                <rampc:PrivateKey>/home/AXIS2_USER/axis2/c/rampart/samples/keys/bhome/b_store.pfx</rampc:PrivateKey>
+            </rampc:RampartConfig>
 		</wsp:All>
 	</wsp:ExactlyOne>
 </wsp:Policy>

Modified: webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/service-outgoing-secpolicy.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/service-outgoing-secpolicy.xml?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/service-outgoing-secpolicy.xml (original)
+++ webservices/axis2/trunk/c/rampart/samples/secpolicy/scenario7/service-outgoing-secpolicy.xml Mon Feb 26 02:36:47 2007
@@ -33,31 +33,30 @@
 					</sp:Layout>
                     <sp:IncludeTimestamp/>
                     <sp:EncryptBeforeSigning/>
-					<sp:OnlySignEntireHeadersAndBody/>
 				</wsp:Policy>
             </sp:AsymmetricBinding>
+            <sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+            <wsp:Policy>
+                <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Always"/>
+            </wsp:Policy>
+            </sp:SignedSupportingTokens>
 			<sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
-                <wsp:Policy>
+				<wsp:Policy>
                     <sp:MustSupportRefEmbeddedToken/>
-                    <sp:MustSupportRefIssuerSerial/>
 				</wsp:Policy>
-            </sp:Wss10>
-            <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
-                <sp:Body/>
+			</sp:Wss10>
+			<sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+				<sp:Body/>
             </sp:EncryptedParts>
             <rampc:RampartConfig xmlns:rampc="http://ws.apache.org/rampart/c/policy">
-                <rampc:user>Gampola</rampc:user>
-                <rampc:encryptionUser>b</rampc:encryptionUser>
-                <rampc:passwordType>Digest</rampc:passwordType>
-                <rampc:passwordCallbackClass>/home/AXIS2_USER/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:passwordCallbackClass>
-                <rampc:signatureCrypto>
-                    <rampc:signaturePropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/ahome/b_cert.cert</rampc:signaturePropFile>
-                </rampc:signatureCrypto>
-                <rampc:encryptionCypto>
-                    <rampc:encryptionPropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/bhome/a_cert.cert</rampc:encryptionPropFile>
-                    <rampc:decryptionPropFile>/home/AXIS2_USER/axis2/c/rampart/samples/keys/bhome/b_store.pfx</rampc:decryptionPropFile>
-                </rampc:encryptionCypto>
-        </rampc:RampartConfig>
+                <rampc:User>Gampola</rampc:User>
+                <rampc:TimeToLive>360</rampc:TimeToLive>
+                <rampc:EncryptionUser>b</rampc:EncryptionUser>
+                <rampc:PasswordType>Digest</rampc:PasswordType>
+                <rampc:PasswordCallbackClass>/home/AXIS2_USER/axis2/c/deploy/bin/samples/rampart/callback/libpwcb.so</rampc:PasswordCallbackClass>
+                <rampc:PublicKey>/home/AXIS2_USER/axis2/c/rampart/samples/keys/bhome/a_cert.cert</rampc:PublicKey>
+                <rampc:PrivateKey>/home/AXIS2_USER/axis2/c/rampart/samples/keys/bhome/b_store.pfx</rampc:PrivateKey>
+            </rampc:RampartConfig>
 		</wsp:All>
 	</wsp:ExactlyOne>
 </wsp:Policy>

Modified: webservices/axis2/trunk/c/rampart/src/handlers/rampart_in_handler.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/handlers/rampart_in_handler.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/handlers/rampart_in_handler.c (original)
+++ webservices/axis2/trunk/c/rampart/src/handlers/rampart_in_handler.c Mon Feb 26 02:36:47 2007
@@ -108,7 +108,7 @@
     }
     AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "SOAP header found");
 
-    rampart_context = rampart_engine_init(env,msg_ctx,RAMPART_INFLOW_SECURITY_POLICY);
+    rampart_context = rampart_engine_init(env,msg_ctx,AXIS2_TRUE);
     if(!rampart_context)
         return AXIS2_FAILURE;
 
@@ -130,7 +130,9 @@
     
     status = rampart_shp_process_message(env, msg_ctx, rampart_context, 
 						soap_envelope, sec_node);
-        
+    
+    status = rampart_engine_shutdown(env,rampart_context);
+
 /*    
     rampart_context_free(rampart_context,env);
     rampart_context = NULL;

Modified: webservices/axis2/trunk/c/rampart/src/handlers/rampart_out_handler.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/handlers/rampart_out_handler.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/handlers/rampart_out_handler.c (original)
+++ webservices/axis2/trunk/c/rampart/src/handlers/rampart_out_handler.c Mon Feb 26 02:36:47 2007
@@ -75,23 +75,12 @@
     axiom_element_t *soap_header_ele = NULL;
     axis2_status_t status = AXIS2_FAILURE;
     rampart_context_t *rampart_context = NULL;
-/*  rp_secpolicy_t *secpolicy = NULL;*/
-/*  axis2_char_t *file_name = "/home/manjula/axis2/scratch/security-policy/c/rampart/src/secpolicy/test-resources/2.xml";*/
-/*  axis2_char_t *file_name = NULL;*/
     axis2_bool_t serverside = AXIS2_FALSE;
     
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
 
     serverside = axis2_msg_ctx_get_server_side(msg_ctx,env);
-/*
-    if(serverside)
-        file_name = "/home/manjula/axis2/scratch/security-policy/c/rampart/src/secpolicy/test-resources/outgoing_policy.xml";
-
-    else
-        file_name = "/home/manjula/axis2/scratch/security-policy/c/deploy/client_repo/outgoing_policy.xml";
-*/
     soap_envelope = AXIS2_MSG_CTX_GET_SOAP_ENVELOPE(msg_ctx, env);
     if (!soap_envelope)
     {
@@ -121,7 +110,7 @@
         }
         soap_header_ele = (axiom_element_t *)AXIOM_NODE_GET_DATA_ELEMENT(soap_header_node,env);
 
-        rampart_context = rampart_engine_init(env,msg_ctx,RAMPART_OUTFLOW_SECURITY_POLICY);
+        rampart_context = rampart_engine_init(env,msg_ctx,AXIS2_FALSE);
         if(!rampart_context)
             return AXIS2_FAILURE;
 
@@ -130,9 +119,9 @@
         if(AXIS2_FAILURE == status){
                 AXIS2_LOG_INFO(env->log,
                     "[rampart][rampart_out_handler] Security header building failed ERROR");
+                rampart_engine_shutdown(env,rampart_context);
         }
+        status = rampart_engine_shutdown(env,rampart_context);
     }
-
     return status;
-    
 }

Modified: webservices/axis2/trunk/c/rampart/src/secpolicy/builder/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/secpolicy/builder/Makefile.am?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/secpolicy/builder/Makefile.am (original)
+++ webservices/axis2/trunk/c/rampart/src/secpolicy/builder/Makefile.am Mon Feb 26 02:36:47 2007
@@ -2,9 +2,9 @@
 
 noinst_LTLIBRARIES = librp_builder.la
 
-librp_builder_la_SOURCES = algorithmsuite_builder.c asymmetric_binding_builder.c binding_commons_builder.c encryption_crypto_builder.c \
+librp_builder_la_SOURCES = algorithmsuite_builder.c asymmetric_binding_builder.c binding_commons_builder.c \
 						   https_token_builder.c layout_builder.c qname_matcher.c rampart_config_builder.c secpolicy_builder.c \
-						   security_context_token_builder.c signature_crypto_builder.c signed_encrypted_elements_builder.c \
+						   security_context_token_builder.c signed_encrypted_elements_builder.c \
 						   signed_encrypted_parts_builder.c supporting_tokens_builder.c symmetric_asymmetric_commons_builder.c \
 						   symmetric_binding_builder.c token_builder.c transport_binding_builder.c username_token_builder.c \
 						   wss10_builder.c wss11_builder.c x509_token_builder.c policy_creator.c

Modified: webservices/axis2/trunk/c/rampart/src/secpolicy/builder/policy_creator.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/secpolicy/builder/policy_creator.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/secpolicy/builder/policy_creator.c (original)
+++ webservices/axis2/trunk/c/rampart/src/secpolicy/builder/policy_creator.c Mon Feb 26 02:36:47 2007
@@ -1,8 +1,7 @@
 #include <rp_layout.h>
-/*#include <rp_secpolicy.h>*/
 #include <rp_secpolicy_builder.h>
 #include <rp_policy_creator.h>
-
+#include <rp_qname_matcher.h>
 
 AXIS2_EXTERN rp_secpolicy_t *AXIS2_CALL 
 rp_policy_create_from_file(
@@ -14,11 +13,7 @@
     axiom_stax_builder_t *builder = NULL;
     axiom_document_t *document = NULL;
     axiom_node_t *root = NULL;
-    axiom_element_t *all_ele = NULL;
     axiom_element_t *root_ele = NULL;
-    axiom_node_t *exat_node = NULL;
-    axiom_element_t *exat_ele = NULL;
-    axiom_node_t *all_node = NULL;
     rp_secpolicy_t *secpolicy = NULL;
 
     reader = axiom_xml_reader_create_for_file(env,filename,NULL);
@@ -62,6 +57,38 @@
         else
             return NULL;
     }
+    secpolicy = rp_policy_create_from_om_node(env,root);
+
+    return secpolicy;
+
+}
+
+
+AXIS2_EXTERN rp_secpolicy_t *AXIS2_CALL 
+rp_policy_create_from_om_node(
+    const axis2_env_t *env,
+    axiom_node_t *root)
+{
+
+    axiom_element_t *all_ele = NULL;
+    axiom_element_t *root_ele = NULL;
+    axiom_node_t *exat_node = NULL;
+    axiom_element_t *exat_ele = NULL;
+    axiom_node_t *all_node = NULL;
+    rp_secpolicy_t *secpolicy = NULL;
+
+    
+    if(AXIOM_NODE_GET_NODE_TYPE(root, env) == AXIOM_ELEMENT)
+    {
+        root_ele = (axiom_element_t*)AXIOM_NODE_GET_DATA_ELEMENT (root, env);
+        if(root_ele)
+        {
+            
+        }
+    }
+        else
+            return NULL;
+    
     exat_node = AXIOM_NODE_GET_FIRST_CHILD(root,env);
     if(exat_node)
     {
@@ -95,3 +122,5 @@
     return secpolicy;
 
 }
+
+

Modified: webservices/axis2/trunk/c/rampart/src/secpolicy/builder/qname_matcher.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/secpolicy/builder/qname_matcher.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/secpolicy/builder/qname_matcher.c (original)
+++ webservices/axis2/trunk/c/rampart/src/secpolicy/builder/qname_matcher.c Mon Feb 26 02:36:47 2007
@@ -51,6 +51,43 @@
 }
 
 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+rp_match_policy_qname(
+            const axis2_env_t *env,
+            const axis2_char_t *local_name,
+            axiom_node_t *node,
+            axiom_element_t *element)
+{
+    
+	axis2_qname_t *qname = NULL;
+    axis2_qname_t *node_qname = NULL;
+	
+	AXIS2_ENV_CHECK(env,AXIS2_FALSE);
+
+    qname = axis2_qname_create(env,local_name,RP_POLICY_NS,RP_POLICY_PREFIX);
+    if(!qname)
+        return AXIS2_FALSE;
+
+    node_qname = AXIOM_ELEMENT_GET_QNAME(element,env,node);
+
+    if(!node_qname)
+    {
+        AXIS2_QNAME_FREE(qname,env);
+        qname = NULL;
+        return AXIS2_FALSE;
+    }
+
+    if(AXIS2_QNAME_EQUALS(qname,env,node_qname))
+    {        
+        AXIS2_QNAME_FREE(qname,env);
+        qname = NULL;
+        return AXIS2_TRUE;
+    }
+
+    return AXIS2_FALSE;
+}
+
+
+AXIS2_EXTERN axis2_bool_t AXIS2_CALL
 rp_match_rampart_config_qname(
             const axis2_env_t *env,
             const axis2_char_t *local_name,

Modified: webservices/axis2/trunk/c/rampart/src/secpolicy/builder/rampart_config_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/secpolicy/builder/rampart_config_builder.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/secpolicy/builder/rampart_config_builder.c (original)
+++ webservices/axis2/trunk/c/rampart/src/secpolicy/builder/rampart_config_builder.c Mon Feb 26 02:36:47 2007
@@ -146,30 +146,35 @@
             return AXIS2_FAILURE;
     }
 
-    else if(AXIS2_STRCMP(local_name,RP_SIGNATURE_CRYPTO)==0)
+    else if(AXIS2_STRCMP(local_name,RP_PUBLIC_KEY)==0)
     {
-        if(rp_match_rampart_config_qname(env,RP_SIGNATURE_CRYPTO,node,element))
+        if(rp_match_rampart_config_qname(env,RP_PUBLIC_KEY,node,element))
         {
-            rp_signature_crypto_t *signature_crypto = NULL;
-            signature_crypto = rp_signature_crypto_builder_build(env,node);
-            if(!signature_crypto)
-                return AXIS2_FAILURE;
-
-            return rp_rampart_config_set_signature_crypto(rampart_config,env,signature_crypto);
+            axis2_char_t *public_key_file = NULL;
+            public_key_file = AXIOM_ELEMENT_GET_TEXT(element,env,node);
+            return rp_rampart_config_set_public_key_file(rampart_config,env,public_key_file);
         }
         else
             return AXIS2_FAILURE;
     }
-    else if(AXIS2_STRCMP(local_name,RP_ENCRYPTION_CRYPTO)==0)
+    else if(AXIS2_STRCMP(local_name,RP_PRIVATE_KEY)==0)
     {
-        if(rp_match_rampart_config_qname(env,RP_ENCRYPTION_CRYPTO,node,element))
+        if(rp_match_rampart_config_qname(env,RP_PRIVATE_KEY,node,element))
         {
-            rp_encryption_crypto_t *encryption_crypto = NULL;
-            encryption_crypto = rp_encryption_crypto_builder_build(env,node);
-            if(!encryption_crypto)
-                return AXIS2_FAILURE;
-
-            return rp_rampart_config_set_encryption_crypto(rampart_config,env,encryption_crypto);
+            axis2_char_t *private_key_file = NULL;
+            private_key_file = AXIOM_ELEMENT_GET_TEXT(element,env,node);
+            return rp_rampart_config_set_private_key_file(rampart_config,env,private_key_file);
+        }
+        else
+            return AXIS2_FAILURE;
+    }
+    else if(AXIS2_STRCMP(local_name,RP_TIME_TO_LIVE)==0)
+    {
+        if(rp_match_rampart_config_qname(env,RP_TIME_TO_LIVE,node,element))
+        {
+            axis2_char_t *time_to_live = NULL;
+            time_to_live = AXIOM_ELEMENT_GET_TEXT(element,env,node);
+            return rp_rampart_config_set_time_to_live(rampart_config,env,time_to_live);
         }
         else
             return AXIS2_FAILURE;

Modified: webservices/axis2/trunk/c/rampart/src/secpolicy/model/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/secpolicy/model/Makefile.am?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/secpolicy/model/Makefile.am (original)
+++ webservices/axis2/trunk/c/rampart/src/secpolicy/model/Makefile.am Mon Feb 26 02:36:47 2007
@@ -3,8 +3,8 @@
 noinst_LTLIBRARIES = librp_model.la
 
 librp_model_la_SOURCES = algorithmsuite.c asymmetric_binding.c \
-							binding_commons.c encryption_crypto.c header.c https_token.c layout.c \
-							property.c rampart_config.c secpolicy.c security_context_token.c signature_crypto.c \
+							binding_commons.c header.c https_token.c layout.c \
+							property.c rampart_config.c secpolicy.c security_context_token.c \
 							signed_encrypted_elements.c signed_encrypted_parts.c supporting_tokens.c symmetric_asymmetric_binding_commons.c \
 							symmetric_binding.c transport_binding.c ut.c wss10.c wss11.c x509_token.c
 

Modified: webservices/axis2/trunk/c/rampart/src/secpolicy/model/rampart_config.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/secpolicy/model/rampart_config.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/secpolicy/model/rampart_config.c (original)
+++ webservices/axis2/trunk/c/rampart/src/secpolicy/model/rampart_config.c Mon Feb 26 02:36:47 2007
@@ -25,8 +25,9 @@
     axis2_char_t *password_callback_class;
     axis2_char_t *authenticate_module;
     axis2_char_t *password_type;
-    rp_signature_crypto_t *signature_crypto;
-    rp_encryption_crypto_t *encryption_crypto;
+    axis2_char_t *time_to_live;
+    axis2_char_t *public_key_file;
+    axis2_char_t *private_key_file;
 };
 
 AXIS2_EXTERN rp_rampart_config_t *AXIS2_CALL 
@@ -47,10 +48,11 @@
     rampart_config->user = NULL;
     rampart_config->encryption_user = NULL;
     rampart_config->password_callback_class = NULL;
-    rampart_config->signature_crypto = NULL;
-    rampart_config->encryption_crypto = NULL;
+    rampart_config->private_key_file = NULL;
+    rampart_config->public_key_file = NULL;
     rampart_config->authenticate_module = NULL;
     rampart_config->password_type = NULL;
+    rampart_config->time_to_live = NULL;
     return rampart_config;
 }
 
@@ -62,16 +64,6 @@
 
     if(rampart_config)
     {
-        if(rampart_config->encryption_crypto)
-        {
-            rp_encryption_crypto_free(rampart_config->encryption_crypto,env);
-            rampart_config->encryption_crypto = NULL;
-        }
-        if(rampart_config->signature_crypto)
-        {
-            rp_signature_crypto_free(rampart_config->signature_crypto,env);
-            rampart_config->signature_crypto = NULL;
-        }
         AXIS2_FREE(env->allocator,rampart_config);
         rampart_config = NULL;
     }
@@ -193,46 +185,69 @@
 }
 
 
-AXIS2_EXTERN rp_signature_crypto_t *AXIS2_CALL
-rp_rampart_config_get_signature_crypto(
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rp_rampart_config_get_private_key_file(
     rp_rampart_config_t *rampart_config,
     const axis2_env_t *env)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    return rampart_config->signature_crypto;
+    return rampart_config->private_key_file;
 }
 
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
-rp_rampart_config_set_signature_crypto(rp_rampart_config_t *rampart_config,
+rp_rampart_config_set_private_key_file(rp_rampart_config_t *rampart_config,
             const axis2_env_t *env,
-            rp_signature_crypto_t *signature_crypto)
+            axis2_char_t *private_key_file)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error,signature_crypto,AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error,private_key_file,AXIS2_FAILURE);
         
-    rampart_config->signature_crypto = signature_crypto;
+    rampart_config->private_key_file = private_key_file;
     return AXIS2_SUCCESS;
 }
 
-AXIS2_EXTERN rp_encryption_crypto_t *AXIS2_CALL
-rp_rampart_config_get_encryption_crypto(
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rp_rampart_config_get_public_key_file(
+    rp_rampart_config_t *rampart_config,
+    const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+    return rampart_config->public_key_file;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rp_rampart_config_set_public_key_file(rp_rampart_config_t *rampart_config,
+            const axis2_env_t *env,
+            axis2_char_t *public_key_file)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error,public_key_file,AXIS2_FAILURE);   
+        
+    rampart_config->public_key_file = public_key_file;
+    return AXIS2_SUCCESS;
+}
+
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rp_rampart_config_get_time_to_live(
     rp_rampart_config_t *rampart_config,
     const axis2_env_t *env)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    return rampart_config->encryption_crypto;
+    return rampart_config->time_to_live;
 }
 
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
-rp_rampart_config_set_encryption_crypto(rp_rampart_config_t *rampart_config,
+rp_rampart_config_set_time_to_live(rp_rampart_config_t *rampart_config,
             const axis2_env_t *env,
-            rp_encryption_crypto_t *encryption_crypto)
+            axis2_char_t *time_to_live)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error,encryption_crypto,AXIS2_FAILURE);   
+    AXIS2_PARAM_CHECK(env->error,time_to_live,AXIS2_FAILURE);   
         
-    rampart_config->encryption_crypto = encryption_crypto;
+    rampart_config->time_to_live = time_to_live;
     return AXIS2_SUCCESS;
 }

Modified: webservices/axis2/trunk/c/rampart/src/util/rampart_context.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/util/rampart_context.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/rampart_context.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/rampart_context.c Mon Feb 26 02:36:47 2007
@@ -20,21 +20,48 @@
 #include <oxs_axiom.h>
 
 
-
-
+/*
 struct rampart_context_t
 {
     rp_secpolicy_t *secpolicy;
     rampart_callback_t* password_callback_module;
     rampart_authn_provider_t *authn_provider;
-    
-    /*Function pointers for php extension to assign*/
     pfunc password_func; 
     auth_password_func authenticate_with_password;
     auth_digest_func authenticate_with_digest;
 };
+*/
+struct rampart_context_t
+{
+    /*PHP extension will set these members*/
+    axiom_node_t *policy_node;
+    void *prv_key;
+    axis2_key_type_t prv_key_type;
+    void *pub_key;
+    axis2_key_type_t pub_key_type;
+    axis2_char_t *user;
+    axis2_char_t *password;
+    axis2_char_t *prv_key_password;
+    password_callback_fn pwcb_function;
+    int ttl;
+    axis2_char_t *password_type;
 
+    /*Rampart specific members*/
+    rp_secpolicy_t *secpolicy;
+    rampart_callback_t *password_callback_module;
+    rampart_authn_provider_t *authn_provider;
+    auth_password_func authenticate_with_password;
+    auth_digest_func authenticate_with_digest;
+            
+};
+
+/*void rampart_context_set_callback_fn(axis2_env_t *env, 
+                                axis2_char_t *(*callback)(
+                                    axis2_env_t  *env, 
+                                    axis2_char_t *user ,
+                                    void *ctx), void *ctx);
 
+*/
 /*private functions*/
 
 rp_symmetric_asymmetric_binding_commons_t 
@@ -87,13 +114,24 @@
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
+    rampart_context->policy_node = NULL;
+    rampart_context->prv_key = NULL;
+    rampart_context->prv_key_type = 0;
+    rampart_context->pub_key = NULL;
+    rampart_context->pub_key_type = 0;
+    rampart_context->user = 0;
+    rampart_context->password = NULL;
+    rampart_context->prv_key_password = NULL;
+    rampart_context->pwcb_function = NULL;
+    rampart_context->ttl = 0;
+    rampart_context->password_type = NULL;
+
     rampart_context->secpolicy = NULL;
-    rampart_context->password_callback_module = NULL; 
+    rampart_context->password_callback_module = NULL;
     rampart_context->authn_provider = NULL;
-    rampart_context->password_func = NULL;
     rampart_context->authenticate_with_password = NULL;
     rampart_context->authenticate_with_digest = NULL;
-
+    
     return rampart_context;
 }
 
@@ -119,74 +157,308 @@
 
 /* Implementations */
 
-AXIS2_EXTERN rp_secpolicy_t *AXIS2_CALL
-rampart_context_get_secpolicy(
-    rampart_context_t *rampart_context,
-    const axis2_env_t *env)
+/*Implementation of PHP-rampart interface */
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_policy_node(rampart_context_t *rampart_context,
+            const axis2_env_t *env,
+            axiom_node_t *policy_node)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error,policy_node,AXIS2_FAILURE);
+
+    rampart_context->policy_node = policy_node;
+    return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_prv_key(rampart_context_t *rampart_context,
+            const axis2_env_t *env,
+            void *prv_key)
+{
     
-    return rampart_context->secpolicy;
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error,prv_key,AXIS2_FAILURE);
+
+    rampart_context->prv_key = prv_key;
+    return AXIS2_SUCCESS;
 }
 
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
-rampart_context_set_secpolicy(rampart_context_t *rampart_context,
+rampart_context_set_prv_key_type(rampart_context_t *rampart_context,
             const axis2_env_t *env,
-            rp_secpolicy_t *secpolicy)
+            axis2_key_type_t type)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error,secpolicy,AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error,type,AXIS2_FAILURE);
 
-    rampart_context->secpolicy = secpolicy;
+    rampart_context->prv_key_type = type;
     return AXIS2_SUCCESS;
 }
 
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_pub_key(rampart_context_t *rampart_context,
+            const axis2_env_t *env,
+            void *pub_key)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error,pub_key,AXIS2_FAILURE);
 
-AXIS2_EXTERN rampart_callback_t *AXIS2_CALL
-rampart_context_get_password_callback(
+    rampart_context->pub_key = pub_key;
+    return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_pub_key_type(rampart_context_t *rampart_context,
+            const axis2_env_t *env,
+            axis2_key_type_t type)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error,type,AXIS2_FAILURE);
+
+    rampart_context->pub_key_type = type;
+    return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_user(rampart_context_t *rampart_context,
+            const axis2_env_t *env,
+            axis2_char_t *user)
+{
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error,user,AXIS2_FAILURE);
+
+    rampart_context->user = user;
+    return AXIS2_SUCCESS;
+
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_password(rampart_context_t *rampart_context,
+            const axis2_env_t *env,
+            axis2_char_t *password)
+{
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error,password,AXIS2_FAILURE);
+
+    rampart_context->password = password;
+    return AXIS2_SUCCESS;
+}
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_prv_key_password(rampart_context_t *rampart_context,
+            const axis2_env_t *env,
+            axis2_char_t *prv_key_password)
+{
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error,prv_key_password,AXIS2_FAILURE);
+
+    rampart_context->prv_key_password = prv_key_password;
+    return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_pwcb_function(rampart_context_t *rampart_context,
+            const axis2_env_t *env,
+            password_callback_fn pwcb_function,
+            void *ctx)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error,pwcb_function,AXIS2_FAILURE);
+
+    rampart_context->pwcb_function = pwcb_function;
+    return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_password_type(rampart_context_t *rampart_context,
+            const axis2_env_t *env,
+            axis2_char_t *password_type)
+{
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error,password_type,AXIS2_FAILURE);
+
+    rampart_context->password_type = password_type;
+    return AXIS2_SUCCESS;
+
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_ttl(rampart_context_t *rampart_context,
+            const axis2_env_t *env,
+            int ttl)
+{
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error,ttl,AXIS2_FAILURE);
+
+    rampart_context->ttl = ttl;
+    return AXIS2_SUCCESS;
+}
+
+/*End of implementation*/
+
+/*Getters of the PHP-RAMPART interface*/
+
+AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+rampart_context_get_policy_node(
+            rampart_context_t *rampart_context,
+            const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env, NULL);
+   
+    return rampart_context->policy_node; 
+}
+
+AXIS2_EXTERN void *AXIS2_CALL
+rampart_context_get_prv_key(
+            rampart_context_t *rampart_context,
+            const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env, NULL);
+
+    return rampart_context->prv_key;
+}
+
+AXIS2_EXTERN axis2_key_type_t AXIS2_CALL
+rampart_context_get_prv_key_type(
+            rampart_context_t *rampart_context,
+            const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+    return rampart_context->prv_key_type;
+}
+
+AXIS2_EXTERN void *AXIS2_CALL
+rampart_context_get_pub_key(
+            rampart_context_t *rampart_context,
+            const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env, NULL);
+
+    return rampart_context->pub_key;
+}
+
+AXIS2_EXTERN axis2_key_type_t AXIS2_CALL
+rampart_context_get_pub_key_type(
+            rampart_context_t *rampart_context,
+            const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+    return rampart_context->pub_key_type;
+}
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rampart_context_get_user(
+            rampart_context_t *rampart_context,
+            const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+    return rampart_context->user;
+}
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rampart_context_get_password(
+            rampart_context_t *rampart_context,
+            const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env, NULL);
+
+    return rampart_context->password;
+}
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rampart_context_get_prv_key_password(
+            rampart_context_t *rampart_context,
+            const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env, NULL);
+
+    return rampart_context->prv_key_password;
+}
+
+AXIS2_EXTERN password_callback_fn AXIS2_CALL
+rampart_context_get_pwcb_function(
+            rampart_context_t *rampart_context,
+            const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env, NULL);
+
+    return rampart_context->pwcb_function;
+}
+
+AXIS2_EXTERN int AXIS2_CALL
+rampart_context_get_ttl(
+            rampart_context_t *rampart_context,
+            const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env,AXIS2_FAILURE);
+
+    return rampart_context->ttl;
+}
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+rampart_context_get_password_type(
+            rampart_context_t *rampart_context,
+            const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env,NULL);
+
+    return rampart_context->password_type;
+}
+
+/*End of getters*/
+
+AXIS2_EXTERN rp_secpolicy_t *AXIS2_CALL
+rampart_context_get_secpolicy(
     rampart_context_t *rampart_context,
     const axis2_env_t *env)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     
-    return rampart_context->password_callback_module;
+    return rampart_context->secpolicy;
 }
 
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
-rampart_context_set_password_callback(rampart_context_t *rampart_context,
+rampart_context_set_secpolicy(rampart_context_t *rampart_context,
             const axis2_env_t *env,
-            rampart_callback_t *password_callback_module)
+            rp_secpolicy_t *secpolicy)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error,password_callback_module,AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error,secpolicy,AXIS2_FAILURE);
 
-    rampart_context->password_callback_module = password_callback_module;
+    rampart_context->secpolicy = secpolicy;
     return AXIS2_SUCCESS;
 }
 
-/*This function get the function pointer of the password callback function*/
 
-AXIS2_EXTERN pfunc AXIS2_CALL
-rampart_context_get_password_function(
+AXIS2_EXTERN rampart_callback_t *AXIS2_CALL
+rampart_context_get_password_callback(
     rampart_context_t *rampart_context,
     const axis2_env_t *env)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     
-    return rampart_context->password_func;
+    return rampart_context->password_callback_module;
 }
 
-/*set the password callback function*/
-
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
-rampart_context_set_password_function(rampart_context_t *rampart_context,
+rampart_context_set_password_callback(rampart_context_t *rampart_context,
             const axis2_env_t *env,
-            pfunc password_func)
+            rampart_callback_t *password_callback_module)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error,password_func,AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error,password_callback_module,AXIS2_FAILURE);
 
-    rampart_context->password_func = password_func;
+    rampart_context->password_callback_module = password_callback_module;
     return AXIS2_SUCCESS;
 }
 
@@ -649,8 +921,9 @@
     return rampart_context_use_username_token(signed_supporting,env); 
 }
 
-AXIS2_EXTERN axis2_char_t *AXIS2_CALL
-rampart_context_get_user(
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_user_from_file(
     rampart_context_t *rampart_context,
     const axis2_env_t *env)
 {
@@ -658,11 +931,13 @@
     rp_rampart_config_t *config = NULL;
     config = rp_secpolicy_get_rampart_config(rampart_context->secpolicy,env);
     if(!config)
-        return NULL;    
+        return AXIS2_FAILURE;    
 
-    return rp_rampart_config_get_user(config,env);
+    rampart_context->user = rp_rampart_config_get_user(config,env);
+    return AXIS2_SUCCESS;
 }
 
+
 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
 rampart_context_get_password_callback_class(
     rampart_context_t *rampart_context,
@@ -689,27 +964,38 @@
     return rp_rampart_config_get_authenticate_module(config,env);
 }
 
-AXIS2_EXTERN axis2_bool_t AXIS2_CALL
-rampart_context_get_password_type(
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_password_type_from_file(
     rampart_context_t *rampart_context,
     const axis2_env_t *env)
 {
-    axis2_bool_t digest = AXIS2_FALSE;
-    axis2_char_t *type = NULL;
     rp_rampart_config_t *config = NULL;
-    
     config = rp_secpolicy_get_rampart_config(rampart_context->secpolicy,env);
     if(!config)
-        return AXIS2_FALSE;
+        return AXIS2_FAILURE;    
 
-    type = rp_rampart_config_get_password_type(config,env);
-    if(AXIS2_STRCMP(type,RP_DIGEST)==0)
-    {
-        digest = AXIS2_TRUE;
-        return digest;
-    }
+    rampart_context->password_type = rp_rampart_config_get_password_type(config,env);
+    return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_context_set_ttl_from_file(
+    rampart_context_t *rampart_context,
+    const axis2_env_t *env)
+{
+    rp_rampart_config_t *config = NULL;
+    axis2_char_t *time_to_live = NULL;
+    config = rp_secpolicy_get_rampart_config(rampart_context->secpolicy,env);
+    if(!config)
+        return AXIS2_FAILURE;
+
+    time_to_live = rp_rampart_config_get_time_to_live(config,env);
+    if(!time_to_live)
+        rampart_context->ttl = 300;
     else
-        return digest;
+        rampart_context->ttl = axis2_atoi(time_to_live);    
+
+    return AXIS2_SUCCESS;
 }
 
 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
@@ -957,53 +1243,36 @@
 }
 
 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
-rampart_context_get_encryption_prop_file(
+rampart_context_get_public_key_file(
     rampart_context_t *rampart_context,
     const axis2_env_t *env)
 {
     rp_rampart_config_t *rampart_config = NULL;
-    rp_encryption_crypto_t *enc_crypto = NULL;
 
     rampart_config = rp_secpolicy_get_rampart_config(rampart_context->secpolicy,env);
     if(rampart_config)
     {
-        enc_crypto = rp_rampart_config_get_encryption_crypto(rampart_config,env);
-        if(enc_crypto)
-        {
-            return rp_encryption_crypto_get_encryption_prop_file(enc_crypto,env);
-        }
-        else
-            return NULL;
+        return rp_rampart_config_get_public_key_file(rampart_config,env);
     }
     else
         return NULL;
 }
 
 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
-rampart_context_get_decryption_prop_file(
+rampart_context_get_private_key_file(
     rampart_context_t *rampart_context,
     const axis2_env_t *env)
 {
     rp_rampart_config_t *rampart_config = NULL;
-    rp_encryption_crypto_t *enc_crypto = NULL;
 
     rampart_config = rp_secpolicy_get_rampart_config(rampart_context->secpolicy,env);
     if(rampart_config)
     {
-        enc_crypto = rp_rampart_config_get_encryption_crypto(rampart_config,env);
-        if(enc_crypto)
-        {
-            return rp_encryption_crypto_get_decryption_prop_file(enc_crypto,env);
-        }
-        else
-            return NULL;
+        return rp_rampart_config_get_private_key_file(rampart_config,env);
     }
     else
         return NULL;
 }
-
-
-
 
 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
 rampart_context_get_encryption_user(

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=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/rampart_encryption.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/rampart_encryption.c Mon Feb 26 02:36:47 2007
@@ -38,6 +38,7 @@
 #include <oxs_axiom.h>
 #include <oxs_asym_ctx.h>
 #include <oxs_xml_encryption.h>
+#include <axis2_key_type.h>
 
 /*Private functions*/
 /*
@@ -122,9 +123,9 @@
     rp_property_t *token = NULL;
     axis2_char_t *enc_user = NULL;
     rampart_callback_t *password_callback = NULL;
-    pfunc password_function = NULL;
+    password_callback_fn password_function = NULL;
     void *param = NULL;
-
+    void *key_buf = NULL;
     int i = 0;
     /*Get nodes to be encrypted*/
     server_side = axis2_msg_ctx_get_server_side(msg_ctx,env);
@@ -205,32 +206,36 @@
     /*Get the asymmetric key encryption algorithm*/
     enc_asym_algo = rampart_context_get_enc_asym_algo(rampart_context,env);
     /*Get the certificate file name*/
-    certificate_file = rampart_context_get_encryption_prop_file(rampart_context,env);
-
     
     /*Get the password to retrieve the key from key store*/
-    enc_user = rampart_context_get_encryption_user(rampart_context,env);
 
-    if(!enc_user)
-        enc_user = rampart_context_get_user(rampart_context,env);
+    password = rampart_context_get_prv_key_password(rampart_context,env);
 
-    if(!enc_user)
-        return AXIS2_FAILURE;      
+    if(!password)
+    {
+        enc_user = rampart_context_get_encryption_user(rampart_context,env);
 
-    password_function = rampart_context_get_password_function(rampart_context,env);
-    if(password_function)
-        password = (*password_function)(env,enc_user,param);
+        if(!enc_user)
+            enc_user = rampart_context_get_user(rampart_context,env);
 
-    else
-    {
-        password_callback = rampart_context_get_password_callback(rampart_context,env);
-        if(!password_callback)
+        if(!enc_user)
+            return AXIS2_FAILURE;      
+
+        password_function = rampart_context_get_pwcb_function(rampart_context,env);
+        if(password_function)
+            password = (*password_function)(env,enc_user,param);
+
+        else
         {
-            AXIS2_LOG_INFO(env->log, "[rampart][rampart_encryption] Password call back module is not loaded.");
-            return AXIS2_FAILURE;
-        }        
-        password = rampart_callback_password(env, password_callback, enc_user);
-    }
+            password_callback = rampart_context_get_password_callback(rampart_context,env);
+            if(!password_callback)
+            {
+                AXIS2_LOG_INFO(env->log, "[rampart][rampart_encryption] Password call back module is not loaded.");
+                return AXIS2_FAILURE;
+            }           
+            password = rampart_callback_password(env, password_callback, enc_user);
+        }
+    }        
 /*  password = rampart_callback_encuser_password(env, actions, msg_ctx);*/
     /*Get encryption key identifier*/
     eki = rampart_context_get_enc_key_identifier(rampart_context,token,server_side,env);
@@ -239,23 +244,40 @@
         AXIS2_LOG_INFO(env->log, "[rampart][rampart_encryption] The token is not needed for inclusion.");
         return AXIS2_SUCCESS;
     }
+
     /*Create asymmetric encryption context*/
     asym_ctx = oxs_asym_ctx_create(env);
     oxs_asym_ctx_set_algorithm(asym_ctx, env, enc_asym_algo);
-    oxs_asym_ctx_set_file_name(asym_ctx, env, certificate_file);
+
+    /*First check whether the public key is set*/
+    key_buf = rampart_context_get_pub_key(rampart_context,env);
+    if(key_buf)
+    {
+        axis2_key_type_t type = 0;
+        type = rampart_context_get_pub_key_type(rampart_context,env);
+        if(type == AXIS2_KEY_TYPE_PEM)
+        {
+            oxs_asym_ctx_set_format(asym_ctx, env, OXS_ASYM_CTX_FORMAT_PEM);
+            oxs_asym_ctx_set_pem_buf(asym_ctx, env, (axis2_char_t *)key_buf);            
+        }            
+    }        
+    
+    /*Buffer is null load from the file*/
+    else
+    {
+        certificate_file = rampart_context_get_public_key_file(rampart_context,env);        
+        oxs_asym_ctx_set_file_name(asym_ctx, env, certificate_file);
+        oxs_asym_ctx_set_format(asym_ctx, env, oxs_util_get_format_by_file_extension(env, certificate_file));
+    }
     
-/*  oxs_asym_ctx_set_pem_buf(asym_ctx, env, RAMPART_ACTIONS_GET_KEY_BUF(actions, env));*/
     oxs_asym_ctx_set_password(asym_ctx, env, password);
     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_asym_ctx_set_format(asym_ctx, env, oxs_util_get_format_by_file_extension(env, certificate_file));
     /*Encrypt the session key*/
     status = oxs_xml_enc_encrypt_key(env, asym_ctx, sec_node, session_key, id_list);    
     if(AXIS2_FAILURE == status){
         return AXIS2_FAILURE;
     }
-
-     
     return AXIS2_SUCCESS;
 }
 

Modified: webservices/axis2/trunk/c/rampart/src/util/rampart_engine.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/util/rampart_engine.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/rampart_engine.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/rampart_engine.c Mon Feb 26 02:36:47 2007
@@ -24,29 +24,126 @@
 /*This method sets all the configurations
  loads required modules and start rampart.*/
 
+rampart_context_t *AXIS2_CALL
+get_rampart_context_with_secpolicy_from_om(
+            rampart_context_t *rampart_context,
+            const axis2_env_t *env);
+
+rampart_context_t *AXIS2_CALL
+build_rampart_context_from_file(
+            const axis2_env_t *env,
+            axis2_char_t *file_name);
+
 
 AXIS2_EXTERN rampart_context_t* AXIS2_CALL
 rampart_engine_init(const axis2_env_t *env, 
         axis2_msg_ctx_t *msg_ctx,
-        axis2_char_t *x_flow_policy)
+        axis2_bool_t is_inflow)
 {
 
     axis2_char_t *file_name = NULL;
     rampart_context_t *rampart_context = NULL;
+    void *value = NULL;
+
+    /*First we try to load the rampart_context*
+     *This can be set from an extension like PHP
+     So first extract it from such a scenario.*/
+
+    if(is_inflow)
+    {
+        value = rampart_get_rampart_configuration(env,msg_ctx,INFLOW_RAMPART_CONTEXT);            
+        if(value)
+        {
+            rampart_context = (rampart_context_t *)value;
+            if(!rampart_context)
+            {
+                AXIS2_LOG_INFO(env->log,"[rampart][rampart_engine] Type in the parameter is not rampart_context");
+                return NULL;
+            }
+            return get_rampart_context_with_secpolicy_from_om(rampart_context,env);
+        }
+        else
+        {
+            value = rampart_get_rampart_configuration(env,msg_ctx,RAMPART_INFLOW_SECURITY_POLICY);
+            if(!value)
+            {
+                AXIS2_LOG_INFO(env->log,"[rampart][rampart_engine] Errors in the configurations");
+                return NULL;
+            }
+            file_name = (axis2_char_t *)value;
+            return build_rampart_context_from_file(env,file_name);                        
+        }            
+    }
+    else
+    {
+        value = rampart_get_rampart_configuration(env,msg_ctx,OUTFLOW_RAMPART_CONTEXT);
+        if(value)
+        {
+            rampart_context = (rampart_context_t *)value;
+            if(!rampart_context)
+            {
+                AXIS2_LOG_INFO(env->log,"[rampart][rampart_engine] Type in the parameter is not rampart_context");
+                return NULL;
+            }
+            return get_rampart_context_with_secpolicy_from_om(rampart_context,env);
+        }
+        else
+        {
+            value = rampart_get_rampart_configuration(env,msg_ctx,RAMPART_OUTFLOW_SECURITY_POLICY);
+            if(!value)
+            {
+                AXIS2_LOG_INFO(env->log,"[rampart][rampart_engine] Errors in the configurations");
+                return NULL;
+            }
+            file_name = (axis2_char_t *)value;
+            return build_rampart_context_from_file(env,file_name);
+        }
+    }
+}
+
+rampart_context_t *AXIS2_CALL
+get_rampart_context_with_secpolicy_from_om(
+            rampart_context_t *rampart_context,
+            const axis2_env_t *env)
+{
+    axiom_node_t *policy_node = NULL;
+    rp_secpolicy_t *secpolicy = NULL;
+
+    policy_node = rampart_context_get_policy_node(rampart_context,env);
+    if(!policy_node)
+    {
+        AXIS2_LOG_INFO(env->log,"[rampart][rampart_engine] Policy node is null.");
+        return NULL;
+    }
+    secpolicy = rp_policy_create_from_om_node(env,policy_node);
+    if(!secpolicy)
+    {
+        AXIS2_LOG_INFO(env->log,"[rampart][rampart_engine] Cannot create policy from the node");
+        return NULL;
+    }
+    rampart_context_set_secpolicy(rampart_context,env,secpolicy);
+    return rampart_context;
+}
+
+rampart_context_t *AXIS2_CALL
+build_rampart_context_from_file(
+            const axis2_env_t *env,
+            axis2_char_t *file_name)
+{
     rp_secpolicy_t *secpolicy = NULL;
+    rampart_context_t *rampart_context = NULL;    
     rampart_callback_t* password_callback_module = NULL;
     rampart_authn_provider_t *authn_provider = NULL;
     axis2_char_t *pwcb_module_name = NULL;
     axis2_char_t *authn_provider_name = NULL;
-        
-    file_name = rampart_get_policy_location(env,msg_ctx,x_flow_policy);
+    axis2_status_t status = AXIS2_SUCCESS;   
+
     if(!file_name)
     {
         AXIS2_LOG_INFO(env->log,
          "[rampart][rampart_Engine] No Security in the flow. So nothing to do");
         return NULL;
     }
-
     secpolicy = rp_policy_create_from_file(env,file_name);
 
     if(!secpolicy)
@@ -59,23 +156,35 @@
 
     if(!rampart_context)
     {
-        AXIS2_LOG_INFO(env->log, "[rampart][rampart_Engine] Cannot get Rampart Context " );
+        AXIS2_LOG_INFO(env->log, "[rampart][rampart_Engine]System is out of memory. Cannot get Rampart Context ");
         /*No policy so we cant proceed.*/
         return NULL;
     }
-        
+
     rampart_context_set_secpolicy(rampart_context,env,secpolicy);
 
+    status = rampart_context_set_user_from_file(rampart_context,env);
+    if(status!=AXIS2_SUCCESS)
+        return NULL;
+
+    status = rampart_context_set_ttl_from_file(rampart_context,env);
+    if(status!=AXIS2_SUCCESS)
+        return NULL;
+
+    status = rampart_context_set_password_type_from_file(rampart_context,env);
+    if(status!=AXIS2_SUCCESS)
+        return NULL;
+
     pwcb_module_name = rampart_context_get_password_callback_class(rampart_context,env);
 
     if(pwcb_module_name)
     {
         password_callback_module = rampart_load_pwcb_module(env,pwcb_module_name);
         if(password_callback_module)
-            rampart_context_set_password_callback(rampart_context,env,password_callback_module);        
+            rampart_context_set_password_callback(rampart_context,env,password_callback_module);
     }
     authn_provider_name = rampart_context_get_authn_module_name(rampart_context,env);
-    
+
     if(authn_provider_name)
     {
         authn_provider = rampart_load_auth_module(env,authn_provider_name);
@@ -83,4 +192,23 @@
             rampart_context_set_authn_provider(rampart_context,env,authn_provider);
     }
     return rampart_context;
+
+}
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+rampart_engine_shutdown(const axis2_env_t *env,
+                rampart_context_t *rampart_context)
+{
+
+/*  rp_secpolicy_t *secpolicy = NULL;*/
+    axis2_status_t status = AXIS2_FAILURE;
+
+/*  secpolicy = rampart_context_get_secpolicy(rampart_context,env);
+    status = rp_secpolicy_free(secpolicy,env);
+    secpolicy = NULL;
+*/
+    status = rampart_context_free(rampart_context,env);
+    rampart_context = NULL;
+    return status;
 }

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=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/rampart_handler_util.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/rampart_handler_util.c Mon Feb 26 02:36:47 2007
@@ -322,14 +322,14 @@
 }
 
 
-AXIS2_EXTERN axis2_char_t *AXIS2_CALL
-rampart_get_policy_location(const axis2_env_t *env,
+AXIS2_EXTERN void *AXIS2_CALL
+rampart_get_rampart_configuration(const axis2_env_t *env,
         axis2_msg_ctx_t *msg_ctx,
         axis2_char_t *param_name)
         
 {
     axis2_param_t *param_x_flow_security = NULL;
-    axis2_char_t *value = NULL;
+    void *value = NULL;
 
     param_x_flow_security = rampart_get_security_param(env, msg_ctx,
                                     param_name);
@@ -337,7 +337,7 @@
     if (!param_x_flow_security)
     {
         AXIS2_LOG_INFO(env->log,
-            "[rampart][rampart_handler_utils] some error in the configurations");
+            "[rampart][rampart_handler_utils] %s parameter is not set.",param_x_flow_security);
         return NULL;
     }
     value = AXIS2_PARAM_GET_VALUE(param_x_flow_security, env);

Modified: webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_builder.c?view=diff&rev=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_builder.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/rampart_sec_header_builder.c Mon Feb 26 02:36:47 2007
@@ -103,7 +103,8 @@
             AXIS2_LOG_INFO(env->log, "[rampart][shb]  building Timestamp Token");
             AXIS2_LOG_INFO(env->log, "[rampart][shb]  Using default timeToLive value %d",
                 RAMPART_TIMESTAMP_TOKEN_DEFAULT_TIME_TO_LIVE);
-            ttl = RAMPART_TIMESTAMP_TOKEN_DEFAULT_TIME_TO_LIVE;
+           /*ttl = RAMPART_TIMESTAMP_TOKEN_DEFAULT_TIME_TO_LIVE;*/
+            ttl = rampart_context_get_ttl(rampart_context,env);
             
             timestamp_token = rampart_timestamp_token_create(env);
             status = RAMPART_TIMESTAMP_TOKEN_BUILD(timestamp_token, env,
@@ -161,7 +162,6 @@
             status = rampart_enc_encrypt_message(env, msg_ctx,rampart_context,soap_envelope,sec_node);
             if(!status)
                 return AXIS2_FAILURE;
-
         }            
 
         return AXIS2_SUCCESS;        

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=511773&r1=511772&r2=511773
==============================================================================
--- 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 Feb 26 02:36:47 2007
@@ -42,6 +42,7 @@
 #include <oxs_token_reference_list.h>
 #include <axis2_utils.h>
 #include <axis2_array_list.h>
+#include <axis2_key_type.h>
 
 /*Private functions*/
 static axis2_bool_t 
@@ -223,7 +224,7 @@
     axiom_node_t *enc_mtd_node = NULL;
     axis2_array_list_t *reference_list = NULL;
     axis2_char_t *enc_asym_algo = NULL;
-    axis2_char_t *dec_key_file = NULL;
+    axis2_char_t *prv_key_file = NULL;
     axis2_char_t *password = NULL;
     axis2_char_t *enc_user = NULL;
     rampart_callback_t *password_callback = NULL;
@@ -232,9 +233,10 @@
     oxs_key_t *decrypted_sym_key = NULL;
     axis2_char_t *enc_asym_algo_in_pol = NULL; 
     axis2_char_t *enc_sym_algo_in_pol = NULL;
-    pfunc password_function = NULL;
+    password_callback_fn password_function = NULL;
     void *param = NULL;
     int i = 0;
+    void *key_buf = NULL;
     
     /*Get EncryptedData references */
     ref_list_node = oxs_axiom_get_first_child_node_by_name(env, encrypted_key_node, OXS_NODE_REFERENCE_LIST, NULL, NULL);
@@ -263,48 +265,65 @@
         return AXIS2_FAILURE;
     }
                     
-    asym_ctx = oxs_asym_ctx_create(env);
-    dec_key_file = rampart_context_get_decryption_prop_file(rampart_context,env);
-    if(!dec_key_file)
-    {
-        AXIS2_LOG_INFO(env->log, "Decryption Profile is not specified.");
-        return AXIS2_FAILURE;
-    }
     /*Get the password to retrieve the key from key store*/
 /*  password = rampart_callback_encuser_password(env, actions, msg_ctx);*/
 
-    enc_user = rampart_context_get_encryption_user(rampart_context,env);
+    password = rampart_context_get_prv_key_password(rampart_context,env);
 
-    if(!enc_user)
-        enc_user = rampart_context_get_user(rampart_context,env);
+    if(!password)
+    {
+        enc_user = rampart_context_get_encryption_user(rampart_context,env);
 
-    if(!enc_user)
-        return AXIS2_FAILURE;
+        if(!enc_user)
+            enc_user = rampart_context_get_user(rampart_context,env);
 
-    password_function = rampart_context_get_password_function(rampart_context,env);
-    if(password_function)
-        password = (*password_function)(env,enc_user,param);
+        if(!enc_user)
+            return AXIS2_FAILURE;
 
-    else
+        password_function = rampart_context_get_pwcb_function(rampart_context,env);
+        if(password_function)
+            password = (*password_function)(env,enc_user,param);
+
+        else
+        {
+            password_callback = rampart_context_get_password_callback(rampart_context,env);
+            if(!password_callback)
+            {
+                AXIS2_LOG_INFO(env->log, "[rampart][rampart_encryption] Password call back module is not specified.");
+                return AXIS2_FAILURE;
+            }
+            password = rampart_callback_password(env, password_callback, enc_user);
+        }
+    }   
+    asym_ctx = oxs_asym_ctx_create(env);
+    
+    key_buf = rampart_context_get_prv_key(rampart_context,env);
+    if(key_buf)
     {
-        password_callback = rampart_context_get_password_callback(rampart_context,env);
-        if(!password_callback)
+        axis2_key_type_t type = 0;
+        type = rampart_context_get_prv_key_type(rampart_context,env);
+        if(type == AXIS2_KEY_TYPE_PEM)
         {
-            AXIS2_LOG_INFO(env->log, "[rampart][rampart_encryption] Password call back module is not specified.");
+            oxs_asym_ctx_set_pem_buf(asym_ctx, env, (axis2_char_t *)key_buf);
+            oxs_asym_ctx_set_format(asym_ctx, env,OXS_ASYM_CTX_FORMAT_PEM);
+        }            
+    }        
+    else
+    {        
+        oxs_asym_ctx_set_algorithm(asym_ctx, env, enc_asym_algo);
+        prv_key_file = rampart_context_get_private_key_file(rampart_context,env);
+        if(!prv_key_file)
+        {
+            AXIS2_LOG_INFO(env->log, "Private Key is not specified.");
             return AXIS2_FAILURE;
         }
-        password = rampart_callback_password(env, password_callback, enc_user);
-    }
-    
-    oxs_asym_ctx_set_algorithm(asym_ctx, env, enc_asym_algo);
-    oxs_asym_ctx_set_file_name(asym_ctx, env, dec_key_file);
-    
-/*  oxs_asym_ctx_set_pem_buf(asym_ctx, env, RAMPART_ACTIONS_GET_KEY_BUF(actions, env));*/
+        oxs_asym_ctx_set_file_name(asym_ctx, env, prv_key_file);
+        oxs_asym_ctx_set_format(asym_ctx, env, oxs_util_get_format_by_file_extension(env, prv_key_file));
+    }    
     oxs_asym_ctx_set_operation(asym_ctx, env, OXS_ASYM_CTX_OPERATION_PRV_DECRYPT);
     oxs_asym_ctx_set_password(asym_ctx, env, password);
     
     /*oxs_asym_ctx_set_format(asym_ctx, env, OXS_ASYM_CTX_FORMAT_PKCS12);*/
-    oxs_asym_ctx_set_format(asym_ctx, env, oxs_util_get_format_by_file_extension(env, dec_key_file));
 
     /*Create an empty key*/
     decrypted_sym_key = oxs_key_create(env);
@@ -586,7 +605,6 @@
                     AXIS2_LOG_INFO(env->log, "[rampart][shp] Error in the security header");
                     return AXIS2_FAILURE;
                 }                   
-   
                 AXIS2_LOG_INFO(env->log, "[rampart][shp] Process EncryptedKey");
                 status = rampart_shp_process_encrypted_key(env,msg_ctx, rampart_context, soap_envelope, sec_node, cur_node);
                 if(status!=AXIS2_SUCCESS)

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=511773&r1=511772&r2=511773
==============================================================================
--- webservices/axis2/trunk/c/rampart/src/util/username_token.c (original)
+++ webservices/axis2/trunk/c/rampart/src/util/username_token.c Mon Feb 26 02:36:47 2007
@@ -174,8 +174,9 @@
     rampart_username_token_impl_t *username_token_impl = NULL;
     axis2_char_t *username = NULL;
     rampart_callback_t *password_callback = NULL;
-    axis2_bool_t isdigest = AXIS2_FALSE;
-    pfunc password_function = NULL;
+/*  axis2_bool_t isdigest = AXIS2_FALSE;*/
+    axis2_char_t *password_type = NULL;
+    password_callback_fn password_function = NULL;
     void *param = NULL;
     
 
@@ -190,22 +191,27 @@
         AXIS2_LOG_INFO(env->log, "[rampart][rampart_usernametoken] User is not specified.");
         return AXIS2_FAILURE;
     }
-    password_function = rampart_context_get_password_function(rampart_context,env);
-    if(password_function)
-        password = (*password_function)(env,username,param);
 
-    else
+    password = rampart_context_get_password(rampart_context,env);
+    
+    if(!password)
     {
-        password_callback = rampart_context_get_password_callback(rampart_context,env);
-        if(!password_callback)
+        password_function = rampart_context_get_pwcb_function(rampart_context,env);
+        if(password_function)
+            password = (*password_function)(env,username,param);
+
+        else
         {
-            AXIS2_LOG_INFO(env->log, "[rampart][rampart_usernametoken] password callback module is not loaded. ERROR");
-            return AXIS2_FAILURE;
-        }
+            password_callback = rampart_context_get_password_callback(rampart_context,env);
+            if(!password_callback)
+            {
+                AXIS2_LOG_INFO(env->log, "[rampart][rampart_usernametoken] password callback module is not loaded. ERROR");
+                return AXIS2_FAILURE;
+            }
 
-        password = rampart_callback_password(env, password_callback,username);
+            password = rampart_callback_password(env, password_callback,username);
+        }
     }
-
     if (!password)
     {
         AXIS2_LOG_INFO(env->log, "[rampart][rampart_usernametoken] Cannot find the password for user %s. ERROR", username);
@@ -237,12 +243,12 @@
 
 
             AXIOM_ELEMENT_SET_NAMESPACE(un_ele, env, sec_ns_obj, un_node);
-
         }
-        /*From policy we can get this as a bool */
-/*      if (0 == AXIS2_STRCMP(password_type, RAMPART_PASSWORD_DIGEST))*/
-        isdigest = rampart_context_get_password_type(rampart_context,env);
-        if(isdigest)
+        
+        password_type = rampart_context_get_password_type(rampart_context,env);
+        if(!password_type)
+            password_type = RAMPART_PASSWORD_TEXT;
+        if (0 == AXIS2_STRCMP(password_type, RAMPART_PASSWORD_DIGEST))
         {
             axis2_char_t *nonce_val = NULL;
             axis2_char_t *created_val = NULL;
@@ -356,10 +362,11 @@
     rampart_username_token_impl_t *username_token_impl = NULL;
     rampart_authn_provider_status_t auth_status= RAMPART_AUTHN_PROVIDER_GENERAL_ERROR ;
     axiom_element_t *ut_ele = NULL;
-    pfunc password_function = NULL;
+    password_callback_fn password_function = NULL;
     void *param = NULL;
     auth_password_func authenticate_with_password = NULL;
     auth_digest_func authenticate_with_digest = NULL;
+    axis2_char_t *password_type_pol = NULL; 
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     username_token_impl = AXIS2_INTF_TO_IMPL(username_token);
@@ -422,16 +429,19 @@
                     return AXIS2_FAILURE;
                 }
                 /*Then we must check the password type with policy*/
-                else if(rampart_context_get_password_type(rampart_context,env))
+                password_type_pol = rampart_context_get_password_type(rampart_context,env);
+                if(!password_type_pol)
+                    password_type_pol = RP_PLAINTEXT;
+
+                if(AXIS2_STRCMP(password_type_pol,RP_DIGEST)==0)
                 {
                     if(0 != AXIS2_STRCMP(password_type, RAMPART_PASSWORD_DIGEST_URI))
                     {
                         AXIS2_LOG_INFO(env->log, "[rampart][rampart_usernametoken] Password Type is Wrong");
                         return AXIS2_FAILURE;
                     }                        
-                
                 }   
-                else if(!rampart_context_get_password_type(rampart_context,env))     
+                else if(AXIS2_STRCMP(password_type_pol,RP_PLAINTEXT)==0)     
                 {
                     if(0 == AXIS2_STRCMP(password_type, RAMPART_PASSWORD_DIGEST_URI))
                     {
@@ -545,23 +555,27 @@
         
     }else{
         /*Auth module is NULL. Use Callback password*/
+        /*First we must check the password in rampart_context.*/
+        password_from_svr = rampart_context_get_password(rampart_context,env);
         
-        /*First we must check whether the password get function pointer is set.(eg:from php)*/
-        password_function = rampart_context_get_password_function(rampart_context,env);
-        if(password_function)
-            password_from_svr = (*password_function)(env,username,param);
+        /*If not then check the call  back function*/
+        if(!password_from_svr)
+        {            
+            password_function = rampart_context_get_pwcb_function(rampart_context,env);
+            if(password_function)
+                password_from_svr = (*password_function)(env,username,param);
 
-        else
-        {    
-            password_callback = rampart_context_get_password_callback(rampart_context,env);
-            if(!password_callback){
-                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[rampart][rampart_usernametoken] Password callback module is not specified");
-                return AXIS2_FAILURE;
-            }
-        
-            AXIS2_LOG_INFO(env->log,  "[rampart][rampart_usernametoken] Password authentication using CALLBACK MODULE ");
-           /*password_from_svr = rampart_callback_password(env, pw_callback_module, username, ctx);*/
-            password_from_svr = rampart_callback_password(env, password_callback, username);
+            else
+            {    
+                password_callback = rampart_context_get_password_callback(rampart_context,env);
+                if(!password_callback){
+                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[rampart][rampart_usernametoken] Password callback module is not specified");
+                    return AXIS2_FAILURE;
+                }
+                AXIS2_LOG_INFO(env->log,  "[rampart][rampart_usernametoken] Password authentication using CALLBACK MODULE ");
+                /*password_from_svr = rampart_callback_password(env, pw_callback_module, username, ctx);*/
+                password_from_svr = rampart_callback_password(env, password_callback, username);
+            }                 
         }
 
         if (!password_from_svr)



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org