You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by co...@apache.org on 2014/06/27 15:58:08 UTC

svn commit: r1606100 - in /santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java: javax/xml/crypto/test/dsig/ org/apache/xml/security/test/dom/algorithms/

Author: coheigea
Date: Fri Jun 27 13:58:08 2014
New Revision: 1606100

URL: http://svn.apache.org/r1606100
Log:
Merging a fix for merging

Modified:
    santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/javax/xml/crypto/test/dsig/HMACSignatureAlgorithmTest.java
    santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/javax/xml/crypto/test/dsig/PKSignatureAlgorithmTest.java
    santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/javax/xml/crypto/test/dsig/SignatureDigestMethodTest.java
    santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/org/apache/xml/security/test/dom/algorithms/DigestAlgorithmTest.java
    santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/org/apache/xml/security/test/dom/algorithms/HMACSignatureAlgorithmTest.java
    santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/org/apache/xml/security/test/dom/algorithms/PKSignatureAlgorithmTest.java

Modified: santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/javax/xml/crypto/test/dsig/HMACSignatureAlgorithmTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/javax/xml/crypto/test/dsig/HMACSignatureAlgorithmTest.java?rev=1606100&r1=1606099&r2=1606100&view=diff
==============================================================================
--- santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/javax/xml/crypto/test/dsig/HMACSignatureAlgorithmTest.java (original)
+++ santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/javax/xml/crypto/test/dsig/HMACSignatureAlgorithmTest.java Fri Jun 27 13:58:08 2014
@@ -57,6 +57,7 @@ public class HMACSignatureAlgorithmTest 
     private SignatureMethod hmacSha1, hmacSha224, hmacSha256, hmacSha384, hmacSha512, ripemd160;
     private XMLSignatureFactory fac;
     private DocumentBuilder db;
+    private boolean bouncyCastleAvailable = true;
 
     static {
         Security.insertProviderAt
@@ -77,6 +78,7 @@ public class HMACSignatureAlgorithmTest 
                 //ignore
             }
             if (cons == null) {
+                bouncyCastleAvailable = false;
                 // BouncyCastle is not available so just return
                 return;
             } else {
@@ -106,36 +108,60 @@ public class HMACSignatureAlgorithmTest 
 
     @org.junit.Test
     public void testHMACSHA1() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(hmacSha1, sha1, null,
                                          TestUtils.getSecretKey("testkey".getBytes("ASCII")), sks);
     }
   
     @org.junit.Test
     public void testHMACSHA_224() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(hmacSha224, sha1, null,
                                          TestUtils.getSecretKey("testkey".getBytes("ASCII")), sks);
     }
     
     @org.junit.Test
     public void testHMACSHA_256() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(hmacSha256, sha1, null,
                                          TestUtils.getSecretKey("testkey".getBytes("ASCII")), sks);
     }
     
     @org.junit.Test
     public void testHMACSHA_384() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(hmacSha384, sha1, null,
                                          TestUtils.getSecretKey("testkey".getBytes("ASCII")), sks);
     }
     
     @org.junit.Test
     public void testHMACSHA_512() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(hmacSha512, sha1, null,
                                          TestUtils.getSecretKey("testkey".getBytes("ASCII")), sks);
     }
   
     @org.junit.Test
     public void testHMACRIPEMD160() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(ripemd160, sha1, null,
                                          TestUtils.getSecretKey("testkey".getBytes("ASCII")), sks);
     }

Modified: santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/javax/xml/crypto/test/dsig/PKSignatureAlgorithmTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/javax/xml/crypto/test/dsig/PKSignatureAlgorithmTest.java?rev=1606100&r1=1606099&r2=1606100&view=diff
==============================================================================
--- santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/javax/xml/crypto/test/dsig/PKSignatureAlgorithmTest.java (original)
+++ santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/javax/xml/crypto/test/dsig/PKSignatureAlgorithmTest.java Fri Jun 27 13:58:08 2014
@@ -63,6 +63,7 @@ public class PKSignatureAlgorithmTest ex
     private DocumentBuilder db;
     private KeyPair rsaKeyPair, ecKeyPair;
     private KeyInfo rsaki;
