You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by gi...@apache.org on 2012/07/31 09:20:30 UTC

svn commit: r1367437 [2/3] - in /santuario/xml-security-java/trunk/src: main/java/org/apache/xml/security/stax/config/ main/java/org/apache/xml/security/stax/ext/ main/java/org/apache/xml/security/stax/impl/ main/java/org/apache/xml/security/stax/impl/...

Modified: santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/BaltimoreTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/BaltimoreTest.java?rev=1367437&r1=1367436&r2=1367437&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/BaltimoreTest.java (original)
+++ santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/BaltimoreTest.java Tue Jul 31 07:20:29 2012
@@ -18,38 +18,9 @@
  */
 package org.apache.xml.security.test.stax.signature;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.math.BigInteger;
-import java.security.Key;
-import java.security.KeyFactory;
-import java.security.NoSuchAlgorithmException;
-import java.security.PublicKey;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateFactory;
-import java.security.spec.DSAPublicKeySpec;
-import java.security.spec.InvalidKeySpecException;
-import java.security.spec.KeySpec;
-import java.security.spec.RSAPublicKeySpec;
-
-import javax.crypto.SecretKey;
-import javax.crypto.spec.SecretKeySpec;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
 import org.apache.xml.security.stax.config.Init;
-import org.apache.xml.security.stax.ext.InboundXMLSec;
-import org.apache.xml.security.stax.ext.XMLSec;
-import org.apache.xml.security.stax.ext.XMLSecurityConstants;
-import org.apache.xml.security.stax.ext.XMLSecurityException;
-import org.apache.xml.security.stax.ext.XMLSecurityProperties;
+import org.apache.xml.security.stax.ext.*;
+import org.apache.xml.security.stax.impl.resourceResolvers.ResolverHttp;
 import org.apache.xml.security.stax.impl.securityToken.KeyNameSecurityToken;
 import org.apache.xml.security.stax.impl.securityToken.X509IssuerSerialSecurityToken;
 import org.apache.xml.security.stax.impl.securityToken.X509SecurityToken;
@@ -58,126 +29,155 @@ import org.apache.xml.security.stax.secu
 import org.apache.xml.security.stax.securityEvent.KeyNameTokenSecurityEvent;
 import org.apache.xml.security.stax.securityEvent.SecurityEventConstants;
 import org.apache.xml.security.stax.securityEvent.X509TokenSecurityEvent;
+import org.apache.xml.security.test.stax.utils.HttpRequestRedirectorProxy;
 import org.apache.xml.security.test.stax.utils.StAX2DOM;
 import org.apache.xml.security.test.stax.utils.XMLSecEventAllocator;
+import org.apache.xml.security.utils.resolver.implementations.ResolverDirectHTTP;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.w3c.dom.Document;
 
+import javax.crypto.SecretKey;
+import javax.crypto.spec.SecretKeySpec;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.math.BigInteger;
+import java.net.InetSocketAddress;
+import java.net.Proxy;
+import java.security.Key;
+import java.security.KeyFactory;
+import java.security.NoSuchAlgorithmException;
+import java.security.PublicKey;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateFactory;
+import java.security.spec.DSAPublicKeySpec;
+import java.security.spec.InvalidKeySpecException;
+import java.security.spec.KeySpec;
+import java.security.spec.RSAPublicKeySpec;
+
 /**
  * This test is to ensure interoperability with the examples provided by Merlin Huges
  * from Baltimore using KeyTools XML. These test vectors are located in the directory
  * <CODE>data/ie/baltimore/merlin-examples/</CODE>.
  */
 public class BaltimoreTest extends org.junit.Assert {
-    
+
     // Define the Keys
-    private static final String DSA_Y_15 = 
+    private static final String DSA_Y_15 =
             "115203950979070769597657569663716864200265690506131586710935599127492300629516054244303718491264700507050531664369568983959612733142807939657310552030830047581310927762782113239508532964275507679031853214612302688824126378201645385366744606832999486491789495152132626085258574701982291168980000698378860886873";
-    private static final String DSA_P_15 = 
+    private static final String DSA_P_15 =
             "121033250678995538022022124214072656199829294480692899035850141795699542545378201726193497344869641617273048303017322131526064041655960510339688462254212325543249651574552121248151721671060674713763786027111260872491665074056568193597793098934224508869545165272139556565195175269711053169607670995531444433119";
-    private static final String DSA_Q_15 = 
+    private static final String DSA_Q_15 =
             "823717057890271871604122239238242495719695602139";
-    private static final String DSA_G_15 = 
+    private static final String DSA_G_15 =
             "113709439310240579695634427940532553339153309050965923053944743350349492610217223233554103433240275709268290855590822451558081648385087332128571652948927700423837483999268638666380469524185563535721798130108422578679112065013488826955558565315260470798091784763365661341500996656179557254055807134339468077740";
-    
-    private static final String DSA_Y_23 = 
+
+    private static final String DSA_Y_23 =
             "80026536890415588226993967074802366345532111071996614329958273726987312793428976563150962820221958657035350883783333114440594283158882947014404379349024727056511062396105922288543622677857064953798194192629372470477877685764866927778171632085895970792043576543410064885269033444006824418538675423762259516373";
-    private static final String DSA_P_23 = 
+    private static final String DSA_P_23 =
             "155815845848136428348513787535580769292891787794606906010809242781927942460027924470889128454634145310504964035836740413935833768776146975366062988606794626729218709107639643307263523837539818364822163124440107294709050662439623469573847261172409545075745852010154062349090119229706651663921501121076348530353";
-    private static final String DSA_Q_23 = 
+    private static final String DSA_Q_23 =
             "754720990747214486912441906510972542486475779877";
-    private static final String DSA_G_23 = 
+    private static final String DSA_G_23 =
             "111292836411933361753715009819562115824198729809679289876790990949014814123080630068100046684028425631677048464500864615731436519223776555031901385958247163146625548407735868798008172684224658036609181933662459888361728882309490715627267690599122521795008079205873131205682998421914439581619661363918474561824";
-    
-    private static final String RSA_MOD_15 = 
+
+    private static final String RSA_MOD_15 =
             "119329599520775465924022606372296074200605535144668022371076132699687141255709737174045123732723708369916816841003864525367987020386846259527839447764154836329045089822539554380766373753731213041983461774133690352071525882671690061465545291631004133563847076169228588340351767773527127920590711638729665138889";
-    public static final String RSA_MOD_23 = 
+    public static final String RSA_MOD_23 =
             "120296660343377233375194603471583429595399323282961590789247283561085360125953681886041302745068082823944886660427610854189129731366720128135385763222506487464694459023332289451444021068559820208783293910859489936002104550722931306546063549539810916052250046814103434685758992623250037867084412382118349636279";
-    private static final String RSA_PUB = 
+    private static final String RSA_PUB =
             "65537";
-    
+
     private XMLInputFactory xmlInputFactory;
     private DocumentBuilderFactory documentBuilderFactory;
     private TransformerFactory transformerFactory = TransformerFactory.newInstance();
-    
+
     @Before
     public void setUp() throws Exception {
         Init.init(BaltimoreTest.class.getClassLoader().getResource("security-config.xml").toURI());
         org.apache.xml.security.Init.init();
-        
+
         xmlInputFactory = XMLInputFactory.newInstance();
         xmlInputFactory.setEventAllocator(new XMLSecEventAllocator());
-        
+
         documentBuilderFactory = DocumentBuilderFactory.newInstance();
         documentBuilderFactory.setNamespaceAware(true);
         documentBuilderFactory.setIgnoringComments(false);
         documentBuilderFactory.setCoalescing(false);
         documentBuilderFactory.setIgnoringElementContentWhitespace(false);
     }
-    
+
 
     @Test
     public void test_fifteen_enveloping_hmac_sha1() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
+        InputStream sourceDocument =
                 this.getClass().getClassLoader().getResourceAsStream(
                         "ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1.xml");
         DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
         Document document = builder.parse(sourceDocument);
-        
+
         // Set up the Key
         byte[] hmacKey = "secret".getBytes("ASCII");
         SecretKey key = new SecretKeySpec(hmacKey, "http://www.w3.org/2000/09/xmldsig#hmac-sha1");
-        
+
         // XMLUtils.outputDOM(document, System.out);
-        
+
         // Convert Document to a Stream Reader
         javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
+        final XMLStreamReader xmlStreamReader =
                 xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
+
         // Verify signature
         XMLSecurityProperties properties = new XMLSecurityProperties();
         properties.setSignatureVerificationKey(key);
         InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
         TestSecurityEventListener securityEventListener = new TestSecurityEventListener();
-        XMLStreamReader securityStreamReader = 
-            inboundXMLSec.processInMessage(xmlStreamReader, null, securityEventListener);
+        XMLStreamReader securityStreamReader =
+                inboundXMLSec.processInMessage(xmlStreamReader, null, securityEventListener);
 
         document = StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
-        
+
         // Check the SecurityEvents
         checkSignatureToken(securityEventListener, key,
-                              XMLSecurityConstants.XMLKeyIdentifierType.NO_KEY_INFO);
+                XMLSecurityConstants.XMLKeyIdentifierType.NO_KEY_INFO);
     }
