Author: kaushalye
Date: Tue Nov 20 22:01:56 2007
New Revision: 596945

URL: http://svn.apache.org/viewvc?rev=596945&view=rev
Log:
1. A bug fix in Signature encryption
2. New scenario to demo
Symmetric binding. Both encryption and sign. The protection order is 
Encrypt->Sign. And  Signature is Encrypted

Added:
    webservices/rampart/trunk/c/samples/secpolicy/scenario13/
    webservices/rampart/trunk/c/samples/secpolicy/scenario13/client-policy.xml
    webservices/rampart/trunk/c/samples/secpolicy/scenario13/services.xml
Modified:
    webservices/rampart/trunk/c/samples/secpolicy/README.txt
    webservices/rampart/trunk/c/src/util/rampart_encryption.c

Modified: webservices/rampart/trunk/c/samples/secpolicy/README.txt
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/samples/secpolicy/README.txt?rev=596945&r1=596944&r2=596945&view=diff
==============================================================================
--- webservices/rampart/trunk/c/samples/secpolicy/README.txt (original)
+++ webservices/rampart/trunk/c/samples/secpolicy/README.txt Tue Nov 20 
22:01:56 2007
@@ -34,6 +34,9 @@
 12.         Symmetric binding. Both encryption and sign.
             The protection order is Sign->Encrypt
             Signature is Encrypted
+13.         Symmetric binding. Both encryption and sign.
+            The protection order is Encrypt->Sign
+            Signature is Encrypted
 
 FAQ:
 ---

Added: 
webservices/rampart/trunk/c/samples/secpolicy/scenario13/client-policy.xml
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/samples/secpolicy/scenario13/client-policy.xml?rev=596945&view=auto
==============================================================================
--- webservices/rampart/trunk/c/samples/secpolicy/scenario13/client-policy.xml 
(added)
+++ webservices/rampart/trunk/c/samples/secpolicy/scenario13/client-policy.xml 
Tue Nov 20 22:01:56 2007
@@ -0,0 +1,69 @@
+<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy";>
+    <wsp:ExactlyOne>
+        <wsp:All>
+           <sp:SymmetricBinding 
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>
+                <wsp:Policy>
+                    <sp:ProtectionToken>
+                        <wsp:Policy>
+                            <sp:X509Token 
sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never";>
+                                <wsp:Policy>
+                                    <sp:RequireDerivedKeys/>
+                                    <sp:RequireThumbprintReference/>
+                                    <sp:WssX509V3Token10/>
+                                </wsp:Policy>
+                            </sp:X509Token>
+                        </wsp:Policy>
+                    </sp:ProtectionToken>
+                    <sp:AlgorithmSuite>
+                        <wsp:Policy>
+                            <sp:Basic256/>
+                        </wsp:Policy>
+                    </sp:AlgorithmSuite>
+                    <sp:Layout>
+                        <wsp:Policy>
+                            <sp:Strict/>
+                        </wsp:Policy>
+                    </sp:Layout>
+                    <sp:IncludeTimestamp/>
+                    <sp:EncryptSignature/>
+                    <sp:EncryptBeforeSigning/>
+                    <sp:OnlySignEntireHeadersAndBody/>
+                </wsp:Policy>
+            </sp:SymmetricBinding>
+            <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/AlwaysToRecipient";>
+                        <wsp:Policy>
+                            <sp:WssUsernameToken10/>
+                        </wsp:Policy>
+                    </sp:UsernameToken>
+                </wsp:Policy>
+            </sp:SignedSupportingTokens>
+            <sp:Wss11 
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>
+                <wsp:Policy>
+                    <sp:MustSupportRefKeyIdentifier/>
+                    <sp:MustSupportRefIssuerSerial/>
+                    <sp:MustSupportRefThumbprint/>
+                    <sp:MustSupportRefEncryptedKey/>
+                </wsp:Policy>
+            </sp:Wss11>
+            <sp:EncryptedParts 
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>
+                <sp:Body/>
+            </sp:EncryptedParts>
+            <sp:SignedParts 
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>
+                <sp:Body/>
+                <sp:Header Namespace="http://www.w3.org/2005/08/addressing"/>
+            </sp:SignedParts>
+            <rampc:RampartConfig 
xmlns:rampc="http://ws.apache.org/rampart/c/policy";>
+                <rampc:User>Alice</rampc:User>
+                <rampc:TimeToLive>360</rampc:TimeToLive>
+                <rampc:EncryptionUser>a</rampc:EncryptionUser>
+                <rampc:PasswordType>Digest</rampc:PasswordType>
+                
<rampc:PasswordCallbackClass>AXIS2C_HOME/bin/samples/rampart/callback/libpwcb.so</rampc:PasswordCallbackClass>
+                
<rampc:ReceiverCertificate>AXIS2C_HOME/bin/samples/rampart/keys/ahome/bob_cert.cert</rampc:ReceiverCertificate>
+                
<rampc:Certificate>AXIS2C_HOME/bin/samples/rampart/keys/ahome/alice_cert.cert</rampc:Certificate>
+                
<rampc:PrivateKey>AXIS2C_HOME/bin/samples/rampart/keys/ahome/alice_key.pem</rampc:PrivateKey>
+            </rampc:RampartConfig>
+        </wsp:All>
+    </wsp:ExactlyOne>
+</wsp:Policy>

