|
From: <pe...@us...> - 2004-03-09 00:07:57
|
Update of /cvsroot/neuclear/neuclear-id/src/test/org/neuclear/id In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23941/src/test/org/neuclear/id Modified Files: IdentityTests.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: IdentityTests.java =================================================================== RCS file: /cvsroot/neuclear/neuclear-id/src/test/org/neuclear/id/IdentityTests.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** IdentityTests.java 3 Mar 2004 23:26:44 -0000 1.5 --- IdentityTests.java 8 Mar 2004 23:51:11 -0000 1.6 *************** *** 5,12 **** import org.dom4j.Element; import org.neuclear.commons.NeuClearException; import org.neuclear.commons.crypto.CryptoException; import org.neuclear.commons.crypto.CryptoTools; - import org.neuclear.commons.crypto.Base32; - import org.neuclear.commons.crypto.signers.NonExistingSignerException; import org.neuclear.id.builders.Builder; import org.neuclear.id.builders.IdentityBuilder; --- 5,11 ---- import org.dom4j.Element; import org.neuclear.commons.NeuClearException; + import org.neuclear.commons.crypto.Base32; import org.neuclear.commons.crypto.CryptoException; import org.neuclear.commons.crypto.CryptoTools; import org.neuclear.id.builders.Builder; import org.neuclear.id.builders.IdentityBuilder; *************** *** 36,45 **** protected void verifyObject(SignedNamedObject obj) throws CryptoException { assertTrue(obj instanceof Identity); ! Identity id=(Identity) obj; assertEquals(CryptoTools.encodeBase32(CryptoTools.digest(signer.getPublicKey(NAME).getEncoded())), ! obj.getName().substring(5,37)); assertEquals(new String(CryptoTools.digest(signer.getPublicKey(NAME).getEncoded())), ! new String(Base32.decode(obj.getName().substring(5,37)))); ! assertEquals(id.getSigner(),SIGNER); assertNotNull(id.getPublicKey()); } --- 35,44 ---- protected void verifyObject(SignedNamedObject obj) throws CryptoException { assertTrue(obj instanceof Identity); ! Identity id = (Identity) obj; assertEquals(CryptoTools.encodeBase32(CryptoTools.digest(signer.getPublicKey(NAME).getEncoded())), ! obj.getName().substring(5, 37)); assertEquals(new String(CryptoTools.digest(signer.getPublicKey(NAME).getEncoded())), ! new String(Base32.decode(obj.getName().substring(5, 37)))); ! assertEquals(id.getSigner(), SIGNER); assertNotNull(id.getPublicKey()); } *************** *** 50,88 **** protected Builder createBuilder() throws NeuClearException { ! return new IdentityBuilder(getSigner().getPublicKey(NAME),SIGNER,null,null); } public void testAnonymous() throws NoSuchAlgorithmException { ! KeyPair kp=CryptoTools.createTinyKeyPair(); ! Identity id=new Identity(kp.getPublic()); assertNotNull(id); assertNotNull(id.getName()); ! assertEquals("sha1:",id.getName().substring(0,5)); ! assertEquals(CryptoTools.encodeBase32(CryptoTools.digest(kp.getPublic().getEncoded())),id.getName().substring(5)); ! assertEquals(kp.getPublic(),id.getPublicKey()); } ! public void testEmbedded() throws NoSuchAlgorithmException, XMLSecurityException, CryptoException, NameResolutionException, InvalidNamedObjectException{ ! KeyPair kp=CryptoTools.createTinyKeyPair(); ! Document doc=DocumentHelper.createDocument(); ! Element elem=doc.addElement("TestElement"); ! XMLSignature sig=new XMLSignature(kp,elem); ! assertEquals(kp.getPublic(),sig.getSignersKey()); ! SignedNamedObject obj=VerifyingReader.getInstance().read(elem); ! System.out.println("Name: "+obj.getName()); ! assertEquals("sha1:",obj.getName().substring(0,5)); ! assertEquals(CryptoTools.encodeBase32(CryptoTools.digest(kp.getPublic().getEncoded())),obj.getName().substring(5,37)); ! assertEquals(CryptoTools.encodeBase32(CryptoTools.digest(obj.getEncoded().getBytes())),obj.getName().substring(obj.getName().length()-32)); ! Identity id=obj.getSignatory(); assertNotNull(id); assertNotNull(id.getName()); ! assertEquals("sha1:",id.getName().substring(0,5)); ! assertEquals(CryptoTools.encodeBase32(CryptoTools.digest(kp.getPublic().getEncoded())),id.getName().substring(5)); ! assertEquals(kp.getPublic(),id.getPublicKey()); ! ! --- 49,85 ---- protected Builder createBuilder() throws NeuClearException { ! return new IdentityBuilder(getSigner().getPublicKey(NAME), SIGNER, null, null); } public void testAnonymous() throws NoSuchAlgorithmException { ! KeyPair kp = CryptoTools.createTinyRSAKeyPair(); ! Identity id = new Identity(kp.getPublic()); assertNotNull(id); assertNotNull(id.getName()); ! assertEquals("sha1:", id.getName().substring(0, 5)); ! assertEquals(CryptoTools.encodeBase32(CryptoTools.digest(kp.getPublic().getEncoded())), id.getName().substring(5)); ! assertEquals(kp.getPublic(), id.getPublicKey()); } ! public void testEmbedded() throws NoSuchAlgorithmException, XMLSecurityException, CryptoException, NameResolutionException, InvalidNamedObjectException { ! KeyPair kp = CryptoTools.createTinyRSAKeyPair(); ! Document doc = DocumentHelper.createDocument(); ! Element elem = doc.addElement("TestElement"); ! XMLSignature sig = new XMLSignature(kp, elem); ! assertEquals(kp.getPublic(), sig.getSignersKey()); ! SignedNamedObject obj = VerifyingReader.getInstance().read(elem); ! System.out.println("Name: " + obj.getName()); ! assertEquals("sha1:", obj.getName().substring(0, 5)); ! assertEquals(CryptoTools.encodeBase32(CryptoTools.digest(kp.getPublic().getEncoded())), obj.getName().substring(5, 37)); ! assertEquals(CryptoTools.encodeBase32(CryptoTools.digest(obj.getEncoded().getBytes())), obj.getName().substring(obj.getName().length() - 32)); ! Identity id = obj.getSignatory(); assertNotNull(id); assertNotNull(id.getName()); ! assertEquals("sha1:", id.getName().substring(0, 5)); ! assertEquals(CryptoTools.encodeBase32(CryptoTools.digest(kp.getPublic().getEncoded())), id.getName().substring(5)); ! assertEquals(kp.getPublic(), id.getPublicKey()); |