-    
+
     @Test
     public void test_fifteen_enveloping_hmac_sha1_40() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
+        InputStream sourceDocument =
                 this.getClass().getClassLoader().getResourceAsStream(
                         "ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1-40.xml");
         DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
         Document document = builder.parse(sourceDocument);
-        
+
         // Set up the Key
         byte[] hmacKey = "secret".getBytes("ASCII");
         SecretKey key = new SecretKeySpec(hmacKey, "http://www.w3.org/2000/09/xmldsig#hmac-sha1");
-        
+
         // XMLUtils.outputDOM(document, System.out);
-        
+
         // Convert Document to a Stream Reader
         javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
+        final XMLStreamReader xmlStreamReader =
                 xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
+
         // Verify signature
         XMLSecurityProperties properties = new XMLSecurityProperties();
         properties.setSignatureVerificationKey(key);
@@ -192,259 +192,281 @@ public class BaltimoreTest extends org.j
             Assert.assertEquals("The signature or decryption was invalid", ex.getCause().getMessage());
         }
     }
-    
+
     // See SANTUARIO-320
     @Test
     public void test_fifteen_enveloped_dsa() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
+        InputStream sourceDocument =
                 this.getClass().getClassLoader().getResourceAsStream(
                         "ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloped-dsa.xml");
         DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
         Document document = builder.parse(sourceDocument);
-        
+
         // XMLUtils.outputDOM(document, System.out);
-        
+
         // Convert Document to a Stream Reader
         javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
+        final XMLStreamReader xmlStreamReader =
                 xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
+
         // Verify signature
         XMLSecurityProperties properties = new XMLSecurityProperties();
         InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
         TestSecurityEventListener securityEventListener = new TestSecurityEventListener();
-        XMLStreamReader securityStreamReader = 
-            inboundXMLSec.processInMessage(xmlStreamReader, null, securityEventListener);
+        XMLStreamReader securityStreamReader =
+                inboundXMLSec.processInMessage(xmlStreamReader, null, securityEventListener);
 
         StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
-        
+
         // Check the SecurityEvents
         checkSignatureToken(securityEventListener, getPublicKey("DSA", 15),
-                              XMLSecurityConstants.XMLKeyIdentifierType.KEY_VALUE);
+                XMLSecurityConstants.XMLKeyIdentifierType.KEY_VALUE);
     }
-    
+
     @Test
     public void test_fifteen_enveloping_b64_dsa() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
+        InputStream sourceDocument =
                 this.getClass().getClassLoader().getResourceAsStream(
                         "ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-b64-dsa.xml");
         DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
         Document document = builder.parse(sourceDocument);
-        
+
         // XMLUtils.outputDOM(document, System.out);
-        
+
         // Convert Document to a Stream Reader
         javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
+        final XMLStreamReader xmlStreamReader =
                 xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
+
         // Verify signature
         XMLSecurityProperties properties = new XMLSecurityProperties();
         InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
         TestSecurityEventListener securityEventListener = new TestSecurityEventListener();
-        XMLStreamReader securityStreamReader = 
-            inboundXMLSec.processInMessage(xmlStreamReader, null, securityEventListener);
+        XMLStreamReader securityStreamReader =
+                inboundXMLSec.processInMessage(xmlStreamReader, null, securityEventListener);
 
         StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
-        
+
         // Check the SecurityEvents
         checkSignatureToken(securityEventListener, getPublicKey("DSA", 15),
                 XMLSecurityConstants.XMLKeyIdentifierType.KEY_VALUE);
     }
-    
+
     @Test
     public void test_fifteen_enveloping_dsa() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
+        InputStream sourceDocument =
                 this.getClass().getClassLoader().getResourceAsStream(
                         "ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-dsa.xml");
         DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
         Document document = builder.parse(sourceDocument);
-        
+
         // XMLUtils.outputDOM(document, System.out);
-        
+
         // Convert Document to a Stream Reader
         javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
+        final XMLStreamReader xmlStreamReader =
                 xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
+
         // Verify signature
         XMLSecurityProperties properties = new XMLSecurityProperties();
         InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
         TestSecurityEventListener securityEventListener = new TestSecurityEventListener();
-        XMLStreamReader securityStreamReader = 
-            inboundXMLSec.processInMessage(xmlStreamReader, null, securityEventListener);
+        XMLStreamReader securityStreamReader =
+                inboundXMLSec.processInMessage(xmlStreamReader, null, securityEventListener);
 
         StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