+    private boolean bouncyCastleAvailable = true;
 
     static {
         Security.insertProviderAt
@@ -83,6 +84,7 @@ public class PKSignatureAlgorithmTest ex
                 //ignore
             }
             if (cons == null) {
+                bouncyCastleAvailable = false;
                 // BouncyCastle is not available so just return
                 return;
             } else {
@@ -125,66 +127,110 @@ public class PKSignatureAlgorithmTest ex
 
     @org.junit.Test
     public void testRSA_SHA1() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(rsaSha1, sha1, rsaki,
                                          rsaKeyPair.getPrivate(), kvks);
     }
     
     @org.junit.Test
     public void testRSA_SHA_224() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(rsaSha224, sha1, rsaki,
                                          rsaKeyPair.getPrivate(), kvks);
     }
     
     @org.junit.Test
     public void testRSA_SHA_256() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(rsaSha256, sha1, rsaki,
                                          rsaKeyPair.getPrivate(), kvks);
     }
     
     @org.junit.Test
     public void testRSA_SHA_384() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(rsaSha384, sha1, rsaki,
                                          rsaKeyPair.getPrivate(), kvks);
     }
     
     @org.junit.Test
     public void testRSA_SHA_512() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+    
         test_create_signature_enveloping(rsaSha512, sha1, rsaki,
                                          rsaKeyPair.getPrivate(), kvks);
     }
     
     @org.junit.Test
     public void testRSA_RIPEMD160() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(rsaRipemd160, sha1, rsaki,
                                          rsaKeyPair.getPrivate(), kvks);
     }
     
     @org.junit.Test
     public void testECDSA_SHA1() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(ecdsaSha1, sha1, null,
                                          ecKeyPair.getPrivate(), ecKeyPair.getPublic());
     }
     
     @org.junit.Test
     public void testECDSA_SHA224() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(ecdsaSha224, sha1, null,
                                          ecKeyPair.getPrivate(), ecKeyPair.getPublic());
     }
     
     @org.junit.Test
     public void testECDSA_SHA256() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(ecdsaSha256, sha1, null,
                                          ecKeyPair.getPrivate(), ecKeyPair.getPublic());
     }
     
     @org.junit.Test
     public void testECDSA_SHA384() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(ecdsaSha384, sha1, null,
                                          ecKeyPair.getPrivate(), ecKeyPair.getPublic());
     }
     
     @org.junit.Test
     public void testECDSA_SHA512() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(ecdsaSha512, sha1, null,
                                          ecKeyPair.getPrivate(), ecKeyPair.getPublic());
     }

Modified: santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/javax/xml/crypto/test/dsig/SignatureDigestMethodTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/javax/xml/crypto/test/dsig/SignatureDigestMethodTest.java?rev=1606100&r1=1606099&r2=1606100&view=diff
==============================================================================
--- santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/javax/xml/crypto/test/dsig/SignatureDigestMethodTest.java (original)
+++ santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/javax/xml/crypto/test/dsig/SignatureDigestMethodTest.java Fri Jun 27 13:58:08 2014
@@ -59,6 +59,7 @@ public class SignatureDigestMethodTest e
     private KeyInfo rsaki;
     private XMLSignatureFactory fac;
     private DocumentBuilder db;
+    private boolean bouncyCastleAvailable = true;
 
     static {
         Security.insertProviderAt
@@ -79,6 +80,7 @@ public class SignatureDigestMethodTest e
                 //ignore
             }
             if (cons == null) {
+                bouncyCastleAvailable = false;
                 // BouncyCastle is not available so just return
                 return;
             } else {
@@ -112,36 +114,60 @@ public class SignatureDigestMethodTest e
 
     @org.junit.Test
     public void testSHA1() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(rsaSha1, sha1, rsaki,
                                          TestUtils.getPrivateKey("RSA"), kvks);
     }
   
     @org.junit.Test
     public void testSHA224() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(rsaSha1, sha224, rsaki,
                                          TestUtils.getPrivateKey("RSA"), kvks);
     }
     
     @org.junit.Test
     public void testSHA256() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(rsaSha1, sha256, rsaki,
                                          TestUtils.getPrivateKey("RSA"), kvks);
     }
     
     @org.junit.Test
     public void testSHA384() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(rsaSha1, sha384, rsaki,
                                          TestUtils.getPrivateKey("RSA"), kvks);
     }
     
     @org.junit.Test
     public void testSHA512() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(rsaSha1, sha512, rsaki,
                                          TestUtils.getPrivateKey("RSA"), kvks);
     }
     
     @org.junit.Test
     public void testRIPEMD160() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         test_create_signature_enveloping(rsaSha1, ripemd160, rsaki,
                                          TestUtils.getPrivateKey("RSA"), kvks);
     }

