package testgenerator; import iaik.ixsil.algorithms.DigestAlgorithmImplSHA1; import iaik.ixsil.algorithms.Transform; import iaik.ixsil.algorithms.TransformImplCanonicalXML; import iaik.ixsil.algorithms.TransformImplXSLT; import iaik.ixsil.util.URI; import java.io.ByteArrayInputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import org.w3c.dom.Document; import org.w3c.dom.Node; import at.gv.egovernment.moa.util.Base64Utils; /** * @author stephan */ public class TestGeneratorVX2 extends TestCases { private static final int canAlgCanXML = 1; private static final int canAlgCanXMLwithCom = 2; private static final int canAlgExcXML = 3; private static final int canAlgExcXMLwithCom = 4; private static VXResponseBean vxBean = null; private static String etsiPropertyName = "ETSIProperties"; private static URI etsiURI; public static void main(String[] args) throws Exception { vxBean = new VXResponseBean(); TestGeneratorVX2 testcase = new TestGeneratorVX2(); etsiURI = new URI("http://uri.etsi.org/01903/v1.1.1#SignedProperties"); testcase.create201(); testcase.create202(); testcase.create203(); testcase.create205(); testcase.create206(); testcase.create208(); testcase.create209(); testcase.create210(); testcase.create211(); testcase.create212(); testcase.create213(); testcase.create214(); testcase.create215(); testcase.create216(); testcase.create217(); } /* ==================================================================================================== */ public TestGeneratorVX2() throws Exception { super(); // Set config properties configuration_.setProperty("TestClass", "TestGeneratorVX"); // 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(); } /* ==================================================================================================== */ /** * Method create001. * @throws Exception */ /* ===================================================================================================================== */ /* ===================================================================================================================== */ /* ===================================================================================================================== */ public void create201() throws Exception { String testNumber = "201"; String filename = "CX1_book.xsl"; CreatePKCSSignature cpkcs = new CreatePKCSSignature(); cpkcs.init("signature"); cpkcs.setCanoncialization(canAlgCanXML); Transform[] tr = new Transform[1]; TransformImplXSLT trans = new TransformImplXSLT(); InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); tr[0] = trans; cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); cpkcs.createReferenceWithManifest( new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); EtsiProperties ets = new EtsiProperties(); ets.addDataObjectFormat("#reference-1"); cpkcs.createEnvelopedDataObject(etsiPropertyName, ets.getQualProp()); cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), etsiURI); cpkcs.setKeyInformation(); SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); for (int trNr=0; trNr < tr.length; trNr++) smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename + "")); String request = makeOutputFile( createRequestStart("201 a simple request w/ SignatureManifestCheckParams (but w/o Supplement)",true,0), cpkcs.returnSig(), createSignatureInfoEnd() + smcp.returnDoc() + createRequestShortEnd(false)); writeFile(vxReqFile(testNumber),request); // int pos_1 = request.indexOf("<dsig:Manifest"); int pos_2 = request.indexOf("</dsig:Manifest>"); String manifest = request.substring(pos_1,pos_2+"</dsig:Manifest>".length()); manifest = replaceString(manifest,"<dsig:Manifest Id=\"Manifest\"","<dsig:Manifest Id=\"Manifest\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); pos_1 = request.indexOf("<etsi:SignedProperties"); pos_2 = request.indexOf("</etsi:SignedProperties>"); String etsi = request.substring(pos_1,pos_2+"</etsi:SignedProperties>".length()); //etsi = replaceStringAll(etsi,"etsi:","ns1:"); etsi = replaceString(etsi,"<etsi:SignedProperties","<etsi:SignedProperties xmlns:etsi=\"http://uri.etsi.org/01903/v1.1.1#\""); etsi = replaceString(etsi,"<dsig:X509IssuerName","<dsig:X509IssuerName xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); etsi = replaceString(etsi,"<dsig:X509SerialNumber","<dsig:X509SerialNumber xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); String response = createResponsePart(cpkcs.getX509CertString()) + "<ReferenceInputData><Base64Content>"+ readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ "</Base64Content></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+manifest+"</XMLContent></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+etsi+"</XMLContent></ReferenceInputData>"+ vxBean.createSignatureCheck("0")+ vxBean.createSignatureManifestCheck("0")+ vxBean.createCertificateCheck("0")+ "</VerifyXMLSignatureResponse>"; writeFile(vxResFile(testNumber), response); } public void create202() throws Exception { String testNumber = "202"; String filename = "CX1_book.xsl"; CreatePKCSSignature cpkcs = new CreatePKCSSignature(); cpkcs.init("signature"); cpkcs.setCanoncialization(canAlgCanXML); Transform[] tr = new Transform[1]; TransformImplXSLT trans = new TransformImplXSLT(); InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); tr[0] = trans; cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); cpkcs.createReferenceWithManifest( new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); EtsiProperties ets = new EtsiProperties(); ets.addDataObjectFormat("#reference-1"); cpkcs.createEnvelopedDataObject( etsiPropertyName,ets.getQualProp()); cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), etsiURI); cpkcs.setKeyInformation(); SignatureManifestCheckParams smcp = new SignatureManifestCheckParams(null); for (int trNr=0; trNr < tr.length; trNr++) smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename)); String request = makeOutputFile( createRequestStart("202 no SignatureManifestCheckParams/@ReturnReferenceInputData" ,true,0), cpkcs.returnSig(), createSignatureInfoEnd() + smcp.returnDoc() + createRequestShortEnd(false)); writeFile(vxReqFile(testNumber),request); int pos_1 = request.indexOf("<dsig:Manifest"); int pos_2 = request.indexOf("</dsig:Manifest>"); String manifest = request.substring(pos_1,pos_2+"</dsig:Manifest>".length()); manifest = replaceString(manifest,"<dsig:Manifest Id=\"Manifest\"","<dsig:Manifest Id=\"Manifest\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); pos_1 = request.indexOf("<etsi:SignedProperties"); pos_2 = request.indexOf("</etsi:SignedProperties>"); String etsi = request.substring(pos_1,pos_2+"</etsi:SignedProperties>".length()); //etsi = replaceStringAll(etsi,"etsi:","ns1:"); etsi = replaceString(etsi,"<etsi:SignedProperties","<etsi:SignedProperties xmlns:etsi=\"http://uri.etsi.org/01903/v1.1.1#\""); etsi = replaceString(etsi,"<dsig:X509IssuerName","<dsig:X509IssuerName xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); etsi = replaceString(etsi,"<dsig:X509SerialNumber","<dsig:X509SerialNumber xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); String response = createResponsePart(cpkcs.getX509CertString()) + "<ReferenceInputData><Base64Content>"+ readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ "</Base64Content></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+manifest+"</XMLContent></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+etsi+"</XMLContent></ReferenceInputData>"+ vxBean.createSignatureCheck("0")+ vxBean.createSignatureManifestCheck("0")+ vxBean.createCertificateCheck("0")+ "</VerifyXMLSignatureResponse>"; writeFile(vxResFile(testNumber), response); } public void create203() throws Exception { String testNumber = "203"; String filename = "CX1_book.xsl"; CreatePKCSSignature cpkcs = new CreatePKCSSignature(); cpkcs.init("signature"); cpkcs.setCanoncialization(canAlgCanXML); Transform[] tr = new Transform[1]; TransformImplXSLT trans = new TransformImplXSLT(); InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); tr[0] = trans; cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); cpkcs.createReferenceWithManifest( new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); EtsiProperties ets = new EtsiProperties(); ets.addDataObjectFormat("#reference-1"); cpkcs.createEnvelopedDataObject( etsiPropertyName,ets.getQualProp()); cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), etsiURI); cpkcs.setKeyInformation(); SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("false"); for (int trNr=0; trNr < tr.length; trNr++) smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename)); String request = makeOutputFile( createRequestStart("203 SignatureManifestCheckParams/@ReturnReferenceInputData = false",true,0), cpkcs.returnSig(), createSignatureInfoEnd() + smcp.returnDoc() + createRequestShortEnd(false)); writeFile(vxReqFile(testNumber),request); String response = createResponsePart(cpkcs.getX509CertString()) + vxBean.createSignatureCheck("0")+ vxBean.createSignatureManifestCheck("0")+ vxBean.createCertificateCheck("0")+ "</VerifyXMLSignatureResponse>"; writeFile(vxResFile(testNumber), response); } public void create205() throws Exception { String testNumber = "205"; String filename = "CX1_book.xsl"; CreatePKCSSignature cpkcs = new CreatePKCSSignature(); cpkcs.init("signature"); cpkcs.setCanoncialization(canAlgCanXML); Transform[] tr = new Transform[2]; TransformImplCanonicalXML trans0 = new TransformImplCanonicalXML(); InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); trans0.setInput(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); tr[0] = trans0; TransformImplXSLT trans = new TransformImplXSLT(); s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); tr[1] = trans; cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); cpkcs.createReferenceWithManifest( new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); EtsiProperties ets = new EtsiProperties(); ets.addDataObjectFormat("#reference-1"); cpkcs.createEnvelopedDataObject( etsiPropertyName,ets.getQualProp()); cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), etsiURI); cpkcs.setKeyInformation(); SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); for (int trNr=0; trNr < tr.length; trNr++) smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename )); String request = makeOutputFile( createRequestStart("206 - 2 dsig:Transform elements ==> Canonisierung + Stylesheet",true,0), cpkcs.returnSig(), createSignatureInfoEnd() + smcp.returnDoc() + createRequestShortEnd(false)); writeFile(vxReqFile(testNumber),request); int pos_1 = request.indexOf("<dsig:Manifest"); int pos_2 = request.indexOf("</dsig:Manifest>"); String manifest = request.substring(pos_1,pos_2+"</dsig:Manifest>".length()); manifest = replaceString(manifest,"<dsig:Manifest Id=\"Manifest\"","<dsig:Manifest Id=\"Manifest\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); pos_1 = request.indexOf("<etsi:SignedProperties"); pos_2 = request.indexOf("</etsi:SignedProperties>"); String etsi = request.substring(pos_1,pos_2+"</etsi:SignedProperties>".length()); //etsi = replaceStringAll(etsi,"etsi:","ns1:"); etsi = replaceString(etsi,"<etsi:SignedProperties","<etsi:SignedProperties xmlns:etsi=\"http://uri.etsi.org/01903/v1.1.1#\""); etsi = replaceString(etsi,"<dsig:X509IssuerName","<dsig:X509IssuerName xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); etsi = replaceString(etsi,"<dsig:X509SerialNumber","<dsig:X509SerialNumber xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); String response = createResponsePart(cpkcs.getX509CertString()) + "<ReferenceInputData><Base64Content>"+ readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ "</Base64Content></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+manifest+"</XMLContent></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+etsi+"</XMLContent></ReferenceInputData>"+ vxBean.createSignatureCheck("0")+ vxBean.createSignatureManifestCheck("0")+ vxBean.createCertificateCheck("0")+ "</VerifyXMLSignatureResponse>"; writeFile(vxResFile(testNumber), response); } public void create206() throws Exception { String testNumber = "206"; String filename = "CX1_book.xsl"; CreatePKCSSignature cpkcs = new CreatePKCSSignature(); cpkcs.init("signature"); cpkcs.setCanoncialization(canAlgCanXML); Transform[] tr = new Transform[1]; TransformImplXSLT trans = new TransformImplXSLT(); InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); tr[0] = trans; cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); cpkcs.createReferenceWithManifest( new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); EtsiProperties ets = new EtsiProperties(); ets.addDataObjectFormat("#reference-1"); cpkcs.createEnvelopedDataObject( etsiPropertyName,ets.getQualProp()); cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), etsiURI); cpkcs.setKeyInformation(); SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); for (int trNr=0; trNr < tr.length; trNr++) smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); smcp.addTransParaElement("Hash",getBase64Hash(configuration_.getProperty("baseDir")+"resources/" + filename)); String request = makeOutputFile( createRequestStart("206 TransformParameter/Hash statt TransformParameter/Base64Content (Der Hash wird von " + filename + " gebildet)",true,0), cpkcs.returnSig(), createSignatureInfoEnd() + smcp.returnDoc() + createRequestShortEnd(false)); writeFile(vxReqFile(testNumber),request); int pos_1 = request.indexOf("<dsig:Manifest"); int pos_2 = request.indexOf("</dsig:Manifest>"); String manifest = request.substring(pos_1,pos_2+"</dsig:Manifest>".length()); manifest = replaceString(manifest,"<dsig:Manifest Id=\"Manifest\"","<dsig:Manifest Id=\"Manifest\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); pos_1 = request.indexOf("<etsi:SignedProperties"); pos_2 = request.indexOf("</etsi:SignedProperties>"); String etsi = request.substring(pos_1,pos_2+"</etsi:SignedProperties>".length()); //etsi = replaceStringAll(etsi,"etsi:","ns1:"); etsi = replaceString(etsi,"<etsi:SignedProperties","<etsi:SignedProperties xmlns:etsi=\"http://uri.etsi.org/01903/v1.1.1#\""); etsi = replaceString(etsi,"<dsig:X509IssuerName","<dsig:X509IssuerName xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); etsi = replaceString(etsi,"<dsig:X509SerialNumber","<dsig:X509SerialNumber xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); String response = createResponsePart(cpkcs.getX509CertString()) + "<ReferenceInputData><Base64Content>"+ readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ "</Base64Content></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+manifest+"</XMLContent></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+etsi+"</XMLContent></ReferenceInputData>"+ vxBean.createSignatureCheck("0")+ vxBean.createSignatureManifestCheck("0")+ vxBean.createCertificateCheck("0")+ "</VerifyXMLSignatureResponse>"; writeFile(vxResFile(testNumber), response); } public void create208() throws Exception { String testNumber = "208"; String filename = "CX1_book.xsl"; CreatePKCSSignature cpkcs = new CreatePKCSSignature(); cpkcs.init("signature"); cpkcs.setCanoncialization(canAlgCanXML); Transform[] tr = new Transform[1]; TransformImplXSLT trans = new TransformImplXSLT(); InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); tr[0] = trans; cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); cpkcs.createReferenceWithManifest( new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); EtsiProperties ets = new EtsiProperties(); ets.addDataObjectFormat("#reference-1"); cpkcs.createEnvelopedDataObject( etsiPropertyName,ets.getQualProp()); cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), etsiURI); cpkcs.setKeyInformation(); SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); for (int trNr=0; trNr < tr.length; trNr++) smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_book.xsl"); String request = makeOutputFile( createRequestStart("208 - weder Base64Content noch Hash wird verwendet ",true,0), cpkcs.returnSig(), createSignatureInfoEnd() + smcp.returnDoc() + createRequestShortEnd(false)); writeFile(vxReqFile(testNumber),request); int pos_1 = request.indexOf("<dsig:Manifest"); int pos_2 = request.indexOf("</dsig:Manifest>"); String manifest = request.substring(pos_1,pos_2+"</dsig:Manifest>".length()); manifest = replaceString(manifest,"<dsig:Manifest Id=\"Manifest\"","<dsig:Manifest Id=\"Manifest\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); pos_1 = request.indexOf("<etsi:SignedProperties"); pos_2 = request.indexOf("</etsi:SignedProperties>"); String etsi = request.substring(pos_1,pos_2+"</etsi:SignedProperties>".length()); //etsi = replaceStringAll(etsi,"etsi:","ns1:"); etsi = replaceString(etsi,"<etsi:SignedProperties","<etsi:SignedProperties xmlns:etsi=\"http://uri.etsi.org/01903/v1.1.1#\""); etsi = replaceString(etsi,"<dsig:X509IssuerName","<dsig:X509IssuerName xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); etsi = replaceString(etsi,"<dsig:X509SerialNumber","<dsig:X509SerialNumber xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); String response = createResponsePart(cpkcs.getX509CertString()) + "<ReferenceInputData><Base64Content>"+ readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ "</Base64Content></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+manifest+"</XMLContent></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+etsi+"</XMLContent></ReferenceInputData>"+ vxBean.createSignatureCheck("0")+ vxBean.createSignatureManifestCheck("0")+ vxBean.createCertificateCheck("0")+ "</VerifyXMLSignatureResponse>"; writeFile(vxResFile(testNumber), response); } public void create209() throws Exception { String testNumber = "209"; CreatePKCSSignature cpkcs = new CreatePKCSSignature(); cpkcs.init("signature"); cpkcs.setCanoncialization(canAlgCanXML); Transform[] tr = new Transform[1]; TransformImplXSLT trans = new TransformImplXSLT(); InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_book.xsl"); trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_book.xsl")); tr[0] = trans; cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); // cpkcs.createReferenceWithManifest( // new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), // "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); EtsiProperties ets = new EtsiProperties(); ets.addDataObjectFormat("#reference-1"); cpkcs.createEnvelopedDataObject( etsiPropertyName,ets.getQualProp()); cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), etsiURI); cpkcs.setKeyInformation(); SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); for (int trNr=0; trNr < tr.length; trNr++) smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); String request = makeOutputFile( createRequestStart("209 0 TransformParameter ==> ganzes Element raus und direkt auf CX1_book.xsl verweisen (in der Transformations-Referenz)",true,0), cpkcs.returnSig(), createSignatureInfoEnd() + smcp.returnDoc() + createRequestShortEnd(false)); writeFile(vxReqFile(testNumber),request); /*int pos_1 = request.indexOf("<dsig:Manifest"); int pos_2 = request.indexOf("</dsig:Manifest>"); String manifest = request.substring(pos_1,pos_2+"</dsig:Manifest>".length()); manifest = replaceString(manifest,"<dsig:Manifest Id=\"Manifest\"","<dsig:Manifest Id=\"Manifest\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\"");*/ int pos_1 = request.indexOf("<etsi:SignedProperties"); int pos_2 = request.indexOf("</etsi:SignedProperties>"); String etsi = request.substring(pos_1,pos_2+"</etsi:SignedProperties>".length()); //etsi = replaceStringAll(etsi,"etsi:","ns1:"); etsi = replaceString(etsi,"<etsi:SignedProperties","<etsi:SignedProperties xmlns:etsi=\"http://uri.etsi.org/01903/v1.1.1#\""); etsi = replaceString(etsi,"<dsig:X509IssuerName","<dsig:X509IssuerName xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); etsi = replaceString(etsi,"<dsig:X509SerialNumber","<dsig:X509SerialNumber xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); String response = createResponsePart(cpkcs.getX509CertString()) + "<ReferenceInputData><Base64Content>"+ readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ "</Base64Content></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+etsi+"</XMLContent></ReferenceInputData>"+ vxBean.createSignatureCheck("0")+ vxBean.createSignatureManifestCheck("2")+ vxBean.createCertificateCheck("0")+ "</VerifyXMLSignatureResponse>"; writeFile(vxResFile(testNumber), response); } public void create210() throws Exception { String testNumber = "210"; CreatePKCSSignature cpkcs = new CreatePKCSSignature(); cpkcs.init("signature"); cpkcs.setCanoncialization(canAlgCanXML); Transform[] tr = new Transform[1]; TransformImplXSLT trans = new TransformImplXSLT(); InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/VX2_bookref2includes.xsl"); trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/VX2_bookref2includes.xsl")); trans.setInput(s,null); tr[0] = trans; //System.out.println(getTransformsResult(tr)); cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); cpkcs.createReferencesWithManifest( new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/VX2_book0.xsl"), "Manifest",new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/VX2_book1.xsl"), "http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); EtsiProperties ets = new EtsiProperties(); ets.addDataObjectFormat("#reference-1"); cpkcs.createEnvelopedDataObject(etsiPropertyName, ets.getQualProp()); cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), etsiURI); cpkcs.setKeyInformation(); SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); for (int trNr=0; trNr < tr.length; trNr++) smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/VX2_book0.xsl"); smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/VX2_book0.xsl")); smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/VX2_book1.xsl"); smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/VX2_book1.xsl")); String request = makeOutputFile( createRequestStart("210 2 includes",true,0), cpkcs.returnSig(), createSignatureInfoEnd() + smcp.returnDoc() + createRequestShortEnd(false)); writeFile(vxReqFile(testNumber),request); int pos_1 = request.indexOf("<dsig:Manifest"); int pos_2 = request.indexOf("</dsig:Manifest>"); String manifest = request.substring(pos_1,pos_2+"</dsig:Manifest>".length()); manifest = replaceString(manifest,"<dsig:Manifest Id=\"Manifest\"","<dsig:Manifest Id=\"Manifest\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); pos_1 = request.indexOf("<etsi:SignedProperties"); pos_2 = request.indexOf("</etsi:SignedProperties>"); String etsi = request.substring(pos_1,pos_2+"</etsi:SignedProperties>".length()); //etsi = replaceStringAll(etsi,"etsi:","ns1:"); etsi = replaceString(etsi,"<etsi:SignedProperties","<etsi:SignedProperties xmlns:etsi=\"http://uri.etsi.org/01903/v1.1.1#\""); etsi = replaceString(etsi,"<dsig:X509IssuerName","<dsig:X509IssuerName xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); etsi = replaceString(etsi,"<dsig:X509SerialNumber","<dsig:X509SerialNumber xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); String response = createResponsePart(cpkcs.getX509CertString()) + "<ReferenceInputData><Base64Content>"+ readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ "</Base64Content></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+manifest+"</XMLContent></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+etsi+"</XMLContent></ReferenceInputData>"+ vxBean.createSignatureCheck("0")+ vxBean.createSignatureManifestCheck("0")+ vxBean.createCertificateCheck("0")+ "</VerifyXMLSignatureResponse>"; writeFile(vxResFile(testNumber), response); } public void create211() throws Exception { String testNumber = "211"; String filename = "CX1_book.xsl"; CreatePKCSSignature cpkcs = new CreatePKCSSignature(); cpkcs.init("signature"); cpkcs.setCanoncialization(canAlgCanXML); Transform[] tr = new Transform[1]; TransformImplXSLT trans = new TransformImplXSLT(); InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); tr[0] = trans; cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); cpkcs.createReferenceWithManifest( new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); EtsiProperties ets = new EtsiProperties(); ets.addDataObjectFormat("#reference-1"); cpkcs.createEnvelopedDataObject(etsiPropertyName, ets.getQualProp()); cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), etsiURI); cpkcs.setKeyInformation(); SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); /*for (int trNr=0; trNr < tr.length; trNr++) smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_book.xsl"); smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"));*/ smcp.addTransformsProfileID("TransformsInfoProfile1"); smcp.addTransformsProfileID("TransformsInfoProfile2"); String request = makeOutputFile( createRequestStart("211 2 VerifyTransformsInfoID ==> Statt TransformsInfoProfile , in ein IntoProfileID auf Datei mit orig.Daten des TransInfoProfile verweisen, das andere auf ein Transforms, das nur Canonisiserung enthaelt",true,0), cpkcs.returnSig(), createSignatureInfoEnd() + smcp.returnDoc() + createRequestShortEnd(false)); writeFile(vxReqFile(testNumber),request); int pos_1 = request.indexOf("<dsig:Manifest"); int pos_2 = request.indexOf("</dsig:Manifest>"); String manifest = request.substring(pos_1,pos_2+"</dsig:Manifest>".length()); manifest = replaceString(manifest,"<dsig:Manifest Id=\"Manifest\"","<dsig:Manifest Id=\"Manifest\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); pos_1 = request.indexOf("<etsi:SignedProperties"); pos_2 = request.indexOf("</etsi:SignedProperties>"); String etsi = request.substring(pos_1,pos_2+"</etsi:SignedProperties>".length()); //etsi = replaceStringAll(etsi,"etsi:","ns1:"); etsi = replaceString(etsi,"<etsi:SignedProperties","<etsi:SignedProperties xmlns:etsi=\"http://uri.etsi.org/01903/v1.1.1#\""); etsi = replaceString(etsi,"<dsig:X509IssuerName","<dsig:X509IssuerName xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); etsi = replaceString(etsi,"<dsig:X509SerialNumber","<dsig:X509SerialNumber xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); String response = createResponsePart(cpkcs.getX509CertString()) + "<ReferenceInputData><Base64Content>"+ readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ "</Base64Content></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+manifest+"</XMLContent></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+etsi+"</XMLContent></ReferenceInputData>"+ vxBean.createSignatureCheck("0")+ vxBean.createSignatureManifestCheck("0")+ vxBean.createCertificateCheck("0")+ "</VerifyXMLSignatureResponse>"; writeFile(vxResFile(testNumber), response); } public void create212() throws Exception { String testNumber = "212"; String filepath = configuration_.getProperty("webbaseDir")+"resources/"; String filename = "CX1_book.xsl"; CreatePKCSSignature cpkcs = new CreatePKCSSignature(); cpkcs.init("signature"); cpkcs.setCanoncialization(canAlgCanXML); Transform[] tr = new Transform[1]; TransformImplXSLT trans = new TransformImplXSLT(); InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); tr[0] = trans; cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-2"); cpkcs.createReferenceWithManifest( new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); EtsiProperties ets = new EtsiProperties(); ets.addDataObjectFormat("#reference-1"); ets.addDataObjectFormat("#reference-2"); cpkcs.createEnvelopedDataObject( etsiPropertyName,ets.getQualProp()); //2. DataObject Format cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"),etsiURI); cpkcs.setKeyInformation(); SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); for (int trNr=0; trNr < tr.length; trNr++) smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename )); SignatureManifestCheckParams smcp2 = new SignatureManifestCheckParams(null); for (int trNr=0; trNr < tr.length; trNr++) smcp2.addDisgTransform(tr[trNr].toElement(smcp2.getDoc())); smcp2.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); smcp2.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename )); String signManiDoc = replaceString(smcp.returnDoc(),"</SignatureManifestCheckParams>","") + replaceString(smcp2.returnDoc(),"<SignatureManifestCheckParams>",""); String request = makeOutputFile( createRequestStart("212 2 ReferenceInfo (for 2 dsig:Reference (pplus Manifest + SignedProperties) : etsi:DataObjectFormat 2mal, Reference 2mal, Manifest 1mal, ReferenceInfo 2mal)",true,0), cpkcs.returnSig(), createSignatureInfoEnd() + signManiDoc + createRequestShortEnd(false)); writeFile(vxReqFile(testNumber),request); int pos_1 = request.indexOf("<dsig:Manifest"); int pos_2 = request.indexOf("</dsig:Manifest>"); String manifest = request.substring(pos_1,pos_2+"</dsig:Manifest>".length()); manifest = replaceString(manifest,"<dsig:Manifest Id=\"Manifest\"","<dsig:Manifest Id=\"Manifest\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); pos_1 = request.indexOf("<etsi:SignedProperties"); pos_2 = request.indexOf("</etsi:SignedProperties>"); String etsi = request.substring(pos_1,pos_2+"</etsi:SignedProperties>".length()); //etsi = replaceStringAll(etsi,"etsi:","ns1:"); etsi = replaceString(etsi,"<etsi:SignedProperties","<etsi:SignedProperties xmlns:etsi=\"http://uri.etsi.org/01903/v1.1.1#\""); etsi = replaceString(etsi,"<dsig:X509IssuerName","<dsig:X509IssuerName xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); etsi = replaceString(etsi,"<dsig:X509SerialNumber","<dsig:X509SerialNumber xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); String response = createResponsePart(cpkcs.getX509CertString()) + "<ReferenceInputData><Base64Content>"+ readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ "</Base64Content></ReferenceInputData>"+ "<ReferenceInputData><Base64Content>"+ readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ "</Base64Content></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+manifest+"</XMLContent></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+etsi+"</XMLContent></ReferenceInputData>"+ vxBean.createSignatureCheck("0")+ vxBean.createSignatureManifestCheck("0")+ vxBean.createCertificateCheck("0")+ "</VerifyXMLSignatureResponse>"; writeFile(vxResFile(testNumber), response); } public void create213() throws Exception { String testNumber = "213"; String filepath = configuration_.getProperty("webbaseDir")+"resources/"; String filename = "CX1_book.xsl"; CreatePKCSSignature cpkcs = new CreatePKCSSignature(); cpkcs.init("signature"); cpkcs.setCanoncialization(canAlgCanXML); Transform[] tr = new Transform[1]; TransformImplXSLT trans = new TransformImplXSLT(); InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); tr[0] = trans; cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); cpkcs.createReferenceWithManifest( new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); EtsiProperties ets = new EtsiProperties(); ets.addDataObjectFormat("#reference-1"); cpkcs.createEnvelopedDataObject(etsiPropertyName, ets.getQualProp()); cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "'))/*/*"), etsiURI); cpkcs.setKeyInformation(); SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); for (int trNr=0; trNr < tr.length; trNr++) smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); String request = makeOutputFile( createRequestStart("213 kein TransformParameter element obwohl in Transforms URIs referenziert werden",true,0), cpkcs.returnSig(), createSignatureInfoEnd() + smcp.returnDoc() + createRequestShortEnd(false)); writeFile(vxReqFile(testNumber),request); int pos_1 = request.indexOf("<dsig:Manifest"); int pos_2 = request.indexOf("</dsig:Manifest>"); String manifest = request.substring(pos_1,pos_2+"</dsig:Manifest>".length()); manifest = replaceString(manifest,"<dsig:Manifest Id=\"Manifest\"","<dsig:Manifest Id=\"Manifest\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); /*pos_1 = request.indexOf("<etsi:SignedProperties"); pos_2 = request.indexOf("</etsi:SignedProperties>"); String etsi = request.substring(pos_1,pos_2+"</etsi:SignedProperties>".length()); //etsi = replaceStringAll(etsi,"etsi:","ns1:"); etsi = replaceString(etsi,"<etsi:SignedProperties","<etsi:SignedProperties xmlns:etsi=\"http://uri.etsi.org/01903/v1.1.1#\""); etsi = replaceString(etsi,"<dsig:X509IssuerName","<dsig:X509IssuerName xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); etsi = replaceString(etsi,"<dsig:X509SerialNumber","<dsig:X509SerialNumber xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\"");*/ pos_1 = request.indexOf("<dsig:Object Id=\"ETSIProperties\">"); pos_2 = request.substring(pos_1).indexOf("</dsig:Object>"); String etsi = request.substring(pos_1,pos_1+pos_2+"</dsig:Object>".length()); etsi = replaceString(etsi,"<dsig:Object Id=\"ETSIProperties\">","<dsig:Object Id=\"ETSIProperties\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\">"); String response = createResponsePart(cpkcs.getX509CertString()) + "<ReferenceInputData><Base64Content>"+ readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ "</Base64Content></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+manifest+"</XMLContent></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+etsi+"</XMLContent></ReferenceInputData>"+ vxBean.createSignatureCheck("0")+ vxBean.createSignatureManifestCheck("1","<Info><FailedReference>1</FailedReference></Info>")+ vxBean.createCertificateCheck("0")+ "</VerifyXMLSignatureResponse>"; writeFile(vxResFile(testNumber), response); } public void create214() throws Exception { String testNumber = "214"; String filepath = configuration_.getProperty("webbaseDir")+"resources/"; String filename = "CX1_book.xsl"; CreatePKCSSignature cpkcs = new CreatePKCSSignature(); cpkcs.init("signature"); cpkcs.setCanoncialization(canAlgCanXML); Transform[] tr = new Transform[1]; TransformImplXSLT trans = new TransformImplXSLT(); InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); tr[0] = trans; cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); cpkcs.createReferenceWithManifest( new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); EtsiProperties ets = new EtsiProperties(); ets.addDataObjectFormat("#reference-1"); cpkcs.createEnvelopedDataObject(etsiPropertyName, ets.getQualProp()); cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "'))/*/*"), etsiURI); cpkcs.setKeyInformation(); SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); smcp.addTransformsProfileID("TransformsInfoProfile2"); String request = makeOutputFile( createRequestStart("214 1 VerifyTransformsInfoID ==> Passt aber nicht zur Transformation (XSLT <==> Canonisiserung)",true,0), cpkcs.returnSig(), createSignatureInfoEnd() + smcp.returnDoc() + createRequestShortEnd(false)); writeFile(vxReqFile(testNumber),request); int pos_1 = request.indexOf("<dsig:Manifest"); int pos_2 = request.indexOf("</dsig:Manifest>"); String manifest = request.substring(pos_1,pos_2+"</dsig:Manifest>".length()); manifest = replaceString(manifest,"<dsig:Manifest Id=\"Manifest\"","<dsig:Manifest Id=\"Manifest\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); pos_1 = request.indexOf("<dsig:Object Id=\"ETSIProperties\">"); pos_2 = request.substring(pos_1).indexOf("</dsig:Object>"); String etsi = request.substring(pos_1,pos_1+pos_2+"</dsig:Object>".length()); etsi = replaceString(etsi,"<dsig:Object Id=\"ETSIProperties\">","<dsig:Object Id=\"ETSIProperties\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\">"); String response = createResponsePart(cpkcs.getX509CertString()) + "<ReferenceInputData><Base64Content>"+ readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ "</Base64Content></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+manifest+"</XMLContent></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+etsi+"</XMLContent></ReferenceInputData>"+ vxBean.createSignatureCheck("0")+ vxBean.createSignatureManifestCheck("1","<Info><FailedReference>1</FailedReference></Info>")+ vxBean.createCertificateCheck("0")+ "</VerifyXMLSignatureResponse>"; writeFile(vxResFile(testNumber), response); } public void create215() throws Exception { String testNumber = "215"; String filepath = configuration_.getProperty("webbaseDir")+"resources/"; String filename = "CX1_book.xsl"; CreatePKCSSignature cpkcs = new CreatePKCSSignature(); cpkcs.init("signature"); cpkcs.setCanoncialization(canAlgCanXML); Transform[] tr = new Transform[1]; TransformImplXSLT trans = new TransformImplXSLT(); InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); tr[0] = trans; //Reference 1 cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); cpkcs.createReferenceWithManifest( new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); EtsiProperties ets = new EtsiProperties(); ets.addDataObjectFormat("#reference-1"); //ets.addDataObjectFormat("#reference-2"); cpkcs.createEnvelopedDataObject( etsiPropertyName,ets.getQualProp()); cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "')/*/*)"),etsiURI); cpkcs.setKeyInformation(); SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); for (int trNr=0; trNr < tr.length; trNr++) smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename)); SignatureManifestCheckParams smcp2 = new SignatureManifestCheckParams(null); for (int trNr=0; trNr < tr.length; trNr++) smcp2.addDisgTransform(tr[trNr].toElement(smcp2.getDoc())); smcp2.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); smcp2.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename)); String signManiDoc = replaceString(smcp.returnDoc(),"</SignatureManifestCheckParams>","") + replaceString(smcp2.returnDoc(),"<SignatureManifestCheckParams>",""); String request = makeOutputFile( createRequestStart("215 number of ReferenceInfo is different from number of dsig:Reference in the signature",true,0), cpkcs.returnSig(), createSignatureInfoEnd() + signManiDoc + createRequestShortEnd(false)); writeFile(vxReqFile(testNumber),request); //writeFile(vxResErrFile(testNumber),"2271"); int pos_1 = request.indexOf("<dsig:Manifest"); int pos_2 = request.indexOf("</dsig:Manifest>"); String manifest = request.substring(pos_1,pos_2+"</dsig:Manifest>".length()); manifest = replaceString(manifest,"<dsig:Manifest Id=\"Manifest\"","<dsig:Manifest Id=\"Manifest\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); pos_1 = request.indexOf("<etsi:SignedProperties"); pos_2 = request.indexOf("</etsi:SignedProperties>"); String etsi = request.substring(pos_1,pos_2+"</etsi:SignedProperties>".length()); //etsi = replaceStringAll(etsi,"etsi:","ns1:"); etsi = replaceString(etsi,"<etsi:SignedProperties","<etsi:SignedProperties xmlns:etsi=\"http://uri.etsi.org/01903/v1.1.1#\""); etsi = replaceString(etsi,"<dsig:X509IssuerName","<dsig:X509IssuerName xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); etsi = replaceString(etsi,"<dsig:X509SerialNumber","<dsig:X509SerialNumber xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); String response = createResponsePart(cpkcs.getX509CertString()) + "<ReferenceInputData><Base64Content>"+ readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ "</Base64Content></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+manifest+"</XMLContent></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+etsi+"</XMLContent></ReferenceInputData>"+ vxBean.createSignatureCheck("0")+ vxBean.createSignatureManifestCheck("1")+ vxBean.createCertificateCheck("0")+ "</VerifyXMLSignatureResponse>"; writeFile(vxResFile(testNumber), response); } public void create216() throws Exception { String testNumber = "216"; String filepath = configuration_.getProperty("webbaseDir")+"resources/"; String filename = "CX1_book.xsl"; CreatePKCSSignature cpkcs = new CreatePKCSSignature(); cpkcs.init("signature"); cpkcs.setCanoncialization(canAlgCanXML); Transform[] tr = new Transform[1]; TransformImplXSLT trans = new TransformImplXSLT(); InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); tr[0] = trans; //Reference 1 cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-2"); cpkcs.createReferenceWithManifest( new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); EtsiProperties ets = new EtsiProperties(); ets.addDataObjectFormat("#reference-1"); ets.addDataObjectFormat("#reference-2"); cpkcs.createEnvelopedDataObject( etsiPropertyName,ets.getQualProp()); cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "')/*/*)"),etsiURI); cpkcs.setKeyInformation(); SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); for (int trNr=0; trNr < tr.length; trNr++) smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename)); String request = makeOutputFile( createRequestStart("216 number of References id bigger then number of ReferenceInfos",true,0), cpkcs.returnSig(), createSignatureInfoEnd() + smcp.returnDoc() + createRequestShortEnd(false)); writeFile(vxReqFile(testNumber),request); //writeFile(vxResErrFile(testNumber),"2271"); int pos_1 = request.indexOf("<dsig:Manifest"); int pos_2 = request.indexOf("</dsig:Manifest>"); String manifest = request.substring(pos_1,pos_2+"</dsig:Manifest>".length()); manifest = replaceString(manifest,"<dsig:Manifest Id=\"Manifest\"","<dsig:Manifest Id=\"Manifest\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); pos_1 = request.indexOf("<etsi:SignedProperties"); pos_2 = request.indexOf("</etsi:SignedProperties>"); String etsi = request.substring(pos_1,pos_2+"</etsi:SignedProperties>".length()); //etsi = replaceStringAll(etsi,"etsi:","ns1:"); etsi = replaceString(etsi,"<etsi:SignedProperties","<etsi:SignedProperties xmlns:etsi=\"http://uri.etsi.org/01903/v1.1.1#\""); etsi = replaceString(etsi,"<dsig:X509IssuerName","<dsig:X509IssuerName xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); etsi = replaceString(etsi,"<dsig:X509SerialNumber","<dsig:X509SerialNumber xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); String response = createResponsePart(cpkcs.getX509CertString()) + "<ReferenceInputData><Base64Content>"+ readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ "</Base64Content></ReferenceInputData>"+ "<ReferenceInputData><Base64Content>"+ readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ "</Base64Content></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+manifest+"</XMLContent></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+etsi+"</XMLContent></ReferenceInputData>"+ vxBean.createSignatureCheck("0")+ vxBean.createSignatureManifestCheck("1")+ vxBean.createCertificateCheck("0")+ "</VerifyXMLSignatureResponse>"; writeFile(vxResFile(testNumber), response); } public void create217() throws Exception { String testNumber = "217"; String filepath = configuration_.getProperty("webbaseDir")+"resources/"; String filename = "CX1_book.xsl"; CreatePKCSSignature cpkcs = new CreatePKCSSignature(); cpkcs.init("signature"); cpkcs.setCanoncialization(canAlgCanXML); Transform[] tr = new Transform[1]; TransformImplXSLT trans = new TransformImplXSLT(); InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); tr[0] = trans; cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); cpkcs.createReferenceWithManifest( new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); EtsiProperties ets = new EtsiProperties(); ets.addDataObjectFormat("#reference-1"); cpkcs.createEnvelopedDataObject(etsiPropertyName, ets.getQualProp()); cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "'))/*/*"), etsiURI); cpkcs.setKeyInformation(); SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); for (int trNr=0; trNr < tr.length; trNr++) smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); smcp.addTransParaElement("Hash",getBase64Hash(configuration_.getProperty("baseDir")+"resources/" + filename)); String request = makeOutputFile( createRequestStart("217 - TransformParameter/@URI resolves but Hash does not match - which hashing algorithm?",true,0), cpkcs.returnSig(), createSignatureInfoEnd() + smcp.returnDoc() + createRequestShortEnd(false)); request = replaceString(request,"<Hash><dsig:DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"/><dsig:DigestValue>", "<Hash><dsig:DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"/><dsig:DigestValue>abcd"); writeFile(vxReqFile(testNumber),request); //writeFile(vxResErrFile(testNumber),"2205"); int pos_1 = request.indexOf("<dsig:Manifest"); int pos_2 = request.indexOf("</dsig:Manifest>"); String manifest = request.substring(pos_1,pos_2+"</dsig:Manifest>".length()); manifest = replaceString(manifest,"<dsig:Manifest Id=\"Manifest\"","<dsig:Manifest Id=\"Manifest\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\""); pos_1 = request.indexOf("<dsig:Object Id=\"ETSIProperties\">"); pos_2 = request.substring(pos_1).indexOf("</dsig:Object>"); String etsi = request.substring(pos_1,pos_1+pos_2+"</dsig:Object>".length()); etsi = replaceString(etsi,"<dsig:Object Id=\"ETSIProperties\">","<dsig:Object Id=\"ETSIProperties\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\">"); String response = createResponsePart(cpkcs.getX509CertString()) + "<ReferenceInputData><Base64Content>"+ readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ "</Base64Content></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+manifest+"</XMLContent></ReferenceInputData>"+ "<ReferenceInputData><XMLContent xml:space=\"preserve\">"+etsi+"</XMLContent></ReferenceInputData>"+ vxBean.createSignatureCheck("0")+ vxBean.createSignatureManifestCheck("1","<Info><FailedReference>1</FailedReference></Info>")+ vxBean.createCertificateCheck("0")+ "</VerifyXMLSignatureResponse>"; writeFile(vxResFile(testNumber), response); } /** * Method makeOutputFile. * @param start * @param signatureDoc * @param end * @return String * @throws Exception */ public String makeOutputFile( String start, Document signatureDoc, String end) 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 = start + erg + end; return erg; } /** * Method createRequestStart. * @param testNumber * @param useDate * @param changeHours * @return String */ private String createRequestStart(String testNumber, boolean useDate, int changeHours) {String reqStart = null; System.out.println("======================================================"); System.out.println("================== TEST-NUMBER "+ testNumber + " ==================="); System.out.println("======================================================"); reqStart = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<!-- Testnumber: " + testNumber + "-->\n" + "<VerifyXMLSignatureRequest\n" + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n" + " xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"" + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\">\n"; if (useDate) { reqStart += " <DateTime>" + getDate(changeHours) + "</DateTime>\n"; } reqStart += " <VerifySignatureInfo>\n" + " <VerifySignatureEnvironment>\n" + " <XMLContent xml:space=\"preserve\">" ; return reqStart; } /** * Method getTransformsResult:the input transforms array will * be calculated to return a string-representation of the result * @param tr * @return String * @throws Exception */ private String getTransformsResult(Transform[] tr) throws Exception { Transform[] myTransforms = tr; String result = ""; for (int t=0; t<tr.length-1; t++) { myTransforms[t+1].setInput((InputStream)myTransforms[t].transform(),null); } ByteArrayInputStream is = (ByteArrayInputStream)myTransforms[tr.length-1].transform(); byte[] b = new byte[1]; is.read(b); while (is.available() > 0) { result += new String(b); is.read(b); } result += new String(b); return result; } private String getBase64Hash(String filename) throws Exception { DigestAlgorithmImplSHA1 dig = new DigestAlgorithmImplSHA1(); dig.setInput(new FileInputStream(filename)); InputStream erg = dig.digest(); String result = ""; int size = erg.available(); byte[] b = new byte[size]; erg.read(b); return Base64Utils.encode(b); } /** * Method createRequestEnd. * @param useReturnHashInputData * @param useSupplement * @param supplementReference * @return String * @throws Exception */ private String createRequestEnd( boolean useReturnHashInputData, boolean useSupplement, String supplementReference) throws Exception { String reqEnd = null; /* reqEnd = "</VerifySignatureEnvironment>\n" + " <VerifySignatureLocation>#xpointer(/VerifyXMLSignatureRequest/VerifySignatureInfo/VerifySignatureEnvironment/dsig:Signature)</VerifySignatureLocation>\n" + " </VerifySignatureInfo>\n"; */ reqEnd ="</XMLContent>"+ "</VerifySignatureEnvironment>\n" + " <VerifySignatureLocation>//dsig:Signature</VerifySignatureLocation>\n" + " </VerifySignatureInfo>\n"; if (useSupplement) { reqEnd += " <Supplement>\n" + " <Content Reference=\"file:/" + supplementReference.toString() + "\">\n" + " <XMLContent>"+readFile(supplementReference.toString())+"</XMLContent>\n" + " </Content>\n" + " </Supplement>\n"; } if (useReturnHashInputData) { reqEnd += " <ReturnHashInputData/>\n"; } reqEnd += " <TrustProfileID>TrustProfile1</TrustProfileID>\n" + "</VerifyXMLSignatureRequest>\n"; return reqEnd; } private String createSignatureInfoEnd() throws Exception { return "</XMLContent>"+"</VerifySignatureEnvironment>\n" + " <VerifySignatureLocation>//dsig:Signature</VerifySignatureLocation>\n" + " </VerifySignatureInfo>\n"; } private String createRequestShortEnd(boolean useReturnHashInputData) throws Exception { String reqEnd = ""; if (useReturnHashInputData) reqEnd = " <ReturnHashInputData/>\n"; reqEnd += " <TrustProfileID>TrustProfile1</TrustProfileID>\n" + "</VerifyXMLSignatureRequest>\n"; return reqEnd; } /** * Method createResponse. * @param testNumber * @param signatureCheckCode * @return String * @throws Exception */ private String createResponse(String testNumber, String signatureCheckCode) throws Exception { // vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); String res = null; res = vxBean.getHeader(); res += vxBean.getSubjectDN(); res += " <dsig:X509IssuerSerial>\n"; res += vxBean.getIssuerDN(); res += vxBean.getSerialNumber(); res += " </dsig:X509IssuerSerial>\n" + " </dsig:X509Data>\n" + " </SignerInfo>\n"; res += " <HashInputData>\n" + " <XMLContent xml:space=\"preserve\">"; res += readFile( configuration_.getProperty("webbaseDir") + "resources/testDaten.txt")+ "</XMLContent>"; res += vxBean.getFooterSignatureCheck(signatureCheckCode, "0"); return res; } private String createResponse(String testNumber, String signatureCheckCode, String hashData) throws Exception { // vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); String res = null; res = vxBean.getHeader(); res += vxBean.getSubjectDN(); res += " <dsig:X509IssuerSerial>\n"; res += vxBean.getIssuerDN(); res += vxBean.getSerialNumber(); res += " </dsig:X509IssuerSerial>\n" + " </dsig:X509Data>\n" + " </SignerInfo>\n"; res += " <HashInputData>\n" + " <XMLContent xml:space=\"preserve\">"+ hashData + "</XMLContent>\n"; res += vxBean.getFooterSignatureCheck(signatureCheckCode, "0"); return res; } private String createResponseWithoutHashInputData(String testNumber, String signatureCheckCode) throws Exception { // vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); String res = null; res = vxBean.getHeader(); res += vxBean.getSubjectDN(); res += " <dsig:X509IssuerSerial>\n"; res += vxBean.getIssuerDN(); res += vxBean.getSerialNumber(); res += " </dsig:X509IssuerSerial>\n" + " </dsig:X509Data>\n" + " </SignerInfo>\n" + " <SignatureCheck>\n" + " <Code>" + signatureCheckCode + "</Code>\n" + " </SignatureCheck>\n" + " <CertificateCheck>\n" + " <Code>0</Code>\n" + " </CertificateCheck>\n" + "</VerifyXMLSignatureResponse>"; return res; } /* private String createResponseXMLDsigCheck(String testNumber, String xmlDSIGManifestCheckCode) throws Exception { // vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); String res = null; res = vxBean.getHeader(); res += vxBean.getSubjectDN(); res += " <dsig:X509IssuerSerial>\n"; res += vxBean.getIssuerDN(); res += vxBean.getSerialNumber(); res += " </dsig:X509IssuerSerial>\n" + " </dsig:X509Data>\n" + " </SignerInfo>\n"; res += " <HashInputData>\n" + " <XMLContent>"; res += readFile( configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); res += vxBean.getFooterXMLDSIGManifestCheck(xmlDSIGManifestCheckCode,"0"); return res; }*/ private String createResponsePart(String x509cert) throws Exception { // vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); String res = null; res = vxBean.getHeader(); res += vxBean.getSubjectDN(); res += " <dsig:X509IssuerSerial>\n"; res += vxBean.getIssuerDN(); res += vxBean.getSerialNumber(); res += " </dsig:X509IssuerSerial>\n" + x509cert + " </dsig:X509Data>\n" + " </SignerInfo>\n"; /*res += " <HashInputData>\n" + " <XMLContent>"; res += readFile( configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); */ //res += vxBean.getFooterXMLDSIGManifestCheck(xmlDSIGManifestCheckCode,"0"); return res; } public String readFileCR(String filename) throws Exception { /*StringBuffer data = new StringBuffer(); String line = null; BufferedReader br = new BufferedReader(new FileReader(filename)); while ((line = br.readLine()) != null) { data.append(line); data.append("\n"); } */ String response=""; byte[] result; if (filename.substring(0,4).toLowerCase().equals("http")) { URL targetUrl = new URL(filename); HttpURLConnection h = (HttpURLConnection)targetUrl.openConnection(); InputStream is = h.getInputStream(); int size = 0; result = new byte[h.getContentLength()]; for (int i = 0; i < result.length; i++) { byte[] b = new byte[1]; is.read(b); result[i]=b[0]; } is.close(); } else { RandomAccessFile raf = new RandomAccessFile(filename, "r"); if (raf.length() > Integer.MAX_VALUE) throw new IOException("file too big to fit in byte array."); result = new byte[(int) raf.length()]; raf.read(result); raf.close(); } byte[] temp = new byte[result.length]; int s = 0; for (int t=0; t<result.length; t++) { temp[s] = result[t]; s++; if (temp[s-1]==10) { if (temp[s-2]==13) { temp[s-2]=10; s--; } } } byte[] res = new byte[s]; result = null; System.arraycopy(temp,0,res,0,s); response = new String(res); try { response = replaceString(response,"<?xml version=\"1.0\" encoding=\"utf-8\"?>",""); } catch (Exception e) {} return response; } private InputStream getHttpInputStream(String url) throws Exception { return ((HttpURLConnection)new URL(url).openConnection()).getInputStream(); } }