-        
+
         // Check the SecurityEvents
         checkSignatureToken(securityEventListener, getPublicKey("DSA", 15),
-                              XMLSecurityConstants.XMLKeyIdentifierType.KEY_VALUE);
+                XMLSecurityConstants.XMLKeyIdentifierType.KEY_VALUE);
     }
-    
+
     @Test
     public void test_fifteen_enveloping_rsa() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
+        InputStream sourceDocument =
                 this.getClass().getClassLoader().getResourceAsStream(
                         "ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-rsa.xml");
         DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
         Document document = builder.parse(sourceDocument);
-        
+
         // XMLUtils.outputDOM(document, System.out);
-        
+
         // Convert Document to a Stream Reader
         javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
+        final XMLStreamReader xmlStreamReader =
                 xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
+
         // Verify signature
         XMLSecurityProperties properties = new XMLSecurityProperties();
         InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
         TestSecurityEventListener securityEventListener = new TestSecurityEventListener();
-        XMLStreamReader securityStreamReader = 
-            inboundXMLSec.processInMessage(xmlStreamReader, null, securityEventListener);
+        XMLStreamReader securityStreamReader =
+                inboundXMLSec.processInMessage(xmlStreamReader, null, securityEventListener);
 
         StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
-        
+
         // Check the SecurityEvents
         checkSignatureToken(securityEventListener, getPublicKey("RSA", 15),
-                              XMLSecurityConstants.XMLKeyIdentifierType.KEY_VALUE);
+                XMLSecurityConstants.XMLKeyIdentifierType.KEY_VALUE);
     }
-    
+
     // See SANTUARIO-319
     @Test
-    @Ignore
     public void test_fifteen_external_b64_dsa() throws Exception {
-        // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-external-b64-dsa.xml");
-        DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
-        Document document = builder.parse(sourceDocument);
-        
-        // Set up the Key
-        Key publicKey = getPublicKey("DSA", 15);
-        
-        // XMLUtils.outputDOM(document, System.out);
-        
-        // Convert Document to a Stream Reader
-        javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
-                xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
-        // Verify signature
-        XMLSecurityProperties properties = new XMLSecurityProperties();
-        properties.setSignatureVerificationKey(publicKey);
-        InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
-        XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
 
-        StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        Proxy proxy = HttpRequestRedirectorProxy.startHttpEngine();
+        try {
+            ResolverHttp.setProxy(proxy);
+
+            ResolverDirectHTTP resolverDirectHTTP = new ResolverDirectHTTP();
+            resolverDirectHTTP.engineSetProperty("http.proxy.host", ((InetSocketAddress) proxy.address()).getAddress().getHostAddress());
+            resolverDirectHTTP.engineSetProperty("http.proxy.port", "" + ((InetSocketAddress) proxy.address()).getPort());
+
+            // Read in plaintext document
+            InputStream sourceDocument =
+                    this.getClass().getClassLoader().getResourceAsStream(
+                            "ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-external-b64-dsa.xml");
+            DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
+            Document document = builder.parse(sourceDocument);
+
+            // Set up the Key
+            Key publicKey = getPublicKey("DSA", 15);
+
+            // XMLUtils.outputDOM(document, System.out);
+
+            // Convert Document to a Stream Reader
+            javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            transformer.transform(new DOMSource(document), new StreamResult(baos));
+            final XMLStreamReader xmlStreamReader =
+                    xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
+
+            // Verify signature
+            XMLSecurityProperties properties = new XMLSecurityProperties();
+            properties.setSignatureVerificationKey(publicKey);
+            InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
+            XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
+
+            StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        } finally {
+            HttpRequestRedirectorProxy.stopHttpEngine();
+        }
     }
-    
+
     // See SANTUARIO-319
     @Test
-    @Ignore
     public void test_fifteen_external_dsa() throws Exception {
-        // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-external-dsa.xml");
-        DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
-        Document document = builder.parse(sourceDocument);
-        
-        // Set up the Key
-        Key publicKey = getPublicKey("DSA", 15);
-        
-        // XMLUtils.outputDOM(document, System.out);
-        
-        // Convert Document to a Stream Reader
-        javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
-                xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
-        // Verify signature
-        XMLSecurityProperties properties = new XMLSecurityProperties();
-        properties.setSignatureVerificationKey(publicKey);
-        InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
-        XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
 
-        StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        Proxy proxy = HttpRequestRedirectorProxy.startHttpEngine();
+
+        try {
+            ResolverHttp.setProxy(proxy);
+
+            ResolverDirectHTTP resolverDirectHTTP = new ResolverDirectHTTP();
+            resolverDirectHTTP.engineSetProperty("http.proxy.host", ((InetSocketAddress) proxy.address()).getAddress().getHostAddress());
+            resolverDirectHTTP.engineSetProperty("http.proxy.port", "" + ((InetSocketAddress) proxy.address()).getPort());
+            // Read in plaintext document
+            InputStream sourceDocument =
+                    this.getClass().getClassLoader().getResourceAsStream(
+                            "ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-external-dsa.xml");
+            DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
+            Document document = builder.parse(sourceDocument);
+
+            // Set up the Key
+            Key publicKey = getPublicKey("DSA", 15);
+
+            // XMLUtils.outputDOM(document, System.out);
+
+            // Convert Document to a Stream Reader
+            javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            transformer.transform(new DOMSource(document), new StreamResult(baos));
+            final XMLStreamReader xmlStreamReader =
+                    xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
+
+            // Verify signature
+            XMLSecurityProperties properties = new XMLSecurityProperties();
+            properties.setSignatureVerificationKey(publicKey);
+            InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
+            XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
+
+            StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        } finally {
+            HttpRequestRedirectorProxy.stopHttpEngine();
+        }
     }
-    
+
     @Test
     public void test_twenty_three_enveloping_hmac_sha1() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
+        InputStream sourceDocument =
                 this.getClass().getClassLoader().getResourceAsStream(
                         "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1.xml");
         DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
         Document document = builder.parse(sourceDocument);
-        
+
         // Set up the Key
         byte[] hmacKey = "secret".getBytes("ASCII");
         SecretKey key = new SecretKeySpec(hmacKey, "http://www.w3.org/2000/09/xmldsig#hmac-sha1");
-        
+
         // XMLUtils.outputDOM(document, System.out);
-        
+
         // Convert Document to a Stream Reader
         javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
+        final XMLStreamReader xmlStreamReader =
                 xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
+
         // Verify signature
         XMLSecurityProperties properties = new XMLSecurityProperties();
         properties.setSignatureVerificationKey(key);
         InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
         TestSecurityEventListener securityEventListener = new TestSecurityEventListener();
-        XMLStreamReader securityStreamReader = 
-            inboundXMLSec.processInMessage(xmlStreamReader, null, securityEventListener);
+        XMLStreamReader securityStreamReader =
+                inboundXMLSec.processInMessage(xmlStreamReader, null, securityEventListener);
 
         document = StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
