diff options
Diffstat (limited to 'spss.test/src/testgenerator/TestGeneratorCX1.java')
-rw-r--r-- | spss.test/src/testgenerator/TestGeneratorCX1.java | 1054 |
1 files changed, 1054 insertions, 0 deletions
diff --git a/spss.test/src/testgenerator/TestGeneratorCX1.java b/spss.test/src/testgenerator/TestGeneratorCX1.java new file mode 100644 index 000000000..44670742b --- /dev/null +++ b/spss.test/src/testgenerator/TestGeneratorCX1.java @@ -0,0 +1,1054 @@ +package testgenerator; + +import iaik.ixsil.algorithms.Transform; +import iaik.ixsil.algorithms.TransformImplBase64Decode; +import iaik.ixsil.algorithms.TransformImplCanonicalXML; +import iaik.ixsil.algorithms.TransformImplCanonicalXMLWithComments; +import iaik.ixsil.algorithms.TransformImplEnvelopedSignature; +import iaik.ixsil.algorithms.TransformImplExclusiveCanonicalXML; +import iaik.ixsil.algorithms.TransformImplExclusiveCanonicalXMLWithComments; +import iaik.ixsil.algorithms.TransformImplXPath; +import iaik.ixsil.algorithms.TransformImplXPath2; +import iaik.ixsil.algorithms.TransformImplXSLT; +import iaik.ixsil.core.Position; +import iaik.ixsil.util.URI; +import java.io.BufferedWriter; +import java.io.ByteArrayInputStream; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.InputStream; +import java.net.URL; +import java.net.URLConnection; +import java.util.ArrayList; +import java.util.HashMap; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.w3c.dom.Document; +import org.w3c.dom.Node; + +import at.gv.egovernment.moa.util.Base64Utils; +import at.gv.egovernment.moa.util.DOMUtils; + +/** + * @author Administrator + * + * To change this generated comment edit the template variable "typecomment": + * Window>Preferences>Java>Templates. + * To enable and disable the creation of type comments go to + * Window>Preferences>Java>Code Generation. + */ +public class TestGeneratorCX1 extends TestCases { + + String datadirectory = "data/CX1/"; + + String base64content = "RGllcyBzaW5kIFRlc3RkYXRlbg=="; + + String defaultblock = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+ + "<CreateXMLSignatureRequest xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >"+ + "<KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>"+ + "<SingleSignatureInfo SecurityLayerConformity=\"false\">"+ + "<DataObjectInfo Structure=\"detached\" ChildOfManifest=\"false\">"+ + "<DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/BookData.xml"+"\">"+ + "<XMLContent xml:space=\"preserve\">"+ + "<data:book xmlns:data=\"http://uri.data.org\" data:hardback=\"yes\">"+ + "<data:title>Gesundheitliche Auswirkungen elektronischer Signaturen</data:title>"+ + "<data:first-name>Ellipse</data:first-name>"+ + "<data:last-name>Kurvenreich</data:last-name>"+ + "<data:birth-date>1951-04-16</data:birth-date>"+ + "<data:birth-location>Hinterm Berg</data:birth-location>"+ + "<data:register-number>6-930-21512-12</data:register-number>"+ + "</data:book>"+ + "</XMLContent>"+ + "</DataObject>"+ + "<CreateTransformsInfoProfile>"+ + "<CreateTransformsInfo>"+ + "<dsig:Transforms>"+ + "<!-- insert transform -->"+ + "</dsig:Transforms>"+ + "<FinalDataMetaInfo>"+ + "<MimeType>text/html</MimeType>"+ + "<Description>http://www.description.com</Description>"+ + "</FinalDataMetaInfo>"+ + "</CreateTransformsInfo>"+ + "<!-- insert supp -->"+ + "</CreateTransformsInfoProfile>"+ + "</DataObjectInfo>"+ + "<!-- insert data2 -->"+ + "</SingleSignatureInfo>"+ + "</CreateXMLSignatureRequest>"; + + private static final int canAlgCanXML = 1; + private static final int canAlgCanXMLwithCom = 2; + private static final int canAlgExcXML = 3; + private static final int canAlgExcXMLwithCom = 4; + + + public String fileprefix = null; + public String filesuffix = null; + + public TestGeneratorCX1() throws Exception { + + super(); + + // Set config properties + configuration_.setProperty("TestClass", "TestGeneratorCX1"); +// configuration_.setProperty("privateKeyFile", baseDir + "additionalFiles/keys/RSAPrivateKey.der"); +// configuration_.setProperty("publicKeyFile", baseDir + "additionalFiles/keys/RSAPublicKey.der"); +// configuration_.setProperty("signatureFile", baseDir + "additionalFiles/signatures/Signature.unit1.xml"); + + iaik.security.provider.IAIK.addAsProvider(); + iaik.security.ecc.provider.ECCProvider.addAsProvider(); + } + + public static void main(String[] args) throws Exception { + TestGeneratorCX1 testcase = new TestGeneratorCX1(); + + testcase.createConfig(); + testcase.create001(); + testcase.create002(); + testcase.create003(); + testcase.create004(); + testcase.create005(); + testcase.create006(); + testcase.create007(); + testcase.create008(); + testcase.create009(); + testcase.create010(); + testcase.create011(); + testcase.create012(); + testcase.create013(); + testcase.create014(); + + testcase.create051(); + testcase.create052(); + testcase.create053(); + testcase.create054(); + testcase.create055(); + + } + + public void createConfig() throws Exception { + + String file = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + ".Config.xml"; + String config = + + "<MOAConfiguration xmlns=\"http://reference.e-government.gv.at/namespace/moaconfig/20021122#\">"+ + " <KeyGroup id=\"PKCS12RSAKey1\"> <Key id=\"resources/test-ee2003_normal(buergerkarte).p12\"/> </KeyGroup>"+ + " <KeyGroup id=\"PKCS12RSAKeyExpired\"> <Key id=\"sicher-demo(buergerkarte).p12\"/> </KeyGroup>"+ + + " <KeyGroup id=\"PKCS12ECDSAKey1\"> <Key id=\"ecc.p12\"/> </KeyGroup> "+ + " <KeyGroup id=\"HSMRSAKey1\"> <Key id=\"???\"/> </KeyGroup>"+ + " <KeyGroup id=\"HSMECDSAKey1\"> <Key id=\"???\"/> </KeyGroup>"+ + " <DigestMethodAlgorithm name=\"http://www.w3.org/2000/09/xmldsig#sha1\"/>"+ + " <SignatureAlgorithm name=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\"/>"+ + " <CanonicalizationAlgorithm name=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"/>"+ + " <CreateTransformsInfoProfile id=\"CreateTransformsInfoProfile1\" filename=\""+"file:/"+configuration_.getProperty("webbaseDir")+"CX1_bookprofile.xsl\"/>"+ + "</MOAConfiguration>"; + + + /*"<MOAConfiguration>"+ + " <KeyGroup id=\"PKCS12RSAKey1\"/> <!-- mapped auf \"test(1234).p12\" -->"+ + "</MOAConfiguration>"+ + "<!-- CanonicalizationMethod = http://www.w3.org/TR/2001/REC-xml-c14n-20010315 -->" + + "<!-- SignatureMethod = http://www.w3.org/2000/09/xmldsig#rsa-sha1 -->";*/ + + FileOutputStream fos = new FileOutputStream(file); + fos.write(config.getBytes()); + fos.flush(); + fos.close(); + + fileprefix = configuration_.getProperty("baseDir")+ datadirectory + configuration_.getProperty("TestClass") + "."; + filesuffix = ".xml"; + } + + public void create001() throws Exception { + + String TestNumber = "001"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + "<dsig:Transform Algorithm=\"http://www.w3.org/TR/1999/REC-xslt-19991116\">"+ + "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"><xsl:output method=\"html\" indent=\"no\"/><xsl:template match=\"data:book\" xmlns:data=\"http://uri.data.org\"><HTML><BODY><H1>Buch: <xsl:value-of select=\"data:title\"/></H1></BODY></HTML></xsl:template></xsl:stylesheet>"+ + "</dsig:Transform>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + CreatePKCSSignature cpkcs = new CreatePKCSSignature(); + cpkcs.init("signature-1-1"); + cpkcs.setCanoncialization(canAlgCanXML); + //cpkcs.createReference(true,"Dies sind testdaten"); + + Transform[] tr = new Transform[1]; + TransformImplXSLT trans = new TransformImplXSLT(); + InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); + trans.setInput(s,null); + trans.setStyleSheet(s,null); + tr[0] = trans; + + cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); + + cpkcs.setKeyInformation(1); + + Document doc = cpkcs.returnSig(); + + String output = makeOutputFile(doc); + + writeFile(resFile, output); + + } + + public void create002() throws Exception { + + String TestNumber = "002"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + "<dsig:Transform Algorithm=\"http://www.w3.org/TR/1999/REC-xslt-19991116\">"+ + "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">"+ + "<xsl:output method=\"html\" indent=\"no\"/>"+ + "<xsl:template match=\"data:book\" xmlns:data=\"http://uri.data.org\">"+ + "<HTML>"+ + "<BODY>"+ + "<H1>Buch: <xsl:value-of select=\"data:title\"/>"+ + "</H1>"+ + "</BODY>"+ + "</HTML>"+ + "</xsl:template>"+ + "</xsl:stylesheet>"+ + "</dsig:Transform>"); + + req = replaceString(req,"SecurityLayerConformity=\"false\"","SecurityLayerConformity=\"true\""); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + CreatePKCSSignature cpkcs = new CreatePKCSSignature(); + cpkcs.init("signature-1-1"); + cpkcs.setCanoncialization(canAlgCanXML); + //cpkcs.createReference(true,"Dies sind testdaten"); + + Transform[] tr = new Transform[1]; + TransformImplXSLT trans = new TransformImplXSLT(); + InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); + trans.setInput(s,null); + trans.setStyleSheet(s,null); + tr[0] = trans; + + cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); + //cpkcs.createReferenceWithManifest(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),"manifestObject"); + cpkcs.createETSIObjects("file:/"+configuration_.getProperty("webbaseDir")+"resources/BookData.xml"); + cpkcs.setKeyInformation(1); + + cpkcs.signer.getSignature().setId("signature-1-1"); + + Document doc = cpkcs.returnSig(); + + String output = makeOutputFile(doc); + + writeFile(resFile, output); + + } + + public void create003() throws Exception { + + String TestNumber = "003"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + "<dsig:Transform Algorithm=\"http://www.w3.org/TR/1999/REC-xpath-19991116\">"+ + "<dsig:XPath xmlns:data=\"http://uri.data.org\">//data:book/data:first-name</dsig:XPath>"+ + "</dsig:Transform>"); + + req = replaceString(req,"<MimeType>text/html</MimeType>","<MimeType>text/plain</MimeType>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + CreatePKCSSignature cpkcs = new CreatePKCSSignature(); + cpkcs.init("signature-1-1"); + cpkcs.setCanoncialization(canAlgCanXML); + //cpkcs.createReference(true,"Dies sind testdaten"); + + Transform[] tr = new Transform[1]; + TransformImplXPath trans = new TransformImplXPath(); + InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/BookData.xml"); + trans.setInput(s,null); + trans.addNSDeclaration("data",new URI("http://uri.data.org")); + trans.setXPath("//data:book/data:first-name"); + //trans.setXPath("ancestor-or-self::data:first-name"); + + tr[0] = trans; + + cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); + cpkcs.setKeyInformation(1); + + Document doc = cpkcs.returnSig(); + + String output = makeOutputFile(doc); + + output = replaceString(output,"<dsig:XPath xmlns:data=\"http://uri.data.org\">","<dsig:XPath>"); // workaround + + writeFile(resFile, output); + + } + + public void create004() throws Exception { + + String TestNumber = "004"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + "<dsig:Transform Algorithm=\"http://www.w3.org/2002/06/xmldsig-filter2\">"+ + "<xf2:XPath Filter=\"subtract\" xmlns:xf2=\"http://www.w3.org/2002/06/xmldsig-filter2\" xmlns:data=\"http://uri.data.org\">//data:book/data:first-name</xf2:XPath>"+ + "</dsig:Transform>"); + + req = replaceString(req,"<MimeType>text/html</MimeType>","<MimeType>text/xml</MimeType>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + CreatePKCSSignature cpkcs = new CreatePKCSSignature(); + cpkcs.init("signature-1-1"); + cpkcs.setCanoncialization(canAlgCanXML); + //cpkcs.createReference(true,"Dies sind testdaten"); + + Transform[] tr = new Transform[1]; + TransformImplXPath2 trans = new TransformImplXPath2(); + InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/BookData.xml"); + trans.setInput(s,null); + //trans.addNSDeclaration("data",new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml")); + //trans.setXPath("/data:book/data:first-name/node()"); + HashMap temp = new HashMap(); + temp.put("data",new URI("http://uri.data.org")); + trans.addXPathFilter("//data:book/data:first-name",TransformImplXPath2.FILTER_MODE_SUBTRACT_,temp); + tr[0] = trans; + + cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); + cpkcs.setKeyInformation(1); + + Document doc = cpkcs.returnSig(); + + String output = makeOutputFile(doc); + + output = replaceString(output,"<xf2:XPath Filter=\"subtract\" xmlns:data=\"http://uri.data.org\"","<xf2:XPath Filter=\"subtract\" "); + + writeFile(resFile, output); + + } + + public void create005() throws Exception { + + String TestNumber = "005"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + "<dsig:Transform Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"/>"); + + req = replaceString(req,"<MimeType>text/html</MimeType>","<MimeType>text/xml</MimeType>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + CreatePKCSSignature cpkcs = new CreatePKCSSignature(); + cpkcs.init("signature-1-1"); + cpkcs.setCanoncialization(canAlgCanXML); + //cpkcs.createReference(true,"Dies sind testdaten"); + + Transform[] tr = new Transform[1]; + TransformImplCanonicalXML trans = new TransformImplCanonicalXML(); + InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); + trans.setInput(s,null); + /*trans.addNSDeclaration("data",new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml")); + trans.setXPath("/data:book/data:first-name/node()"); + trans.*/ + tr[0] = trans; + + cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); + cpkcs.setKeyInformation(1); + + Document doc = cpkcs.returnSig(); + + String output = makeOutputFile(doc); + + writeFile(resFile, output); + + } + + public void create006() throws Exception { + + String TestNumber = "006"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + "<dsig:Transform Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments\"/>"); + + req = replaceString(req,"<MimeType>text/html</MimeType>","<MimeType>text/xml</MimeType>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + CreatePKCSSignature cpkcs = new CreatePKCSSignature(); + cpkcs.init("signature-1-1"); + cpkcs.setCanoncialization(canAlgCanXML); + //cpkcs.createReference(true,"Dies sind testdaten"); + + Transform[] tr = new Transform[1]; + TransformImplCanonicalXMLWithComments trans = new TransformImplCanonicalXMLWithComments(); + InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); + trans.setInput(s,null); + /*trans.addNSDeclaration("data",new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml")); + trans.setXPath("/data:book/data:first-name/node()"); + trans.*/ + tr[0] = trans; + + cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); + cpkcs.setKeyInformation(1); + + Document doc = cpkcs.returnSig(); + + String output = makeOutputFile(doc); + + writeFile(resFile, output); + + } + + public void create007() throws Exception { + + String TestNumber = "007"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + "<dsig:Transform Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"><ec:InclusiveNamespaces PrefixList=\"dsig\" xmlns:ec=\"http://www.w3.org/2001/10/xml-exc-c14n#\"/></dsig:Transform>"); + + req = replaceString(req,"<MimeType>text/html</MimeType>","<MimeType>text/xml</MimeType>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + CreatePKCSSignature cpkcs = new CreatePKCSSignature(); + cpkcs.init("signature-1-1"); + cpkcs.setCanoncialization(canAlgCanXML); + //cpkcs.createReference(true,"Dies sind testdaten"); + + Transform[] tr = new Transform[1]; + TransformImplExclusiveCanonicalXML trans = new TransformImplExclusiveCanonicalXML(); + InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); + trans.setInput(s,null); + trans.setInclusiveNamespacePrefixes("dsig"); + /*trans.addNSDeclaration("data",new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml")); + trans.setXPath("/data:book/data:first-name/node()"); + trans.*/ + tr[0] = trans; + + cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); + cpkcs.setKeyInformation(1); + + Document doc = cpkcs.returnSig(); + + String output = makeOutputFile(doc); + + writeFile(resFile, output); + + } + + public void create008() throws Exception { + + String TestNumber = "008"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + "<dsig:Transform Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#WithComments\"><ec:InclusiveNamespaces PrefixList=\"dsig\" xmlns:ec=\"http://www.w3.org/2001/10/xml-exc-c14n#\"/></dsig:Transform>"); + + req = replaceString(req,"<MimeType>text/html</MimeType>","<MimeType>text/xml</MimeType>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + CreatePKCSSignature cpkcs = new CreatePKCSSignature(); + cpkcs.init("signature-1-1"); + cpkcs.setCanoncialization(canAlgCanXML); + //cpkcs.createReference(true,"Dies sind testdaten"); + + Transform[] tr = new Transform[1]; + TransformImplExclusiveCanonicalXMLWithComments trans = new TransformImplExclusiveCanonicalXMLWithComments(); + InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); + trans.setInput(s,null); + trans.setInclusiveNamespacePrefixes("dsig"); + /*trans.addNSDeclaration("data",new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml")); + trans.setXPath("/data:book/data:first-name/node()"); + trans.*/ + tr[0] = trans; + + cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); + cpkcs.setKeyInformation(1); + + Document doc = cpkcs.returnSig(); + + String output = makeOutputFile(doc); + + writeFile(resFile, output); + + } + + public void create009() throws Exception { + + String TestNumber = "009"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + "<dsig:Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/>"); + + req = replaceString(req,"<XMLContent xml:space=\"preserve\">"+ + "<data:book xmlns:data=\"http://uri.data.org\" data:hardback=\"yes\">"+ + "<data:title>Gesundheitliche Auswirkungen elektronischer Signaturen</data:title>"+ + "<data:first-name>Ellipse</data:first-name>"+ + "<data:last-name>Kurvenreich</data:last-name>"+ + "<data:birth-date>1951-04-16</data:birth-date>"+ + "<data:birth-location>Hinterm Berg</data:birth-location>"+ + "<data:register-number>6-930-21512-12</data:register-number>"+ + "</data:book>"+ + "</XMLContent>",""); + + req = replaceString(req, + "<DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/BookData.xml"+"\">", + "<DataObject Reference=\"\">"); + + //req = replaceString(req,"Structure=\"detached\"","Structure=\"enveloping\""); + + + req = replaceString(req,"<!-- insert data2 -->", + "<CreateSignatureInfo><CreateSignatureEnvironment><XMLContent xml:space=\"preserve\"><env:Document xmlns:env=\"http://uri.env.org\">Text</env:Document></XMLContent></CreateSignatureEnvironment><CreateSignatureEnvironmentProfile><CreateSignatureLocation xmlns:env=\"http://uri.env.org\" Index=\"1\">//env:Document</CreateSignatureLocation></CreateSignatureEnvironmentProfile></CreateSignatureInfo>"); + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + InputStream bis = new ByteArrayInputStream(("<env:Document xmlns:env=\"http://uri.env.org\">Text</env:Document>").getBytes()); + //Document-Builder holen + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + DocumentBuilder builder = factory.newDocumentBuilder(); + //Dokument Parsen + Document reqDoc = builder.parse(bis); + + System.out.println(DOMUtils.serializeNode(reqDoc.getDocumentElement())); + //Position für die Signatur angeben + String xPath_Pos = "/node()"; + //XPAth-Prefixe deklarieren + String xPath_Prefix = "env xmlns:env=\"http://uri.env.org\""; + Position pos = new Position(xPath_Pos, xPath_Prefix,0); + + CreatePKCSSignature cpkcs = new CreatePKCSSignature(); + cpkcs.init(reqDoc,pos,"signature-1-1"); + cpkcs.setCanoncialization(canAlgCanXML); + //cpkcs.createReference(true,"Dies sind testdaten"); + + Transform[] tr = new Transform[1]; + TransformImplEnvelopedSignature trans = new TransformImplEnvelopedSignature(); + + /*trans.addNSDeclaration("data",new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml")); + trans.setXPath("/data:book/data:first-name/node()"); + trans.*/ + tr[0] = trans; + + cpkcs.createReferenceWithTransforms(new URI(""),tr,"reference-1-1"); + cpkcs.setKeyInformation(1); + + Document doc = cpkcs.returnSig(); + + String output = makeOutputFile(doc); + + output = replaceString(output,"<dsig:Signature","<env:Document xmlns:env=\"http://uri.env.org\">Text<dsig:Signature"); + output = replaceString(output,"</dsig:Signature>","</dsig:Signature></env:Document>"); + + + + writeFile(resFile, output); + + } + + public void create010() throws Exception { + + String TestNumber = "010"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + "<dsig:Transform Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"/>"+ + "<dsig:Transform Algorithm=\"http://www.w3.org/TR/1999/REC-xslt-19991116\">"+ + "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">"+ + "<xsl:output method=\"html\" indent=\"no\"/>"+ + "<xsl:template match=\"data:book\" xmlns:data=\"http://uri.data.org\">"+ + "<HTML>"+ + "<BODY>"+ + "<H1>Buch: <xsl:value-of select=\"data:title\"/>"+ + "</H1>"+ + "</BODY>"+ + "</HTML>"+ + "</xsl:template>"+ + "</xsl:stylesheet>"+ + "</dsig:Transform>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + CreatePKCSSignature cpkcs = new CreatePKCSSignature(); + cpkcs.init("signature-1-1"); + cpkcs.setCanoncialization(canAlgCanXML); + //cpkcs.createReference(true,"Dies sind testdaten"); + + Transform[] tr = new Transform[2]; + TransformImplCanonicalXML trans = new TransformImplCanonicalXML(); + InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); + trans.setInput(s,null); + /*trans.addNSDeclaration("data",new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml")); + trans.setXPath("/data:book/data:first-name/node()"); + trans.*/ + tr[0] = trans; + + TransformImplXSLT tr2 = new TransformImplXSLT(); + InputStream s2 = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); + tr2.setInput(s2,null); + tr2.setStyleSheet(s2,null); + tr[1] = tr2; + + cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); + cpkcs.setKeyInformation(1); + + Document doc = cpkcs.returnSig(); + + String output = makeOutputFile(doc); + + writeFile(resFile, output); + + } + + public void create011() throws Exception { + + String TestNumber = "011"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + "<dsig:Transform Algorithm=\"http://www.w3.org/TR/1999/REC-xslt-19991116\">"+ + "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">"+ + "<xsl:include href=\""+configuration_.getProperty("webbaseDir")+"resources/CX1_book_not_here.xsl"+"\"/>"+ + "</xsl:stylesheet>"+ + "</dsig:Transform>"); + + req = replaceString(req,"<!-- insert supp -->", + "<Supplement>"+ + "<Content Reference=\""+configuration_.getProperty("webbaseDir")+"resources/CX1_book_not_here.xsl"+"\">"+ + "<Base64Content>"+ + Base64Utils.encode(("<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">"+ + "<xsl:output method=\"html\" indent=\"no\"/>"+ + "<xsl:template match=\"data:book\" xmlns:data=\"http://uri.data.org\">"+ + "<HTML>"+ + "<BODY>"+ + "<H1>Buch: <xsl:value-of select=\"data:title\"/>"+ + "</H1>"+ + "</BODY>"+ + "</HTML>"+ + "</xsl:template>"+ + "</xsl:stylesheet>").getBytes())+ + "</Base64Content>"+ + "</Content>"+ + "</Supplement>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + CreatePKCSSignature cpkcs = new CreatePKCSSignature(); + cpkcs.init("signature-1-1"); + cpkcs.setCanoncialization(canAlgCanXML); + //cpkcs.createReference(true,"Dies sind testdaten"); + + Transform[] tr = new Transform[1]; + TransformImplXSLT trans = new TransformImplXSLT(); + URL u = new URL(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref_not_here.xsl"); + URLConnection hu = u.openConnection(); + //trans.setInput(s,null); + trans.setStyleSheet(hu.getInputStream(),new URI(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref_not_here.xsl")); + tr[0] = trans; + + cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); + //cpkcs.createReferenceWithManifest(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),"manifestObject"); + cpkcs.setKeyInformation(1); + + Document doc = cpkcs.returnSig(); + + String output = makeOutputFile(doc); + + writeFile(resFile, output); + } + + public void create012() throws Exception { + + String TestNumber = "012"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + "<dsig:Transform Algorithm=\"http://www.w3.org/TR/1999/REC-xslt-19991116\">"+ + "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">"+ + "<xsl:include href=\""+configuration_.getProperty("webbaseDir")+"resources/CX1_book_not_here.xsl"+"\"/>"+ + "</xsl:stylesheet>"+ + "</dsig:Transform>"); + + req = replaceString(req,"<!-- insert data2 -->", + "<DataObjectInfo Structure=\"detached\" ChildOfManifest=\"false\">"+ + "<DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/BookData.xml"+"\">"+ + "<XMLContent xml:space=\"preserve\">"+ + "<data:book xmlns:data=\"http://uri.data.org\" data:hardback=\"yes\">"+ + "<data:title>Gesundheitliche Auswirkungen elektronischer Signaturen</data:title>"+ + "<data:first-name>Ellipse</data:first-name>"+ + "<data:last-name>Kurvenreich</data:last-name>"+ + "<data:birth-date>1951-04-16</data:birth-date>"+ + "<data:birth-location>Hinterm Berg</data:birth-location>"+ + "<data:register-number>6-930-21512-12</data:register-number>"+ + "</data:book>"+ + "</XMLContent>"+ + "</DataObject>"+ + "<CreateTransformsInfoProfile>"+ + "<CreateTransformsInfo>"+ + "<dsig:Transforms>"+ + "<dsig:Transform Algorithm=\"http://www.w3.org/TR/1999/REC-xslt-19991116\">"+ + "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">"+ + "<xsl:include href=\""+configuration_.getProperty("webbaseDir")+"resources/CX1_book_not_here.xsl\"/>"+ + "</xsl:stylesheet>"+ + "</dsig:Transform>"+ + "</dsig:Transforms>"+ + "<FinalDataMetaInfo>"+ + "<MimeType>text/html</MimeType>"+ + "</FinalDataMetaInfo>"+ + "</CreateTransformsInfo>"+ + "<Supplement>"+ + "<Content Reference=\""+configuration_.getProperty("webbaseDir")+"resources/CX1_book_not_here.xsl"+"\">"+ + "<Base64Content>"+ + Base64Utils.encode(("<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">"+ + "<xsl:output method=\"html\" indent=\"no\"/>"+ + "<xsl:template match=\"data:book\" xmlns:data=\"http://uri.data.org\">"+ + "<HTML>"+ + "<BODY>"+ + "<H1>Buch: <xsl:value-of select=\"data:title\"/>"+ + "</H1>"+ + "</BODY>"+ + "</HTML>"+ + "</xsl:template>"+ + "</xsl:stylesheet>").getBytes())+ + "</Base64Content>"+ + "</Content>"+ + "</Supplement>"+ + "</CreateTransformsInfoProfile>"+ + "</DataObjectInfo>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + CreatePKCSSignature cpkcs = new CreatePKCSSignature(); + cpkcs.init("signature-1-1"); + cpkcs.setCanoncialization(canAlgCanXML); + //cpkcs.createReference(true,"Dies sind testdaten"); + + Transform[] tr = new Transform[1]; + TransformImplXSLT trans = new TransformImplXSLT(); + URL u = new URL(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref_not_here.xsl"); + URLConnection hu = u.openConnection(); + //trans.setInput(s,null); + trans.setStyleSheet(hu.getInputStream(),new URI(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref_not_here.xsl")); + + tr[0] = trans; + + cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); + cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-2"); + //cpkcs.createReferenceWithManifest(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),"manifestObject"); + cpkcs.setKeyInformation(1); + + Document doc = cpkcs.returnSig(); + + String output = makeOutputFile(doc); + + writeFile(resFile, output); + + } + + public void create013() throws Exception { + + String TestNumber = "013"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock, + "<CreateTransformsInfoProfile>"+ + "<CreateTransformsInfo>"+ + "<dsig:Transforms>"+ + "<!-- insert transform -->"+ + "</dsig:Transforms>"+ + "<FinalDataMetaInfo>"+ + "<MimeType>text/html</MimeType>"+ + "<Description>http://www.description.com</Description>"+ + "</FinalDataMetaInfo>"+ + "</CreateTransformsInfo>"+ + "<!-- insert supp -->"+ + "</CreateTransformsInfoProfile>", + "<CreateTransformsInfoProfileID>CreateTransformsInfoProfile1</CreateTransformsInfoProfileID>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + CreatePKCSSignature cpkcs = new CreatePKCSSignature(); + cpkcs.init("signature-1-1"); + cpkcs.setCanoncialization(canAlgCanXML); + //cpkcs.createReference(true,"Dies sind testdaten"); + + Transform[] tr = new Transform[1]; + TransformImplXSLT trans = new TransformImplXSLT(); + InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); + trans.setInput(s,null); + trans.setStyleSheet(s,null); + tr[0] = trans; + + cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); + //cpkcs.createReferenceWithManifest(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),"manifestObject"); + cpkcs.setKeyInformation(1); + + Document doc = cpkcs.returnSig(); + + String output = makeOutputFile(doc); + + writeFile(resFile, output); + + } + + public void create014() throws Exception { + + String TestNumber = "014"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + "<dsig:Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#base64\"/>"); + + req = replaceString(req, + "<DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/BookData.xml"+"\">", + "<DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testBase64.txt"+"\">"); + + req = replaceString(req, + "<XMLContent xml:space=\"preserve\">"+ + "<data:book xmlns:data=\"http://uri.data.org\" data:hardback=\"yes\">"+ + "<data:title>Gesundheitliche Auswirkungen elektronischer Signaturen</data:title>"+ + "<data:first-name>Ellipse</data:first-name>"+ + "<data:last-name>Kurvenreich</data:last-name>"+ + "<data:birth-date>1951-04-16</data:birth-date>"+ + "<data:birth-location>Hinterm Berg</data:birth-location>"+ + "<data:register-number>6-930-21512-12</data:register-number>"+ + "</data:book>"+ + "</XMLContent>", + /*"<Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg==</Base64Content>"*/""); + + req = replaceString(req,"<MimeType>text/html</MimeType>","<MimeType>text/plain</MimeType>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + CreatePKCSSignature cpkcs = new CreatePKCSSignature(); + cpkcs.init("signature-1-1"); + cpkcs.setCanoncialization(canAlgCanXML); + //cpkcs.createReference(true,"Dies sind testdaten"); + + Transform[] tr = new Transform[1]; + TransformImplBase64Decode trans = new TransformImplBase64Decode(); + InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/testBase64.txt"); + trans.setInput(s,null); + /*trans.addNSDeclaration("data",new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml")); + trans.setXPath("/data:book/data:first-name/node()"); + trans.*/ + tr[0] = trans; + + cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/testBase64.txt"),tr,"reference-1-1"); + cpkcs.setKeyInformation(1); + + Document doc = cpkcs.returnSig(); + + String output = makeOutputFile(doc); + + writeFile(resFile, output); + + } + + public void create051() throws Exception { + + String TestNumber = "051"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + "<dsig:Transform Algorithm=\"http://www.w3.org/TR/1999/REC-xpath-19991116\">"+ + "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">"+ + "<xsl:output method=\"html\" indent=\"no\"/>"+ + "<xsl:template match=\"data:book\" xmlns:data=\"http://uri.data.org\">"+ + "<HTML>"+ + "<BODY>"+ + "<H1>Buch: <xsl:value-of select=\"data:title\"/>"+ + "</H1>"+ + "</BODY>"+ + "</HTML>"+ + "</xsl:template>"+ + "</xsl:stylesheet>"+ + "</dsig:Transform>"); + + req = replaceString(req,"SecurityLayerConformity=\"false\"","SecurityLayerConformity=\"true\""); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; + + writeFile(resFile,"2202"); + } + + public void create052() throws Exception { + + String TestNumber = "052"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + "<dsig:Transform Algorithm=\"http://www.w3.org/TR/1999/REC-xslt-19991116\">"+ + "<XPath>/data:book/data:first-name/node()</XPath>"+ + "</dsig:Transform>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; + + writeFile(resFile,"2215"); + + + } + + public void create053() throws Exception { + + String TestNumber = "053"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + " <dsig:Transform Algorithm=\"http://www.w3.org/TR/1999/REC-xslt-19991116\">"+ + " <xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">"+ + " <xsl:include href=\"file:/transform.xsl\"/>"+ + " </xsl:stylesheet>"+ + " </dsig:Transform>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; + + writeFile(resFile,"2220"); + + } + + public void create054() throws Exception { + + String TestNumber = "054"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock, + "<CreateTransformsInfoProfile>"+ + "<CreateTransformsInfo>"+ + "<dsig:Transforms>"+ + "<!-- insert transform -->"+ + "</dsig:Transforms>"+ + "<FinalDataMetaInfo>"+ + "<MimeType>text/html</MimeType>"+ + "<Description>http://www.description.com</Description>"+ + "</FinalDataMetaInfo>"+ + "</CreateTransformsInfo>"+ + "<!-- insert supp -->"+ + "</CreateTransformsInfoProfile>", + "<CreateTransformsInfoProfileID>CreateTransformsInfoProfileNonValid</CreateTransformsInfoProfileID>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; + + writeFile(resFile,"2234"); + + } + + public void create055() throws Exception { + + String TestNumber = "055"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert transform -->", + "<dsig:Transform Algorithm=\"http://www.w3.org/2002/06/xmldsig-filter2\">"+ + "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">"+ + "<xsl:output method=\"html\" indent=\"no\"/>"+ + "<xsl:template match=\"data:book\" xmlns:data=\"http://uri.data.org\">"+ + "<HTML>"+ + "<BODY>"+ + "<H1>Buch: <xsl:value-of select=\"data:title\"/>"+ + "</H1>"+ + "</BODY>"+ + "</HTML>"+ + "</xsl:template>"+ + "</xsl:stylesheet>"+ + "</dsig:Transform>"); + + req = replaceString(req,"SecurityLayerConformity=\"false\"","SecurityLayerConformity=\"true\""); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; + + writeFile(resFile,"2216"); + } + + public void writeFile(String filename,String data) throws Exception + { + BufferedWriter bw = new BufferedWriter(new FileWriter(filename)); + bw.write(data); + bw.close(); + } + + public String makeOutputFile(Document signatureDoc) throws Exception + { + ArrayList foundNodes = new ArrayList(); + findNode(signatureDoc.getDocumentElement(),"dsig:Signature",foundNodes); + + Node outputNode = null; + + if(foundNodes.size()>0) + { + outputNode = (Node)foundNodes.get(0); + } + + String erg = Node2String(outputNode); + + // remove the <?xml ?> Prologue + int pos = erg.indexOf("<dsig"); + erg = erg.substring(pos); + + // insert the dsig:signature element in a MOA Response Message + erg = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"+ + "<CreateXMLSignatureResponse" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\""+ + ">"+ + //" xmlns:etsi=\"http://uri.etsi.org/01903/v1.1.1#\">"+ + "<SignatureEnvironment>" + + erg + "</SignatureEnvironment> </CreateXMLSignatureResponse>"; + + return erg; + } +} |