Modified: santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/org/apache/xml/security/test/dom/algorithms/DigestAlgorithmTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/org/apache/xml/security/test/dom/algorithms/DigestAlgorithmTest.java?rev=1606100&r1=1606099&r2=1606100&view=diff
==============================================================================
--- santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/org/apache/xml/security/test/dom/algorithms/DigestAlgorithmTest.java (original)
+++ santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/org/apache/xml/security/test/dom/algorithms/DigestAlgorithmTest.java Fri Jun 27 13:58:08 2014
@@ -37,6 +37,8 @@ public class DigestAlgorithmTest extends
         org.apache.xml.security.Init.init();
     }
     
+    private boolean bouncyCastleAvailable = true;
+    
     public DigestAlgorithmTest() throws Exception {
         //
         // If the BouncyCastle provider is not installed, then try to load it 
@@ -51,6 +53,7 @@ public class DigestAlgorithmTest extends
                 //ignore
             }
             if (cons == null) {
+                bouncyCastleAvailable = false;
                 // BouncyCastle is not available so just return
                 return;
             } else {
@@ -80,6 +83,11 @@ public class DigestAlgorithmTest extends
     
     @org.junit.Test
     public void testSHA224() throws Exception {
+        
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         Document doc = XMLUtils.createDocumentBuilder(false).newDocument();
         
         MessageDigestAlgorithm digestAlgorithm = 

Modified: santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/org/apache/xml/security/test/dom/algorithms/HMACSignatureAlgorithmTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/org/apache/xml/security/test/dom/algorithms/HMACSignatureAlgorithmTest.java?rev=1606100&r1=1606099&r2=1606100&view=diff
==============================================================================
--- santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/org/apache/xml/security/test/dom/algorithms/HMACSignatureAlgorithmTest.java (original)
+++ santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/org/apache/xml/security/test/dom/algorithms/HMACSignatureAlgorithmTest.java Fri Jun 27 13:58:08 2014
@@ -18,6 +18,9 @@
  */
 package org.apache.xml.security.test.dom.algorithms;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.InputStream;
 import java.lang.reflect.Constructor;
 import java.security.Key;
@@ -52,6 +55,8 @@ public class HMACSignatureAlgorithmTest 
         org.apache.xml.security.Init.init();
     }
     
+    private boolean bouncyCastleAvailable = true;
+    
     public HMACSignatureAlgorithmTest() throws Exception {
         //
         // If the BouncyCastle provider is not installed, then try to load it 
@@ -66,6 +71,7 @@ public class HMACSignatureAlgorithmTest 
                 //ignore
             }
             if (cons == null) {
+                bouncyCastleAvailable = false;
                 // BouncyCastle is not available so just return
                 return;
             } else {
@@ -78,9 +84,7 @@ public class HMACSignatureAlgorithmTest 
     @org.junit.Test
     public void testHMACSHA1() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -99,9 +103,7 @@ public class HMACSignatureAlgorithmTest 
     @org.junit.Test
     public void testHMACMD5() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -119,10 +121,13 @@ public class HMACSignatureAlgorithmTest 
     
     @org.junit.Test
     public void testHMACSHA_224() throws Exception {
+        
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -141,9 +146,7 @@ public class HMACSignatureAlgorithmTest 
     @org.junit.Test
     public void testHMACSHA_256() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -162,9 +165,7 @@ public class HMACSignatureAlgorithmTest 
     @org.junit.Test
     public void testHMACSHA_384() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -183,9 +184,7 @@ public class HMACSignatureAlgorithmTest 
     @org.junit.Test
     public void testHMACSHA_512() throws Exception {
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -203,10 +202,12 @@ public class HMACSignatureAlgorithmTest 
     
     @org.junit.Test
     public void testHMACRIPEMD160() throws Exception {
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -221,6 +222,25 @@ public class HMACSignatureAlgorithmTest 
         // XMLUtils.outputDOM(document, System.out);
         verify(document, key, localNames);
     }
+    
+    private InputStream readPlaintextDocument() throws FileNotFoundException {
+        // Read in plaintext document
+        InputStream sourceDocument = 
+                this.getClass().getClassLoader().getResourceAsStream(
+                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        if (sourceDocument == null) {
+            String filename = 
+                "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml";
+            String basedir = System.getProperty("basedir");
+            if (basedir != null && !"".equals(basedir)) {
+                filename = basedir + "/" + filename;
+            }
+            File f = new File(filename);
+            sourceDocument = new FileInputStream(f);
+        }
+        
+        return sourceDocument;
+    }
 
     private XMLSignature sign(
         String algorithm,

Modified: santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/org/apache/xml/security/test/dom/algorithms/PKSignatureAlgorithmTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/org/apache/xml/security/test/dom/algorithms/PKSignatureAlgorithmTest.java?rev=1606100&r1=1606099&r2=1606100&view=diff
==============================================================================
--- santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/org/apache/xml/security/test/dom/algorithms/PKSignatureAlgorithmTest.java (original)
+++ santuario/xml-security-java/tags/xmlsec-1.5.7/src/test/java/org/apache/xml/security/test/dom/algorithms/PKSignatureAlgorithmTest.java Fri Jun 27 13:58:08 2014
@@ -18,6 +18,9 @@
  */
 package org.apache.xml.security.test.dom.algorithms;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.InputStream;
 import java.lang.reflect.Constructor;
 import java.security.Key;
@@ -54,6 +57,8 @@ public class PKSignatureAlgorithmTest ex
         org.apache.xml.security.Init.init();
     }
     
+    private boolean bouncyCastleAvailable = true;
+    
     public PKSignatureAlgorithmTest() throws Exception {
         //
         // If the BouncyCastle provider is not installed, then try to load it 
@@ -68,6 +73,7 @@ public class PKSignatureAlgorithmTest ex
                 //ignore
             }
             if (cons == null) {
+                bouncyCastleAvailable = false;
                 // BouncyCastle is not available so just return
                 return;
             } else {
@@ -82,10 +88,13 @@ public class PKSignatureAlgorithmTest ex
     
     @org.junit.Test
     public void testRSA_MD5() throws Exception {
+        
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -99,10 +108,13 @@ public class PKSignatureAlgorithmTest ex
     
     @org.junit.Test
     public void testRSA_SHA1() throws Exception {
+        
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -116,10 +128,13 @@ public class PKSignatureAlgorithmTest ex
     
     @org.junit.Test
     public void testRSA_SHA_224() throws Exception {
+        
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -133,10 +148,13 @@ public class PKSignatureAlgorithmTest ex
     
     @org.junit.Test
     public void testRSA_SHA_256() throws Exception {
+        
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -150,10 +168,13 @@ public class PKSignatureAlgorithmTest ex
     
     @org.junit.Test
     public void testRSA_SHA_384() throws Exception {
+        
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -167,10 +188,13 @@ public class PKSignatureAlgorithmTest ex
     
     @org.junit.Test
     public void testRSA_SHA_512() throws Exception {
+        
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -184,10 +208,13 @@ public class PKSignatureAlgorithmTest ex
     
     @org.junit.Test
     public void testRSA_RIPEMD160() throws Exception {
+        
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -201,10 +228,13 @@ public class PKSignatureAlgorithmTest ex
     
     @org.junit.Test
     public void testECDSA_SHA1() throws Exception {
+        
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -218,10 +248,13 @@ public class PKSignatureAlgorithmTest ex
     
     @org.junit.Test
     public void testECDSA_SHA_224() throws Exception {
+        
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -235,10 +268,13 @@ public class PKSignatureAlgorithmTest ex
     
     @org.junit.Test
     public void testECDSA_SHA_256() throws Exception {
+        
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -252,10 +288,13 @@ public class PKSignatureAlgorithmTest ex
     
     @org.junit.Test
     public void testECDSA_SHA_384() throws Exception {
+        
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -269,10 +308,13 @@ public class PKSignatureAlgorithmTest ex
     
     @org.junit.Test
     public void testECDSA_SHA_512() throws Exception {
+        
+        if (!bouncyCastleAvailable) {
+            return;
+        }
+        
         // Read in plaintext document
-        InputStream sourceDocument = 
-                this.getClass().getClassLoader().getResourceAsStream(
-                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        InputStream sourceDocument = readPlaintextDocument();
         DocumentBuilder builder = XMLUtils.createDocumentBuilder(false);
         Document document = builder.parse(sourceDocument);
         
@@ -284,6 +326,25 @@ public class PKSignatureAlgorithmTest ex
         verify(document, ecKeyPair.getPublic(), localNames);
     }
     
+    private InputStream readPlaintextDocument() throws FileNotFoundException {
+        // Read in plaintext document
+        InputStream sourceDocument = 
+                this.getClass().getClassLoader().getResourceAsStream(
+                        "ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml");
+        if (sourceDocument == null) {
+            String filename = 
+                "src/test/resources/ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml";
+            String basedir = System.getProperty("basedir");
+            if (basedir != null && !"".equals(basedir)) {
+                filename = basedir + "/" + filename;
+            }
+            File f = new File(filename);
+            sourceDocument = new FileInputStream(f);
+        }
+        
+        return sourceDocument;
+    }
+    
     private XMLSignature sign(
         String algorithm,
         Document document,