-        
+
         // Check the SecurityEvents
         checkSignatureToken(securityEventListener, key,
-                              XMLSecurityConstants.XMLKeyIdentifierType.NO_KEY_INFO);
+                XMLSecurityConstants.XMLKeyIdentifierType.NO_KEY_INFO);
     }
-    
+
     @Test
     public void test_twenty_three_enveloping_hmac_sha1_40() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
+        InputStream sourceDocument =
                 this.getClass().getClassLoader().getResourceAsStream(
                         "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1-40.xml");
         DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
         Document document = builder.parse(sourceDocument);
-        
+
         // Set up the Key
         byte[] hmacKey = "secret".getBytes("ASCII");
         SecretKey key = new SecretKeySpec(hmacKey, "http://www.w3.org/2000/09/xmldsig#hmac-sha1");
-        
+
         // XMLUtils.outputDOM(document, System.out);
-        
+
         // Convert Document to a Stream Reader
         javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
+        final XMLStreamReader xmlStreamReader =
                 xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
+
         // Verify signature
         XMLSecurityProperties properties = new XMLSecurityProperties();
         properties.setSignatureVerificationKey(key);
@@ -459,29 +481,29 @@ public class BaltimoreTest extends org.j
             Assert.assertEquals("The signature or decryption was invalid", ex.getCause().getMessage());
         }
     }
-    
+
     // See SANTUARIO-320
     @Test
     public void test_twenty_three_enveloped_dsa() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
+        InputStream sourceDocument =
                 this.getClass().getClassLoader().getResourceAsStream(
                         "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-enveloped-dsa.xml");
         DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
         Document document = builder.parse(sourceDocument);
-        
+
         // Set up the Key
         Key publicKey = getPublicKey("DSA", 23);
-        
+
         // XMLUtils.outputDOM(document, System.out);
-        
+
         // Convert Document to a Stream Reader
         javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
+        final XMLStreamReader xmlStreamReader =
                 xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
+
         // Verify signature
         XMLSecurityProperties properties = new XMLSecurityProperties();
         properties.setSignatureVerificationKey(publicKey);
@@ -490,28 +512,28 @@ public class BaltimoreTest extends org.j
 
         StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
     }
-    
+
     @Test
     public void test_twenty_three_enveloping_b64_dsa() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
+        InputStream sourceDocument =
                 this.getClass().getClassLoader().getResourceAsStream(
                         "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-enveloping-b64-dsa.xml");
         DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
         Document document = builder.parse(sourceDocument);
-        
+
         // Set up the Key
         Key publicKey = getPublicKey("DSA", 23);
-        
+
         // XMLUtils.outputDOM(document, System.out);
-        
+
         // Convert Document to a Stream Reader
         javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
+        final XMLStreamReader xmlStreamReader =
                 xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
+
         // Verify signature
         XMLSecurityProperties properties = new XMLSecurityProperties();
         properties.setSignatureVerificationKey(publicKey);
@@ -520,373 +542,484 @@ public class BaltimoreTest extends org.j
 
         StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
     }
-    
+
     @Test
     public void test_twenty_three_enveloping_dsa() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
+        InputStream sourceDocument =
                 this.getClass().getClassLoader().getResourceAsStream(
                         "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-enveloping-dsa.xml");
         DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
         Document document = builder.parse(sourceDocument);
-        
+
         // XMLUtils.outputDOM(document, System.out);
-        
+
         // Convert Document to a Stream Reader
         javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
+        final XMLStreamReader xmlStreamReader =
                 xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
+
         // Verify signature
         XMLSecurityProperties properties = new XMLSecurityProperties();
         InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
         TestSecurityEventListener securityEventListener = new TestSecurityEventListener();
-        XMLStreamReader securityStreamReader = 
-            inboundXMLSec.processInMessage(xmlStreamReader, null, securityEventListener);
+        XMLStreamReader securityStreamReader =
+                inboundXMLSec.processInMessage(xmlStreamReader, null, securityEventListener);
 
         StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
-        
+
         // Check the SecurityEvents
         checkSignatureToken(securityEventListener, getPublicKey("DSA", 23),
-                              XMLSecurityConstants.XMLKeyIdentifierType.KEY_VALUE);
+                XMLSecurityConstants.XMLKeyIdentifierType.KEY_VALUE);
     }
-    
+
     @Test
     public void test_twenty_three_enveloping_rsa() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
+        InputStream sourceDocument =
                 this.getClass().getClassLoader().getResourceAsStream(
                         "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-enveloping-rsa.xml");
         DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
         Document document = builder.parse(sourceDocument);
-        
+
         // XMLUtils.outputDOM(document, System.out);
-        
+
         // Convert Document to a Stream Reader
         javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
+        final XMLStreamReader xmlStreamReader =
                 xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
+
         // Verify signature
         XMLSecurityProperties properties = new XMLSecurityProperties();
         InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
         TestSecurityEventListener securityEventListener = new TestSecurityEventListener();
-        XMLStreamReader securityStreamReader = 
-            inboundXMLSec.processInMessage(xmlStreamReader, null, securityEventListener);
+        XMLStreamReader securityStreamReader =
+                inboundXMLSec.processInMessage(xmlStreamReader, null, securityEventListener);
 
         StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
-        
+
         // Check the SecurityEvents
         checkSignatureToken(securityEventListener, getPublicKey("RSA", 23),
-                              XMLSecurityConstants.XMLKeyIdentifierType.KEY_VALUE);
+                XMLSecurityConstants.XMLKeyIdentifierType.KEY_VALUE);
     }
-    
+
     // See Santuario-319
     @Test
-    @Ignore
     public void test_twenty_three_external_b64_dsa() throws Exception {
-        // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-external-b64-dsa.xml");
-        DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
-        Document document = builder.parse(sourceDocument);
-        
-        // Set up the Key
-        Key publicKey = getPublicKey("DSA", 23);
-        
-        // XMLUtils.outputDOM(document, System.out);
-        
-        // Convert Document to a Stream Reader
-        javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
-                xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
-        // Verify signature
-        XMLSecurityProperties properties = new XMLSecurityProperties();
-        properties.setSignatureVerificationKey(publicKey);
-        InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
-        XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
 
-        StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        Proxy proxy = HttpRequestRedirectorProxy.startHttpEngine();
+
+        try {
+            ResolverHttp.setProxy(proxy);
+
+            ResolverDirectHTTP resolverDirectHTTP = new ResolverDirectHTTP();
+            resolverDirectHTTP.engineSetProperty("http.proxy.host", ((InetSocketAddress) proxy.address()).getAddress().getHostAddress());
+            resolverDirectHTTP.engineSetProperty("http.proxy.port", "" + ((InetSocketAddress) proxy.address()).getPort());
+
+            // Read in plaintext document
+            InputStream sourceDocument =
+                    this.getClass().getClassLoader().getResourceAsStream(
+                            "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-external-b64-dsa.xml");
+            DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
+            Document document = builder.parse(sourceDocument);
+
+            // Set up the Key
+            Key publicKey = getPublicKey("DSA", 23);
+
+            // XMLUtils.outputDOM(document, System.out);
+
+            // Convert Document to a Stream Reader
+            javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            transformer.transform(new DOMSource(document), new StreamResult(baos));
+            final XMLStreamReader xmlStreamReader =
+                    xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
+
+            // Verify signature
+            XMLSecurityProperties properties = new XMLSecurityProperties();
+            properties.setSignatureVerificationKey(publicKey);
+            InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
+            XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
+
+            StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        } finally {
+            HttpRequestRedirectorProxy.stopHttpEngine();
+        }
     }
