|
From: <pe...@us...> - 2004-03-09 00:07:50
|
Update of /cvsroot/neuclear/neuclear-xmlsig/src/test/org/neuclear/xml/xmlsec In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23732/src/test/org/neuclear/xml/xmlsec Modified Files: RefTest.java SimpleXMLSigTest.java XMLSignerTest.java Log Message: More improvements on the XMLSignature. Now uses the Transforms properly, References properly. All the major elements have been refactored to be cleaner and more correct. Index: RefTest.java =================================================================== RCS file: /cvsroot/neuclear/neuclear-xmlsig/src/test/org/neuclear/xml/xmlsec/RefTest.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** RefTest.java 5 Mar 2004 23:47:17 -0000 1.7 --- RefTest.java 8 Mar 2004 23:51:04 -0000 1.8 *************** *** 5,8 **** --- 5,9 ---- import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; + import org.neuclear.commons.Utility; import org.neuclear.commons.crypto.CryptoException; import org.neuclear.xml.XMLException; *************** *** 32,35 **** --- 33,40 ---- $Id$ $Log$ + Revision 1.8 2004/03/08 23:51:04 pelle + More improvements on the XMLSignature. Now uses the Transforms properly, References properly. + All the major elements have been refactored to be cleaner and more correct. + Revision 1.7 2004/03/05 23:47:17 pelle Attempting to make Reference and SignedInfo more compliant with the standard. *************** *** 71,92 **** } ! public void testExternalReference() throws XMLException, CryptoException, IOException { File rfile = new File("project.xml"); final String uri = rfile.toURL().toExternalForm(); Reference ref = new Reference(uri); assertNotNull(ref); ! // assertNotNull(ref.getDigest()); assertEquals(uri, ref.getUri()); ! System.out.println(ref.asXML()); } public void testEnvelopedReference() throws DocumentException, XMLException, CryptoException { ! Document doc = DocumentHelper.parseText("<test>hello</test>"); ! Reference ref = new Reference(doc.getRootElement(), Reference.XMLSIGTYPE_ENVELOPED); assertNotNull(ref); ! // assertNotNull(ref.getDigest()); ! assertEquals("", ref.getUri()); ! // assertEquals(ref.); ! System.out.println(ref.asXML()); } --- 76,110 ---- } ! public void testExternalReference() throws XMLException, CryptoException, IOException, DocumentException { File rfile = new File("project.xml"); final String uri = rfile.toURL().toExternalForm(); Reference ref = new Reference(uri); assertNotNull(ref); ! assertNull(ref.getReferencedElement()); assertEquals(uri, ref.getUri()); ! try { ! Reference ref2 = new Reference(DocumentHelper.parseText(ref.asXML()).getRootElement()); ! } catch (InvalidSignatureException e) { ! assertTrue(false); ! } ! } public void testEnvelopedReference() throws DocumentException, XMLException, CryptoException { ! Document doc = DocumentHelper.parseText("<test>hello<Signature xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><SignedInfo/></Signature></test>"); ! Reference ref = new Reference(doc.getRootElement(), true); ! doc.getRootElement().element("Signature").element("SignedInfo").add(ref.getElement()); ! assertNotNull(ref); ! assertNotNull(ref.getReferencedElement()); ! assertTrue(Utility.isEmpty(ref.getUri())); ! try { ! Reference ref2 = new Reference(DocumentHelper.parseText(doc.asXML()).getRootElement().element("Signature").element("SignedInfo").element("Reference")); ! assertNotNull(ref2.getReferencedElement()); ! assertEquals("test", ref2.getReferencedElement().getName()); ! } catch (InvalidSignatureException e) { ! assertTrue(false); ! } ! } *************** *** 94,109 **** public void testEnvelopingReference() throws DocumentException, XMLException, CryptoException, InvalidSignatureException { Document doc = DocumentHelper.parseText("<Signature><SignedInfo/><Object Id=\"one\"><test>hello</test></Object></Signature>"); ! Reference ref = new Reference(doc.getRootElement().element("Object"), Reference.XMLSIGTYPE_ENVELOPING); doc.getRootElement().element("SignedInfo").add(ref.getElement()); assertNotNull(XMLTools.getByID(doc, "one")); assertNotNull(ref); - // assertNotNull(ref.getDigest()); assertEquals("#one", ref.getUri()); - System.out.println(doc.asXML()); Document doc2 = DocumentHelper.parseText(doc.asXML()); ! Reference ref2 = new Reference(doc2.getRootElement().element("SignedInfo").element("Reference")); ! // assertEquals(ref.getDigest(),ref2.getDigest()); ! assertEquals(ref.getUri(), ref2.getUri()); --- 112,131 ---- public void testEnvelopingReference() throws DocumentException, XMLException, CryptoException, InvalidSignatureException { Document doc = DocumentHelper.parseText("<Signature><SignedInfo/><Object Id=\"one\"><test>hello</test></Object></Signature>"); ! Reference ref = new Reference(doc.getRootElement().element("Object"), false); doc.getRootElement().element("SignedInfo").add(ref.getElement()); assertNotNull(XMLTools.getByID(doc, "one")); + assertNotNull(ref.getReferencedElement()); assertNotNull(ref); assertEquals("#one", ref.getUri()); Document doc2 = DocumentHelper.parseText(doc.asXML()); ! try { ! Reference ref2 = new Reference(doc2.getRootElement().element("SignedInfo").element("Reference")); ! assertNotNull(ref.getReferencedElement()); ! assertEquals(ref.getUri(), ref2.getUri()); ! assertEquals("Object", ref2.getReferencedElement().getName()); ! } catch (InvalidSignatureException e) { ! assertTrue(false); ! } Index: SimpleXMLSigTest.java =================================================================== RCS file: /cvsroot/neuclear/neuclear-xmlsig/src/test/org/neuclear/xml/xmlsec/SimpleXMLSigTest.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** SimpleXMLSigTest.java 2 Mar 2004 23:30:44 -0000 1.10 --- SimpleXMLSigTest.java 8 Mar 2004 23:51:04 -0000 1.11 *************** *** 6,13 **** import org.dom4j.DocumentHelper; import org.neuclear.commons.crypto.CryptoException; import org.neuclear.commons.crypto.passphraseagents.UserCancellationException; import org.neuclear.commons.crypto.signers.Signer; import org.neuclear.commons.crypto.signers.TestCaseSigner; - import org.neuclear.commons.test.JunitTools; import org.neuclear.xml.XMLException; import org.neuclear.xml.XMLTools; --- 6,13 ---- import org.dom4j.DocumentHelper; import org.neuclear.commons.crypto.CryptoException; + import org.neuclear.commons.crypto.CryptoTools; import org.neuclear.commons.crypto.passphraseagents.UserCancellationException; import org.neuclear.commons.crypto.signers.Signer; import org.neuclear.commons.crypto.signers.TestCaseSigner; import org.neuclear.xml.XMLException; import org.neuclear.xml.XMLTools; *************** *** 16,20 **** import java.security.KeyPair; import java.security.NoSuchAlgorithmException; - import java.security.interfaces.DSAPublicKey; /** --- 16,19 ---- *************** *** 25,28 **** --- 24,31 ---- * $Id$ * $Log$ + * Revision 1.11 2004/03/08 23:51:04 pelle + * More improvements on the XMLSignature. Now uses the Transforms properly, References properly. + * All the major elements have been refactored to be cleaner and more correct. + * * Revision 1.10 2004/03/02 23:30:44 pelle * Renamed SignatureInfo to SignedInfo as that is the name of the Element. *************** *** 31,35 **** * can't tell the difference between <test/> and <test xmlns=""/>. * Changed XMLSignature it is now has less repeated code. ! * * Revision 1.9 2004/03/02 18:39:57 pelle * Done some more minor fixes within xmlsig, but mainly I've removed the old Source and Store patterns and sub packages. This is because --- 34,38 ---- * can't tell the difference between <test/> and <test xmlns=""/>. * Changed XMLSignature it is now has less repeated code. ! * <p/> * Revision 1.9 2004/03/02 18:39:57 pelle * Done some more minor fixes within xmlsig, but mainly I've removed the old Source and Store patterns and sub packages. This is because *************** *** 127,132 **** public SimpleXMLSigTest(final String s) throws SecurityException, NoSuchAlgorithmException, CryptoException { super(s); ! rsa = JunitTools.getTestRSAKey(); ! dsa = JunitTools.getTestDSAKey(); signer = new TestCaseSigner(); new File("target/testdata/homegrown").mkdirs(); --- 130,135 ---- public SimpleXMLSigTest(final String s) throws SecurityException, NoSuchAlgorithmException, CryptoException { super(s); ! rsa = CryptoTools.createTinyRSAKeyPair(); ! dsa = CryptoTools.createTinyDSAKeyPair(); signer = new TestCaseSigner(); new File("target/testdata/homegrown").mkdirs(); *************** *** 145,149 **** public final void testEnvelopingUsignRSAKeyPair() throws DocumentException, XMLException, CryptoException { Document doc = DocumentHelper.parseText(TESTXML); ! final XMLSignature sig = new XMLSignature(rsa, doc.getRootElement(), Reference.XMLSIGTYPE_ENVELOPING); final File outputFile = new File("target/testdata/homegrown/signature-enveloping-rsa.xml"); XMLTools.writeFile(outputFile, sig.getElement()); --- 148,152 ---- public final void testEnvelopingUsignRSAKeyPair() throws DocumentException, XMLException, CryptoException { Document doc = DocumentHelper.parseText(TESTXML); ! final XMLSignature sig = new XMLSignature(rsa, doc.getRootElement(), false); final File outputFile = new File("target/testdata/homegrown/signature-enveloping-rsa.xml"); XMLTools.writeFile(outputFile, sig.getElement()); *************** *** 155,159 **** public final void testEnvelopingUsignDSAKeyPair() throws DocumentException, XMLException, CryptoException { Document doc = DocumentHelper.parseText(TESTXML); ! final XMLSignature sig = new XMLSignature(dsa, doc.getRootElement(), Reference.XMLSIGTYPE_ENVELOPING); final File outputFile = new File("target/testdata/homegrown/signature-enveloping-dsa.xml"); XMLTools.writeFile(outputFile, sig.getElement()); --- 158,162 ---- public final void testEnvelopingUsignDSAKeyPair() throws DocumentException, XMLException, CryptoException { Document doc = DocumentHelper.parseText(TESTXML); ! final XMLSignature sig = new XMLSignature(dsa, doc.getRootElement(), false); final File outputFile = new File("target/testdata/homegrown/signature-enveloping-dsa.xml"); XMLTools.writeFile(outputFile, sig.getElement()); *************** *** 165,169 **** public final void testEnvelopedUsignDSAKeyPair() throws DocumentException, XMLException, CryptoException { ! assertTrue("Test if public key is really DSA", dsa.getPublic() instanceof DSAPublicKey); Document doc = DocumentHelper.parseText(TESTXML); final XMLSignature sig = new XMLSignature(dsa, doc.getRootElement()); --- 168,172 ---- public final void testEnvelopedUsignDSAKeyPair() throws DocumentException, XMLException, CryptoException { ! // assertTrue("Test if public key is really DSA", dsa.getPublic() instanceof DSAPublicKey); Document doc = DocumentHelper.parseText(TESTXML); final XMLSignature sig = new XMLSignature(dsa, doc.getRootElement()); *************** *** 199,203 **** public final void testEnvelopedUsingSigner() throws DocumentException, XMLException, CryptoException, UserCancellationException { Document doc = DocumentHelper.parseText(TESTXML); ! final XMLSignature sig = new XMLSignature("neu://test", signer, doc.getRootElement(), Reference.XMLSIGTYPE_ENVELOPED); final File outputFile = new File("target/testdata/homegrown/signature-enveloped-signer.xml"); XMLTools.writeFile(outputFile, doc); --- 202,206 ---- public final void testEnvelopedUsingSigner() throws DocumentException, XMLException, CryptoException, UserCancellationException { Document doc = DocumentHelper.parseText(TESTXML); ! final XMLSignature sig = new XMLSignature("neu://test", signer, doc.getRootElement(), true); final File outputFile = new File("target/testdata/homegrown/signature-enveloped-signer.xml"); XMLTools.writeFile(outputFile, doc); *************** *** 209,213 **** public final void testEnvelopingUsingSigner() throws DocumentException, XMLException, CryptoException, UserCancellationException { Document doc = DocumentHelper.parseText(TESTXML); ! final XMLSignature sig = new XMLSignature("neu://test", signer, doc.getRootElement(), Reference.XMLSIGTYPE_ENVELOPING); final File outputFile = new File("target/testdata/homegrown/signature-enveloping-signer.xml"); XMLTools.writeFile(outputFile, sig.getElement()); --- 212,216 ---- public final void testEnvelopingUsingSigner() throws DocumentException, XMLException, CryptoException, UserCancellationException { Document doc = DocumentHelper.parseText(TESTXML); ! final XMLSignature sig = new XMLSignature("neu://test", signer, doc.getRootElement(), false); final File outputFile = new File("target/testdata/homegrown/signature-enveloping-signer.xml"); XMLTools.writeFile(outputFile, sig.getElement()); *************** *** 219,223 **** public final void testComplexEnvelopedUsingSigner() throws DocumentException, XMLException, CryptoException, UserCancellationException { Document doc = DocumentHelper.parseText(COMPLEX_XML); ! final XMLSignature sig = new XMLSignature("neu://test", signer, doc.getRootElement(), Reference.XMLSIGTYPE_ENVELOPED); final File outputFile = new File("target/testdata/homegrown/signature-complex-enveloped-signer.xml"); XMLTools.writeFile(outputFile, doc); --- 222,226 ---- public final void testComplexEnvelopedUsingSigner() throws DocumentException, XMLException, CryptoException, UserCancellationException { Document doc = DocumentHelper.parseText(COMPLEX_XML); ! final XMLSignature sig = new XMLSignature("neu://test", signer, doc.getRootElement(), true); final File outputFile = new File("target/testdata/homegrown/signature-complex-enveloped-signer.xml"); XMLTools.writeFile(outputFile, doc); *************** *** 229,233 **** public final void testComplexEnvelopingUsingSigner() throws DocumentException, XMLException, CryptoException, UserCancellationException { Document doc = DocumentHelper.parseText(COMPLEX_XML); ! final XMLSignature sig = new XMLSignature("neu://test", signer, doc.getRootElement(), Reference.XMLSIGTYPE_ENVELOPING); final File outputFile = new File("target/testdata/homegrown/signature-complex-enveloping-signer.xml"); XMLTools.writeFile(outputFile, sig.getElement()); --- 232,236 ---- public final void testComplexEnvelopingUsingSigner() throws DocumentException, XMLException, CryptoException, UserCancellationException { Document doc = DocumentHelper.parseText(COMPLEX_XML); ! final XMLSignature sig = new XMLSignature("neu://test", signer, doc.getRootElement(), false); final File outputFile = new File("target/testdata/homegrown/signature-complex-enveloping-signer.xml"); XMLTools.writeFile(outputFile, sig.getElement()); Index: XMLSignerTest.java =================================================================== RCS file: /cvsroot/neuclear/neuclear-xmlsig/src/test/org/neuclear/xml/xmlsec/XMLSignerTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** XMLSignerTest.java 14 Jan 2004 06:42:38 -0000 1.2 --- XMLSignerTest.java 8 Mar 2004 23:51:04 -0000 1.3 *************** *** 30,33 **** --- 30,37 ---- $Id$ $Log$ + Revision 1.3 2004/03/08 23:51:04 pelle + More improvements on the XMLSignature. Now uses the Transforms properly, References properly. + All the major elements have been refactored to be cleaner and more correct. + Revision 1.2 2004/01/14 06:42:38 pelle Got rid of the verifyXXX() methods *************** *** 43,56 **** * Time: 8:50:32 PM */ ! public class XMLSignerTest extends TestCase{ public XMLSignerTest(String string) throws InvalidPassphraseException { super(string); ! signer=new TestCaseSigner(); } public void testSign() throws DocumentException, XMLSecurityException, NonExistingSignerException, UserCancellationException { ! Document doc=DocumentHelper.parseText("<hello>test</hello>"); ! XMLSignature sig=new XMLSignature("neu://bob@test",signer,doc.getRootElement(),Reference.XMLSIGTYPE_ENVELOPED); assertTrue(true); } --- 47,61 ---- * Time: 8:50:32 PM */ ! public class XMLSignerTest extends TestCase { public XMLSignerTest(String string) throws InvalidPassphraseException { super(string); ! signer = new TestCaseSigner(); } + public void testSign() throws DocumentException, XMLSecurityException, NonExistingSignerException, UserCancellationException { ! Document doc = DocumentHelper.parseText("<hello>test</hello>"); ! XMLSignature sig = new XMLSignature("neu://bob@test", signer, doc.getRootElement(), true); assertTrue(true); } |