Added: webservices/rampart/trunk/c/samples/secpolicy/scenario13/services.xml
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/samples/secpolicy/scenario13/services.xml?rev=596945&view=auto
==============================================================================
--- webservices/rampart/trunk/c/samples/secpolicy/scenario13/services.xml 
(added)
+++ webservices/rampart/trunk/c/samples/secpolicy/scenario13/services.xml Tue 
Nov 20 22:01:56 2007
@@ -0,0 +1,75 @@
+<service name="sec_echo">
+    <parameter name="ServiceClass" locked="xsd:false">sec_echo</parameter>
+
+   <description>
+        This is a testing service , to test the system is working or not
+   </description>
+    <module ref="rampart"/>
+    <operation name="echoString">
+            <parameter 
name="wsamapping">http://example.com/ws/2004/09/policy/Test/EchoRequest</parameter>
+    </operation>
+
+    <wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy";>
+        <wsp:ExactlyOne>
+            <wsp:All>
+              <sp:SymmetricBinding 
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>
+                <wsp:Policy>
+                    <sp:ProtectionToken>
+                        <wsp:Policy>
+                            <sp:X509Token 
sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never";>
+                                <wsp:Policy>
+                                    <sp:RequireDerivedKeys/>
+                                    <sp:RequireThumbprintReference/>
+                                    <sp:WssX509V3Token10/>
+                                </wsp:Policy>
+                            </sp:X509Token>
+                        </wsp:Policy>
+                    </sp:ProtectionToken>
+                    <sp:AlgorithmSuite>
+                        <wsp:Policy>
+                            <sp:Basic256/>
+                        </wsp:Policy>
+                    </sp:AlgorithmSuite>
+                    <sp:Layout>
+                        <wsp:Policy>
+                            <sp:Strict/>
+                        </wsp:Policy>
+                    </sp:Layout>
+                    <sp:IncludeTimestamp/>
+                    <sp:EncryptBeforeSigning/>
+                    <sp:EncryptSignature/>
+                    <sp:OnlySignEntireHeadersAndBody/>
+                </wsp:Policy>
+            </sp:SymmetricBinding> 
+                <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>
+                        <sp:MustSupportRefKeyIdentifier/>
+                        <sp:MustSupportRefEmbeddedToken/>
+                        <sp:MustSupportRefIssuerSerial/>
+                    </wsp:Policy>
+                </sp:Wss10>
+                <sp:EncryptedParts 
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>
+                    <sp:Body/>
+                </sp:EncryptedParts>
+                <sp:SignedParts 
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>
+                    <sp:Body/>
+                </sp:SignedParts>
+                <rampc:RampartConfig 
xmlns:rampc="http://ws.apache.org/rampart/c/policy";>
+                    <rampc:User>Bob</rampc:User>
+                    <rampc:TimeToLive>360</rampc:TimeToLive>
+                    <rampc:EncryptionUser>b</rampc:EncryptionUser>
+                    <rampc:PasswordType>Digest</rampc:PasswordType>
+                    
<rampc:PasswordCallbackClass>AXIS2C_HOME/bin/samples/rampart/callback/libpwcb.so</rampc:PasswordCallbackClass>
+                    
<rampc:ReceiverCertificate>AXIS2C_HOME/bin/samples/rampart/keys/bhome/alice_cert.cert</rampc:ReceiverCertificate>
+                    
<rampc:Certificate>AXIS2C_HOME/bin/samples/rampart/keys/bhome/bob_cert.cert</rampc:Certificate>
+                    
<rampc:PrivateKey>AXIS2C_HOME/bin/samples/rampart/keys/bhome/bob_key.pem</rampc:PrivateKey>
+                </rampc:RampartConfig>
+            </wsp:All>
+        </wsp:ExactlyOne>
+    </wsp:Policy>
+</service>

Modified: webservices/rampart/trunk/c/src/util/rampart_encryption.c
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_encryption.c?rev=596945&r1=596944&r2=596945&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_encryption.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_encryption.c Tue Nov 20 
22:01:56 2007
@@ -763,7 +763,6 @@
     axiom_node_t *encrypted_key_node = NULL;
     axiom_node_t *temp_node = NULL;
     axiom_node_t *node_to_move = NULL;
-    axiom_node_t *ref_list_node = NULL;
     axis2_bool_t use_derived_keys = AXIS2_TRUE;
     axis2_bool_t server_side = AXIS2_FALSE;
     rp_property_t *token = NULL;
@@ -868,6 +867,7 @@
 
        if(!use_derived_keys)
        {
+        axiom_node_t *ref_list_node = NULL;
                ref_list_node = oxs_token_build_data_reference_list(
                                                 env, encrypted_key_node, 
id_list);
                if(!ref_list_node)
@@ -876,10 +876,27 @@
                                                        
"[rampart][rampart_encryption]Encrypting signature,Building reference list 
failed");
                        return AXIS2_FAILURE;
                }
-       }
+       }else{
+        /*Now we are using derived keys*/
+        axiom_node_t *ref_list_node = NULL;
+        
+        /*Check if the RefList is already exist*/
+        ref_list_node = oxs_axiom_get_first_child_node_by_name(env, sec_node, 
OXS_NODE_REFERENCE_LIST, OXS_ENC_NS, NULL);
+        if(ref_list_node){
+            axis2_char_t *mod_id = NULL;
+            axiom_node_t *data_ref_node = NULL;
+
+            /*Append ID to the list*/
+            mod_id = axutil_stracat(env, "#",id);
+            data_ref_node = oxs_token_build_data_reference_element(env, 
ref_list_node, mod_id);
+        }else{
+            /*Create a fresh node*/
+            ref_list_node = oxs_token_build_data_reference_list(env, sec_node, 
id_list);
+        }
+    }
 
     if(id_list){
-        /*TODO need to free data of the list*/
+        /*Need to free data of the list*/
         int size = 0;
         int j = 0;
         size = axutil_array_list_size(id_list, env);


Reply via email to