-    
+
     // See SANTUARIO-319
     @Test
-    @Ignore
     public void test_twenty_three_external_dsa() throws Exception {
-        // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-external-dsa.xml");
-        DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
-        Document document = builder.parse(sourceDocument);
-        
-        // Set up the Key
-        Key publicKey = getPublicKey("DSA", 23);
-        
-        // XMLUtils.outputDOM(document, System.out);
-        
-        // Convert Document to a Stream Reader
-        javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
-                xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
-        // Verify signature
-        XMLSecurityProperties properties = new XMLSecurityProperties();
-        properties.setSignatureVerificationKey(publicKey);
-        InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
-        XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
 
-        StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        Proxy proxy = HttpRequestRedirectorProxy.startHttpEngine();
+
+        try {
+            ResolverHttp.setProxy(proxy);
+
+            ResolverDirectHTTP resolverDirectHTTP = new ResolverDirectHTTP();
+            resolverDirectHTTP.engineSetProperty("http.proxy.host", ((InetSocketAddress) proxy.address()).getAddress().getHostAddress());
+            resolverDirectHTTP.engineSetProperty("http.proxy.port", "" + ((InetSocketAddress) proxy.address()).getPort());
+
+            // Read in plaintext document
+            InputStream sourceDocument =
+                    this.getClass().getClassLoader().getResourceAsStream(
+                            "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-external-dsa.xml");
+            DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
+            Document document = builder.parse(sourceDocument);
+
+            // Set up the Key
+            Key publicKey = getPublicKey("DSA", 23);
+
+            // XMLUtils.outputDOM(document, System.out);
+
+            // Convert Document to a Stream Reader
+            javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            transformer.transform(new DOMSource(document), new StreamResult(baos));
+            final XMLStreamReader xmlStreamReader =
+                    xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
+
+            // Verify signature
+            XMLSecurityProperties properties = new XMLSecurityProperties();
+            properties.setSignatureVerificationKey(publicKey);
+            InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
+            XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
+
+            StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        } finally {
+            HttpRequestRedirectorProxy.stopHttpEngine();
+        }
     }
-    
+
     // See SANTUARIO-319
     @Test
-    @Ignore
     public void test_signature_keyname() throws Exception {
-        // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-keyname.xml");
-        DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
-        Document document = builder.parse(sourceDocument);
-        
-        // Set up the Key
-        CertificateFactory cf = CertificateFactory.getInstance("X509");
-        InputStream sourceCert = 
-            this.getClass().getClassLoader().getResourceAsStream(
-                    "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/certs/lugh.crt");
-  
-        Certificate cert = cf.generateCertificate(sourceCert);
-        
-        // XMLUtils.outputDOM(document, System.out);
-        
-        // Convert Document to a Stream Reader
-        javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
-                xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
-        // Verify signature
-        XMLSecurityProperties properties = new XMLSecurityProperties();
-        properties.setSignatureVerificationKey(cert.getPublicKey());
-        InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
-        XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
 
-        StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        Proxy proxy = HttpRequestRedirectorProxy.startHttpEngine();
+
+        try {
+            ResolverHttp.setProxy(proxy);
+
+            ResolverDirectHTTP resolverDirectHTTP = new ResolverDirectHTTP();
+            resolverDirectHTTP.engineSetProperty("http.proxy.host", ((InetSocketAddress) proxy.address()).getAddress().getHostAddress());
+            resolverDirectHTTP.engineSetProperty("http.proxy.port", "" + ((InetSocketAddress) proxy.address()).getPort());
+
+            // Read in plaintext document
+            InputStream sourceDocument =
+                    this.getClass().getClassLoader().getResourceAsStream(
+                            "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-keyname.xml");
+            DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
+            Document document = builder.parse(sourceDocument);
+
+            // Set up the Key
+            CertificateFactory cf = CertificateFactory.getInstance("X509");
+            InputStream sourceCert =
+                    this.getClass().getClassLoader().getResourceAsStream(
+                            "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/certs/lugh.crt");
+
+            Certificate cert = cf.generateCertificate(sourceCert);
+
+            // XMLUtils.outputDOM(document, System.out);
+
+            // Convert Document to a Stream Reader
+            javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            transformer.transform(new DOMSource(document), new StreamResult(baos));
+            final XMLStreamReader xmlStreamReader =
+                    xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
+
+            // Verify signature
+            XMLSecurityProperties properties = new XMLSecurityProperties();
+            properties.setSignatureVerificationKey(cert.getPublicKey());
+            InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
+            XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
+
+            StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        } finally {
+            HttpRequestRedirectorProxy.stopHttpEngine();
+        }
     }
-    
+
     // See SANTUARIO-319
     @Test
-    @Ignore
     public void test_signature_retrievalmethod_rawx509crt() throws Exception {
-        // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-retrievalmethod-rawx509crt.xml");
-        DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
-        Document document = builder.parse(sourceDocument);
-        
-        // Set up the Key
-        CertificateFactory cf = CertificateFactory.getInstance("X509");
-        InputStream sourceCert = 
-            this.getClass().getClassLoader().getResourceAsStream(
-                    "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/certs/balor.crt");
-  
-        Certificate cert = cf.generateCertificate(sourceCert);
-        
-        // XMLUtils.outputDOM(document, System.out);
-        
-        // Convert Document to a Stream Reader
-        javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
-                xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
-        // Verify signature
-        XMLSecurityProperties properties = new XMLSecurityProperties();
-        properties.setSignatureVerificationKey(cert.getPublicKey());
-        InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
-        XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
 
-        StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        Proxy proxy = HttpRequestRedirectorProxy.startHttpEngine();
+
+        try {
+            ResolverHttp.setProxy(proxy);
+
+            ResolverDirectHTTP resolverDirectHTTP = new ResolverDirectHTTP();
+            resolverDirectHTTP.engineSetProperty("http.proxy.host", ((InetSocketAddress) proxy.address()).getAddress().getHostAddress());
+            resolverDirectHTTP.engineSetProperty("http.proxy.port", "" + ((InetSocketAddress) proxy.address()).getPort());
+
+            // Read in plaintext document
+            InputStream sourceDocument =
+                    this.getClass().getClassLoader().getResourceAsStream(
+                            "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-retrievalmethod-rawx509crt.xml");
+            DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
+            Document document = builder.parse(sourceDocument);
+
+            // Set up the Key
+            CertificateFactory cf = CertificateFactory.getInstance("X509");
+            InputStream sourceCert =
+                    this.getClass().getClassLoader().getResourceAsStream(
+                            "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/certs/balor.crt");
+
+            Certificate cert = cf.generateCertificate(sourceCert);
+
+            // XMLUtils.outputDOM(document, System.out);
+
+            // Convert Document to a Stream Reader
+            javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            transformer.transform(new DOMSource(document), new StreamResult(baos));
+            final XMLStreamReader xmlStreamReader =
+                    xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
+
+            // Verify signature
+            XMLSecurityProperties properties = new XMLSecurityProperties();
+            properties.setSignatureVerificationKey(cert.getPublicKey());
+            InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
+            XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
+
+            StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        } finally {
+            HttpRequestRedirectorProxy.stopHttpEngine();
+        }
     }
-    
+
     // See SANTUARIO-319
     @Test
-    @Ignore
     public void test_signature_x509_crt_crl() throws Exception {
-        // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-x509-crt-crl.xml");
-        DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
-        Document document = builder.parse(sourceDocument);
-        
-        // XMLUtils.outputDOM(document, System.out);
-        
-        // Convert Document to a Stream Reader
-        javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
-                xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
-        // Verify signature
-        XMLSecurityProperties properties = new XMLSecurityProperties();
-        InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
-        XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
 
-        StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        Proxy proxy = HttpRequestRedirectorProxy.startHttpEngine();
+
+        try {
+            ResolverHttp.setProxy(proxy);
+
+            ResolverDirectHTTP resolverDirectHTTP = new ResolverDirectHTTP();
+            resolverDirectHTTP.engineSetProperty("http.proxy.host", ((InetSocketAddress) proxy.address()).getAddress().getHostAddress());
+            resolverDirectHTTP.engineSetProperty("http.proxy.port", "" + ((InetSocketAddress) proxy.address()).getPort());
+
+            // Read in plaintext document
+            InputStream sourceDocument =
+                    this.getClass().getClassLoader().getResourceAsStream(
+                            "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-x509-crt-crl.xml");
+            DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
+            Document document = builder.parse(sourceDocument);
+
+            // XMLUtils.outputDOM(document, System.out);
+
+            // Convert Document to a Stream Reader
+            javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            transformer.transform(new DOMSource(document), new StreamResult(baos));
+            final XMLStreamReader xmlStreamReader =
+                    xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
+
+            // Verify signature
+            XMLSecurityProperties properties = new XMLSecurityProperties();
+            InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
+            XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
+
+            StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        } finally {
+            HttpRequestRedirectorProxy.stopHttpEngine();
+        }
     }
-    
+
     // See SANTUARIO-319
     @Test
-    @Ignore
     public void test_signature_x509_crt() throws Exception {
-        // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-x509-crt.xml");
-        DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
-        Document document = builder.parse(sourceDocument);
-        
-        // XMLUtils.outputDOM(document, System.out);
-        
-        // Convert Document to a Stream Reader
-        javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
-                xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
-        // Verify signature
-        XMLSecurityProperties properties = new XMLSecurityProperties();
-        InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
-        XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
 
-        StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        Proxy proxy = HttpRequestRedirectorProxy.startHttpEngine();
+
+        try {
+            ResolverHttp.setProxy(proxy);
+
+            ResolverDirectHTTP resolverDirectHTTP = new ResolverDirectHTTP();
+            resolverDirectHTTP.engineSetProperty("http.proxy.host", ((InetSocketAddress) proxy.address()).getAddress().getHostAddress());
+            resolverDirectHTTP.engineSetProperty("http.proxy.port", "" + ((InetSocketAddress) proxy.address()).getPort());
+
+            // Read in plaintext document
+            InputStream sourceDocument =
+                    this.getClass().getClassLoader().getResourceAsStream(
+                            "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-x509-crt.xml");
+            DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
+            Document document = builder.parse(sourceDocument);
+
+            // XMLUtils.outputDOM(document, System.out);
+
+            // Convert Document to a Stream Reader
+            javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            transformer.transform(new DOMSource(document), new StreamResult(baos));
+            final XMLStreamReader xmlStreamReader =
+                    xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
+
+            // Verify signature
+            XMLSecurityProperties properties = new XMLSecurityProperties();
+            InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
+            XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
+
+            StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        } finally {
+            HttpRequestRedirectorProxy.stopHttpEngine();
+        }
     }
-    
+
     // See SANTUARIO-319
     @Test
     @Ignore
     public void test_signature_x509_is() throws Exception {
-        // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-x509-is.xml");
-        DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
-        Document document = builder.parse(sourceDocument);
-        
-        // XMLUtils.outputDOM(document, System.out);
-        
-        // TODO need to set up key as it's using Issuer Serial
-        
-        // Convert Document to a Stream Reader
-        javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
-                xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
-        // Verify signature
-        XMLSecurityProperties properties = new XMLSecurityProperties();
-        InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
-        XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
 
-        StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        Proxy proxy = HttpRequestRedirectorProxy.startHttpEngine();
+
+        try {
+            ResolverHttp.setProxy(proxy);
+
+            ResolverDirectHTTP resolverDirectHTTP = new ResolverDirectHTTP();
+            resolverDirectHTTP.engineSetProperty("http.proxy.host", ((InetSocketAddress) proxy.address()).getAddress().getHostAddress());
+            resolverDirectHTTP.engineSetProperty("http.proxy.port", "" + ((InetSocketAddress) proxy.address()).getPort());
+
+            // Read in plaintext document
+            InputStream sourceDocument =
+                    this.getClass().getClassLoader().getResourceAsStream(
+                            "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-x509-is.xml");
+            DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
+            Document document = builder.parse(sourceDocument);
+
+            // XMLUtils.outputDOM(document, System.out);
+
+            // TODO need to set up key as it's using Issuer Serial
+
+            // Convert Document to a Stream Reader
+            javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            transformer.transform(new DOMSource(document), new StreamResult(baos));
+            final XMLStreamReader xmlStreamReader =
+                    xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
+
+            // Verify signature
+            XMLSecurityProperties properties = new XMLSecurityProperties();
+            InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
+            XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
+
+            StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        } finally {
+            HttpRequestRedirectorProxy.stopHttpEngine();
+        }
     }
-    
+
     // See SANTUARIO-319
     @Test
     @Ignore
     public void test_signature_x509_ski() throws Exception {
-        // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-x509-ski.xml");
-        DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
-        Document document = builder.parse(sourceDocument);
-        
-        // XMLUtils.outputDOM(document, System.out);
-        
-        // TODO need to set up key as it's using Issuer Serial
-        
-        // Convert Document to a Stream Reader
-        javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
-                xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
-        // Verify signature
-        XMLSecurityProperties properties = new XMLSecurityProperties();
-        InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
-        XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
 
-        StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        Proxy proxy = HttpRequestRedirectorProxy.startHttpEngine();
+
+        try {
+            ResolverHttp.setProxy(proxy);
+
+            ResolverDirectHTTP resolverDirectHTTP = new ResolverDirectHTTP();
+            resolverDirectHTTP.engineSetProperty("http.proxy.host", ((InetSocketAddress) proxy.address()).getAddress().getHostAddress());
+            resolverDirectHTTP.engineSetProperty("http.proxy.port", "" + ((InetSocketAddress) proxy.address()).getPort());
+
+            // Read in plaintext document
+            InputStream sourceDocument =
+                    this.getClass().getClassLoader().getResourceAsStream(
+                            "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-x509-ski.xml");
+            DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
+            Document document = builder.parse(sourceDocument);
+
+            // XMLUtils.outputDOM(document, System.out);
+
+            // TODO need to set up key as it's using Issuer Serial
+
+            // Convert Document to a Stream Reader
+            javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            transformer.transform(new DOMSource(document), new StreamResult(baos));
+            final XMLStreamReader xmlStreamReader =
+                    xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
+
+            // Verify signature
+            XMLSecurityProperties properties = new XMLSecurityProperties();
+            InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
+            XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
+
+            StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        } finally {
+            HttpRequestRedirectorProxy.stopHttpEngine();
+        }
     }
-    
+
     // See SANTUARIO-319
     @Test
     @Ignore
     public void test_signature_x509_sn() throws Exception {
-        // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-x509-sn.xml");
-        DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
-        Document document = builder.parse(sourceDocument);
-        
-        // XMLUtils.outputDOM(document, System.out);
-        
-        // TODO need to set up key as it's using Issuer Serial
-        
-        // Convert Document to a Stream Reader
-        javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
-                xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
-        // Verify signature
-        XMLSecurityProperties properties = new XMLSecurityProperties();
-        InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
-        XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
 
-        StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        Proxy proxy = HttpRequestRedirectorProxy.startHttpEngine();
+
+        try {
+            ResolverHttp.setProxy(proxy);
+
+            ResolverDirectHTTP resolverDirectHTTP = new ResolverDirectHTTP();
+            resolverDirectHTTP.engineSetProperty("http.proxy.host", ((InetSocketAddress) proxy.address()).getAddress().getHostAddress());
+            resolverDirectHTTP.engineSetProperty("http.proxy.port", "" + ((InetSocketAddress) proxy.address()).getPort());
+
+            // Read in plaintext document
+            InputStream sourceDocument =
+                    this.getClass().getClassLoader().getResourceAsStream(
+                            "ie/baltimore/merlin-examples/merlin-xmldsig-twenty-three/signature-x509-sn.xml");
+            DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
+            Document document = builder.parse(sourceDocument);
+
+            // XMLUtils.outputDOM(document, System.out);
+
+            // TODO need to set up key as it's using Issuer Serial
+
+            // Convert Document to a Stream Reader
+            javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            transformer.transform(new DOMSource(document), new StreamResult(baos));
+            final XMLStreamReader xmlStreamReader =
+                    xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
+
+            // Verify signature
+            XMLSecurityProperties properties = new XMLSecurityProperties();
+            InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
+            XMLStreamReader securityStreamReader = inboundXMLSec.processInMessage(xmlStreamReader);
+
+            StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
+        } finally {
+            HttpRequestRedirectorProxy.stopHttpEngine();
+        }
     }
-    
+
     @Test
     public void testExcSignature() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
+        InputStream sourceDocument =
                 this.getClass().getClassLoader().getResourceAsStream(
                         "ie/baltimore/merlin-examples/merlin-exc-c14n-one/exc-signature.xml");
         DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
         Document document = builder.parse(sourceDocument);
-        
+
         // XMLUtils.outputDOM(document, System.out);
-        
+
         // Convert Document to a Stream Reader
         javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
+        final XMLStreamReader xmlStreamReader =
                 xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
-  
+
         // Verify signature
         XMLSecurityProperties properties = new XMLSecurityProperties();
         InboundXMLSec inboundXMLSec = XMLSec.getInboundWSSec(properties);
@@ -894,30 +1027,30 @@ public class BaltimoreTest extends org.j
 
         StAX2DOM.readDoc(documentBuilderFactory.newDocumentBuilder(), securityStreamReader);
     }
-    
-    
-    private static PublicKey getPublicKey(String algo, int number) 
+
+
+    private static PublicKey getPublicKey(String algo, int number)
             throws InvalidKeySpecException, NoSuchAlgorithmException {
         KeyFactory kf = KeyFactory.getInstance(algo);
         KeySpec kspec = null;
         if (algo.equalsIgnoreCase("DSA")) {
             if (number == 15) {
-                kspec = new DSAPublicKeySpec(new BigInteger(DSA_Y_15), 
-                        new BigInteger(DSA_P_15), 
-                        new BigInteger(DSA_Q_15), 
+                kspec = new DSAPublicKeySpec(new BigInteger(DSA_Y_15),
+                        new BigInteger(DSA_P_15),
+                        new BigInteger(DSA_Q_15),
                         new BigInteger(DSA_G_15));
             } else if (number == 23) {
-                kspec = new DSAPublicKeySpec(new BigInteger(DSA_Y_23), 
-                        new BigInteger(DSA_P_23), 
-                        new BigInteger(DSA_Q_23), 
+                kspec = new DSAPublicKeySpec(new BigInteger(DSA_Y_23),
+                        new BigInteger(DSA_P_23),
+                        new BigInteger(DSA_Q_23),
                         new BigInteger(DSA_G_23));
             }
         } else if (algo.equalsIgnoreCase("RSA")) {
             if (number == 15) {
-                kspec = new RSAPublicKeySpec(new BigInteger(RSA_MOD_15), 
-                    new BigInteger(RSA_PUB));
+                kspec = new RSAPublicKeySpec(new BigInteger(RSA_MOD_15),
+                        new BigInteger(RSA_PUB));
             } else if (number == 23) {
-                kspec = new RSAPublicKeySpec(new BigInteger(RSA_MOD_23), 
+                kspec = new RSAPublicKeySpec(new BigInteger(RSA_MOD_23),
                         new BigInteger(RSA_PUB));
             }
         } else {
@@ -925,48 +1058,46 @@ public class BaltimoreTest extends org.j
         }
         return kf.generatePublic(kspec);
     }
-    
+
     private void checkSignatureToken(
-        TestSecurityEventListener securityEventListener,
-        Key key,
-        XMLSecurityConstants.XMLKeyIdentifierType keyIdentifierType
+            TestSecurityEventListener securityEventListener,
+            Key key,
+            XMLSecurityConstants.XMLKeyIdentifierType keyIdentifierType
     ) throws XMLSecurityException {
         if (keyIdentifierType == XMLSecurityConstants.XMLKeyIdentifierType.KEY_VALUE) {
 
         } else if (keyIdentifierType == XMLSecurityConstants.XMLKeyIdentifierType.NO_KEY_INFO) {
-            DefaultTokenSecurityEvent tokenEvent = 
-                (DefaultTokenSecurityEvent)securityEventListener.getTokenEvent(SecurityEventConstants.DefaultToken);
+            DefaultTokenSecurityEvent tokenEvent =
+                    (DefaultTokenSecurityEvent) securityEventListener.getTokenEvent(SecurityEventConstants.DefaultToken);
             assertNotNull(tokenEvent);
             Key processedKey = tokenEvent.getSecurityToken().getSecretKey("", null);
             assertEquals(processedKey, key);
         } else if (keyIdentifierType == XMLSecurityConstants.XMLKeyIdentifierType.KEY_NAME) {
-            KeyNameTokenSecurityEvent tokenEvent = 
-                (KeyNameTokenSecurityEvent)securityEventListener.getTokenEvent(SecurityEventConstants.KeyNameToken);
+            KeyNameTokenSecurityEvent tokenEvent =
+                    (KeyNameTokenSecurityEvent) securityEventListener.getTokenEvent(SecurityEventConstants.KeyNameToken);
             assertNotNull(tokenEvent);
             Key processedKey = tokenEvent.getSecurityToken().getSecretKey("", null);
             assertEquals(processedKey, key);
-            assertNotNull(((KeyNameSecurityToken)tokenEvent.getSecurityToken()).getKeyName());
+            assertNotNull(((KeyNameSecurityToken) tokenEvent.getSecurityToken()).getKeyName());
         } else {
-            X509TokenSecurityEvent tokenEvent = 
-                (X509TokenSecurityEvent)securityEventListener.getTokenEvent(SecurityEventConstants.X509Token);
+            X509TokenSecurityEvent tokenEvent =
+                    (X509TokenSecurityEvent) securityEventListener.getTokenEvent(SecurityEventConstants.X509Token);
             assertNotNull(tokenEvent);
-            X509SecurityToken x509SecurityToken = 
-                (X509SecurityToken)tokenEvent.getSecurityToken();
+            X509SecurityToken x509SecurityToken =
+                    (X509SecurityToken) tokenEvent.getSecurityToken();
             assertNotNull(x509SecurityToken);
-            if (keyIdentifierType == 
-                XMLSecurityConstants.XMLKeyIdentifierType.X509_SUBJECT_NAME) {
+            if (keyIdentifierType ==
+                    XMLSecurityConstants.XMLKeyIdentifierType.X509_SUBJECT_NAME) {
                 Key processedKey = x509SecurityToken.getKey("", null);
                 assertEquals(processedKey, key);
-                assertNotNull(((X509SubjectNameSecurityToken)x509SecurityToken).getSubjectName());
-            } else if (keyIdentifierType == 
-                XMLSecurityConstants.XMLKeyIdentifierType.X509_ISSUER_SERIAL) {
+                assertNotNull(((X509SubjectNameSecurityToken) x509SecurityToken).getSubjectName());
+            } else if (keyIdentifierType ==
+                    XMLSecurityConstants.XMLKeyIdentifierType.X509_ISSUER_SERIAL) {
                 Key processedKey = x509SecurityToken.getKey("", null);
                 assertEquals(processedKey, key);
-                assertNotNull(((X509IssuerSerialSecurityToken)x509SecurityToken).getIssuerName());
-                assertNotNull(((X509IssuerSerialSecurityToken)x509SecurityToken).getSerialNumber());
+                assertNotNull(((X509IssuerSerialSecurityToken) x509SecurityToken).getIssuerName());
+                assertNotNull(((X509IssuerSerialSecurityToken) x509SecurityToken).getSerialNumber());
             }
         }
-
     }
-
 }

Modified: santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/IAIKTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/IAIKTest.java?rev=1367437&r1=1367436&r2=1367437&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/IAIKTest.java (original)
+++ santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/IAIKTest.java Tue Jul 31 07:20:29 2012
@@ -41,6 +41,7 @@ import javax.xml.stream.XMLStreamReader;
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
 
 import org.apache.xml.security.stax.config.Init;
 import org.apache.xml.security.stax.ext.InboundXMLSec;
@@ -246,26 +247,17 @@ public class IAIKTest extends org.junit.
     
     // See SANTUARIO-322
     @Test
-    @Ignore
     public void test_transforms_signatures_base64DecodeSignature() throws Exception {
-        // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "at/iaik/ixsil/transforms/signatures/base64DecodeSignature.xml");
-        DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
-        Document document = builder.parse(sourceDocument);
-        
         // Set up the Key
         Key publicKey = getPublicKey("RSA");
-        
-        // XMLUtils.outputDOM(document, System.out);
-        
-        // Convert Document to a Stream Reader
-        javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
-                xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
+
+        final XMLStreamReader xmlStreamReader =
+                xmlInputFactory.createXMLStreamReader(
+                        new StreamSource(
+                                this.getClass().getClassLoader().getResource(
+                                        "at/iaik/ixsil/transforms/signatures/base64DecodeSignature.xml").toExternalForm()
+                        )
+                );
   
         // Verify signature
         XMLSecurityProperties properties = new XMLSecurityProperties();
@@ -278,26 +270,17 @@ public class IAIKTest extends org.junit.
     
     // See SANTUARIO-322
     @Test
-    @Ignore
     public void test_transforms_signatures_c14nSignature() throws Exception {
-        // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "at/iaik/ixsil/transforms/signatures/c14nSignature.xml");
-        DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
-        Document document = builder.parse(sourceDocument);
-        
         // Set up the Key
         Key publicKey = getPublicKey("RSA");
         
-        // XMLUtils.outputDOM(document, System.out);
-        
-        // Convert Document to a Stream Reader
-        javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        transformer.transform(new DOMSource(document), new StreamResult(baos));
-        final XMLStreamReader xmlStreamReader = 
-                xmlInputFactory.createXMLStreamReader(new ByteArrayInputStream(baos.toByteArray()));
+        final XMLStreamReader xmlStreamReader =
+                xmlInputFactory.createXMLStreamReader(
+                        new StreamSource(
+                                this.getClass().getClassLoader().getResource(
+                                        "at/iaik/ixsil/transforms/signatures/c14nSignature.xml").toExternalForm()
+                        )
+                );
   
         // Verify signature
         XMLSecurityProperties properties = new XMLSecurityProperties();