diff options
Diffstat (limited to 'spss.test/src/testgenerator/TestGeneratorCX0.java')
-rw-r--r-- | spss.test/src/testgenerator/TestGeneratorCX0.java | 2940 |
1 files changed, 2940 insertions, 0 deletions
diff --git a/spss.test/src/testgenerator/TestGeneratorCX0.java b/spss.test/src/testgenerator/TestGeneratorCX0.java new file mode 100644 index 000000000..31778c6a2 --- /dev/null +++ b/spss.test/src/testgenerator/TestGeneratorCX0.java @@ -0,0 +1,2940 @@ + +package testgenerator; +import iaik.apps.util.passphrase.PassphrasePrompt; +import iaik.asn1.structures.Name; +import iaik.ixsil.algorithms.CanonicalizationAlgorithmImplCanonicalXML; +import iaik.ixsil.algorithms.DigestAlgorithmImplSHA1; +import iaik.ixsil.algorithms.SignatureAlgorithmImplECDSA; +import iaik.ixsil.algorithms.SignatureAlgorithmImplRSA; +import iaik.ixsil.algorithms.TransformImplBase64Decode; +import iaik.ixsil.core.Signer; +import iaik.ixsil.core.SignerManifest; +import iaik.ixsil.core.SignerReference; +import iaik.ixsil.core.SignerSignature; +import iaik.ixsil.core.SignerSignedInfo; +import iaik.ixsil.init.IXSILConstants; +import iaik.ixsil.init.IXSILInit; +import iaik.ixsil.keyinfo.KeyManagerImpl; +import iaik.ixsil.keyinfo.x509.KeyProviderImplX509Data; +import iaik.ixsil.keyinfo.x509.X509Data; +import iaik.ixsil.util.URI; +import iaik.pkcs.pkcs11.objects.Certificate; +import iaik.pkcs.pkcs11.objects.PrivateKey; +import iaik.pkcs.pkcs11.objects.PublicKey; +import iaik.pkcs.pkcs11.provider.IAIKPkcs11; +import iaik.pkcs.pkcs11.provider.keys.IAIKPKCS11RsaPrivateKey; +import iaik.pkcs.pkcs11.provider.keys.IAIKPKCS11RsaPublicKey; +import iaik.pkcs.pkcs12.CertificateBag; +import iaik.pkcs.pkcs12.PKCS12; +import iaik.security.ecc.interfaces.ECDSAPrivateKey; +import iaik.security.provider.IAIK; +import iaik.utils.Base64OutputStream; + +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.RandomAccessFile; +import java.net.URL; +import java.security.Key; +import java.security.KeyStore; +import java.security.Security; +import java.security.Signature; +import java.security.cert.X509Certificate; +import java.security.interfaces.RSAPrivateKey; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.Properties; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.apache.xerces.dom.DocumentFragmentImpl; +import org.w3c.dom.Document; +import org.w3c.dom.DocumentFragment; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.Text; + +import at.gv.egovernment.moa.util.Base64Utils; +import at.gv.egovernment.moa.util.DOMUtils; + +import sun.misc.BASE64Encoder; + +/** + * @author stephan + */ +public class TestGeneratorCX0 extends TestCases { + + String datadirectory = "data/CX0/"; + String datadirectory_3 = "data/CX3/"; + String datadirectory_4 = "data/CX4/"; + String datadirectory_l = "data/LCX"; + + public String defaultblock = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\">\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\" ChildOfManifest=\"false\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testDaten.txt\">\n"+ + " <!-- Hint -->\n"+ + " </DataObject>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + public static void main(String[] args) throws Exception { + TestGeneratorCX0 testcase = new TestGeneratorCX0(); + + 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.create015(); + testcase.create016(); + testcase.create017(); + testcase.create018(); + testcase.create019(); + + testcase.create051(); + testcase.create052(); + testcase.create053(); + testcase.create054(); + testcase.create055(); + testcase.create056(); + testcase.create057(); + testcase.create058(); + testcase.create059(); + testcase.create060(); + //testcase.create061(); + testcase.create062(); + //testcase.create063(); + testcase.create064(); + testcase.create065(); + + //testcase.createL00();*/ + + } + + /* ==================================================================================================== */ + + public TestGeneratorCX0() throws Exception { + + super(); + + // Set config properties + configuration_.setProperty("TestClass", "TestGeneratorCX0"); +// 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.provider.IAIK.addAsJDK14Provider(); + iaik.security.ecc.provider.ECCProvider.addAsProvider(); + //iaik.security.ecc.provider.ECCProvider.addAsProvider(); + } + + /* ==================================================================================================== */ + + public Document createECDSPKCS12Sig(String tn,String fileref) throws Exception + { + String TestNumber = tn; + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + // String res = "emtpy"; + // FileOutputStream resFOS = new FileOutputStream(resFile); + // resFOS.write(res.getBytes()); + + PKCS12 pkcs12 = decryptPKCS12( + configuration_.getProperty("ECDSPKCS12file"), + configuration_.getProperty("ECDSPKCS12password" ) ); + + // Create signature generator + URI baseURI = new URI(IXSILConstants.DUMMY_ABSURI_); + Signer signer = new Signer(baseURI); + + // Configure signed information + + // Get interface for signed information + SignerSignedInfo signedInfo = signer.getSignature().getSignerSignedInfo(); + + // Set canonicalization algorithm + CanonicalizationAlgorithmImplCanonicalXML c14nAlg = + new CanonicalizationAlgorithmImplCanonicalXML(); + signedInfo.setCanonicalizationAlgorithm(c14nAlg); + + CertificateBag cb[] = pkcs12.getCertificateBags(); + System.out.println("LEN:"+cb.length); + iaik.x509.X509Certificate cert[] = cb[0].getCertificates(cb); + System.out.println("LEN2:"+cert.length); + System.out.println("CERT:"+(((Name)(cert[0].getIssuerDN())).getRFC2253String())); + + + // Set signature algorithm + /* TODO: Change to ECDS Impl */ + SignatureAlgorithmImplECDSA signatureAlg = new SignatureAlgorithmImplECDSA(); + ECDSAPrivateKey privateKey = getPrivateKeyECDS( pkcs12 ); + signatureAlg.setSignerKey(privateKey); + signedInfo.setSignatureAlgorithm(signatureAlg); + + // Create and configure reference + URI refURI = null; + String baseDir = configuration_.getProperty("baseDir"); + refURI = new URI(fileref); + + SignerReference reference = signedInfo.createReference(); + reference.setURI(refURI); + reference.setId("reference-1-1"); + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + reference.setDigestAlgorithm(digestAlg); + + // Add reference to signature + signedInfo.addReference(reference); + + // Create key information + KeyManagerImpl keyManager = new KeyManagerImpl(signer.toDocument()); + + X509Certificate[] certs = getCertificates(pkcs12); + X509Data x509Data = new X509Data(); + for (int i = 0; i < certs.length; i++) + { + x509Data.insertHintAt(certs[i], i); + } + + KeyProviderImplX509Data x509DataKeyProvider = new KeyProviderImplX509Data(signer.toDocument()); + x509DataKeyProvider.insertX509DataAt(x509Data, 0); + + // X509Data key information (certificate chain) + keyManager.addKeyProvider(x509DataKeyProvider); + + signer.getSignature().setKeyManager(keyManager); + signer.getSignature().setId("signature-1-1"); + // Compute signature value + signer.getSignature().sign(); + Document doc = signer.toDocument(); + System.out.println(doc.getDocumentElement().getNodeName()); + + return doc; + } + + public Document createPKCS12Sig(String tn,String fileref) throws Exception + { + return createPKCS12Sig(tn,fileref,false,false,null,false); + } + + public Document createPKCS12Sig(String tn,String fileref,String id1,String id2) throws Exception + { + return createPKCS12Sig(tn,fileref,false,false,null,false,id1,id2); + } + + public Document createPKCS12SigWithEnveloping(String TestNumber,String data) throws Exception + { + return createPKCS12Sig(TestNumber,data,true,false,null,false); + } + + public Document createPKCS12Sig(String TestNumber,String data,boolean env,boolean mani) throws Exception + { + return createPKCS12Sig(TestNumber,data,env,mani,null,false); + } + + public Document createPKCS12Sig(String TestNumber,String data,boolean env,boolean mani,String data2,boolean env2) throws Exception + { + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + PKCS12 pkcs12 = decryptPKCS12( + configuration_.getProperty("PKCS12file"), + configuration_.getProperty("PKCS12password" ) ); + + // Create signature generator + URI baseURI = new URI(IXSILConstants.DUMMY_ABSURI_); + Signer signer = new Signer(baseURI); + + // Configure signed information + + // Get interface for signed information + SignerSignature signature = signer.getSignature(); + SignerSignedInfo signedInfo = signer.getSignature().getSignerSignedInfo(); + + // Set canonicalization algorithm + CanonicalizationAlgorithmImplCanonicalXML c14nAlg = + new CanonicalizationAlgorithmImplCanonicalXML(); + signedInfo.setCanonicalizationAlgorithm(c14nAlg); + + // Set signature algorithm + SignatureAlgorithmImplRSA signatureAlg = new SignatureAlgorithmImplRSA(); + RSAPrivateKey privateKey = getPrivateKey( pkcs12 ); + signatureAlg.setSignerKey(privateKey); + signedInfo.setSignatureAlgorithm(signatureAlg); + + if(!mani) + { + SignerReference reference = signedInfo.createReference(); + if(env) + { + iaik.ixsil.core.Object object = null; + //object = signature.createObject(data); + if(data.startsWith("<xml")) + { + DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = db.parse(new ByteArrayInputStream(data.getBytes())); + + object = signature.createObject(doc.getDocumentElement()); + } + else if(data.startsWith("<Testdaten")) + { + + DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = db.parse(new ByteArrayInputStream(("<?xml version=\"1.0\" encoding=\"utf-8\"?>"+data).getBytes())); + + object = signature.createObject(doc.getDocumentElement()); + } + else if(data.startsWith("b64:")) + { + data = data.substring(4); + DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = db.newDocument(); + Element root = doc.createElement("root"); + doc.appendChild(root); + //String encoded = Base64Utils.encode(data.getBytes()); + String encoded = Base64Utils.encode(data.getBytes()); + /*encoded = replaceStringAll(encoded,"\n",""); + encoded = replaceStringAll(encoded,"\r","");*/ + Text textnode = doc.createTextNode(encoded); + + System.out.println("Encoded:"+encoded); + //root.appendChild(textnode); + + DocumentFragment df = doc.createDocumentFragment(); + + df.appendChild(textnode); + + object = signature.createObject(df); + + TransformImplBase64Decode trans = new TransformImplBase64Decode(); + InputStream s = new ByteArrayInputStream(encoded.getBytes()); + trans.setInput(s,null); + + reference.insertTransformAt(trans,0); + } + else + { + object = signature.createObject(data); + } + + object.setId("signed-data-1-1-1"); + signature.addObject(object); + + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + reference.setDigestAlgorithm(digestAlg); + + reference.setURI(new URI("#xpointer(id('signed-data-1-1-1')/node())")); + + + } + else + { + // Create and configure reference + URI refURI = null; + String baseDir = configuration_.getProperty("baseDir"); + refURI = new URI(data); + + + reference.setURI(refURI); + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + reference.setDigestAlgorithm(digestAlg); + } + reference.setId("reference-1-1"); + signedInfo.addReference(reference); + } + + if(data2!=null) + { + SignerReference reference = signedInfo.createReference(); + reference = signedInfo.createReference(); + if(env2) + { + iaik.ixsil.core.Object object = null; + if(data2.startsWith("<xml")) + { + DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = db.parse(new ByteArrayInputStream(data.getBytes())); + + object = signature.createObject(doc.getDocumentElement()); + } + else if(data2.startsWith("<Testdaten")) + { + + DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = db.parse(new ByteArrayInputStream(("<?xml version=\"1.0\" encoding=\"utf-8\"?>"+data).getBytes())); + + object = signature.createObject(doc.getDocumentElement()); + } + else + object = signature.createObject(data2); + + if(!env) + object.setId("signed-data-1-2-1"); + else + object.setId("signed-data-1-2-1"); + signature.addObject(object); + + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + reference.setDigestAlgorithm(digestAlg); + + if(!env) + reference.setURI(new URI("#xpointer(id('signed-data-1-2-1')/node())")); + else + reference.setURI(new URI("#xpointer(id('signed-data-1-2-1')/node())")); + } + else + { + // Create and configure reference + URI refURI = null; + String baseDir = configuration_.getProperty("baseDir"); + refURI = new URI(data2); + + + reference.setURI(refURI); + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + reference.setDigestAlgorithm(digestAlg); + } + reference.setId("reference-1-2"); + signedInfo.addReference(reference); + } + + // Add reference to signature + + + + if(mani) + { + + /*iaik.ixsil.core.Object object = null; + if(env) + object = signature.createObject(readFile(data)); + else + object = signature.createObject(data); + + object.setId("envelopedData"); + signature.addObject(object);*/ + SignerReference reference = signedInfo.createReference(); + SignerManifest manifest = signer.createManifest(); + SignerReference manifestRef = manifest.createReference(); + + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + manifestRef.setDigestAlgorithm(digestAlg); + + manifestRef.setURI(new URI(data)); + manifestRef.setId("reference-1-1"); + + manifest.addReference(manifestRef); + manifest.setId("dsig-manifest-1-1"); + iaik.ixsil.core.Object manifestObject = signature.createObject(manifest); + signature.addObject(manifestObject); + manifest.computeDigestValues(); + + reference = signedInfo.createReference(); + reference.setURI( + new URI("#dsig-manifest-1-1")); + reference.setType(new URI(IXSILConstants.REFERENCETYPE_ATTR_VALUE_MANIFEST_)); + reference.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); + + // Add reference to signature + signedInfo.addReference(reference); + + + /*Element envelopedDataElem = + signer.toDocument().createElement("EnvelopedDataElement"); + + if(env) + { + envelopedDataElem.appendChild( + signer.toDocument().createTextNode(readFile(data))); + } + else + { + envelopedDataElem.appendChild( + signer.toDocument().createTextNode(data)); + } + + iaik.ixsil.core.Object object = signature.createObject(envelopedDataElem); + signature.addObject(object); + + // Create Manifest with a single reference pointing to the enveloped data + SignerManifest manifest = signer.createManifest(); + SignerReference manifestRef = manifest.createReference(); + manifestRef.setURI( + new URI( + null, + null, + null, + null, + "xmlns(dsig=" + + IXSILConstants.NAMESPACE_URI_XMLSIGNATURE_ELEM_ + + ") " + + "xpointer(here()/ancestor::dsig:Signature[1]/dsig:Object[1]/descendant::node())")); + manifestRef.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); + manifest.addReference(manifestRef); + + // Add Manifest to signature structure (use an Object) and compute digest values for manifest reference + iaik.ixsil.core.Object manifestObject = signature.createObject(manifest); + signature.addObject(manifestObject); + manifest.computeDigestValues(); + + // Create and configure reference to manifest + reference = signedInfo.createReference(); + reference.setURI( + new URI( + null, + null, + null, + null, + "xmlns(dsig=" + + IXSILConstants.NAMESPACE_URI_XMLSIGNATURE_ELEM_ + + ") " + + "xpointer(here()/ancestor::dsig:Signature[1]/dsig:Object[2]/dsig:Manifest)")); + reference.setType(new URI(IXSILConstants.REFERENCETYPE_ATTR_VALUE_MANIFEST_)); + reference.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); + + // Add reference to signature + signedInfo.addReference(reference);*/ + } + + // Create key information + KeyManagerImpl keyManager = new KeyManagerImpl(signer.toDocument()); + + X509Certificate[] certs = getCertificates(pkcs12); + X509Data x509Data = new X509Data(); + x509Data.insertHintAt(certs[1], 0); + /*for (int i = 0; i < certs.length; i++) + { + + }*/ + + KeyProviderImplX509Data x509DataKeyProvider = new KeyProviderImplX509Data(signer.toDocument()); + x509DataKeyProvider.insertX509DataAt(x509Data, 0); + + // X509Data key information (certificate chain) + keyManager.addKeyProvider(x509DataKeyProvider); + + signer.getSignature().setKeyManager(keyManager); + signer.getSignature().setId("signature-1-1"); + // Compute signature value + signer.getSignature().sign(); + + return signer.toDocument(); + } + + public Document createPKCS12Sig(String TestNumber,String data,boolean env,boolean mani,String data2,boolean env2,String id1,String id2) throws Exception + { + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + PKCS12 pkcs12 = decryptPKCS12( + configuration_.getProperty("PKCS12file"), + configuration_.getProperty("PKCS12password" ) ); + + // Create signature generator + URI baseURI = new URI(IXSILConstants.DUMMY_ABSURI_); + Signer signer = new Signer(baseURI); + + // Configure signed information + + // Get interface for signed information + SignerSignature signature = signer.getSignature(); + SignerSignedInfo signedInfo = signer.getSignature().getSignerSignedInfo(); + + // Set canonicalization algorithm + CanonicalizationAlgorithmImplCanonicalXML c14nAlg = + new CanonicalizationAlgorithmImplCanonicalXML(); + signedInfo.setCanonicalizationAlgorithm(c14nAlg); + + // Set signature algorithm + SignatureAlgorithmImplRSA signatureAlg = new SignatureAlgorithmImplRSA(); + RSAPrivateKey privateKey = getPrivateKey( pkcs12 ); + signatureAlg.setSignerKey(privateKey); + signedInfo.setSignatureAlgorithm(signatureAlg); + + if(!mani) + { + SignerReference reference = signedInfo.createReference(); + if(env) + { + iaik.ixsil.core.Object object = null; + //object = signature.createObject(data); + if(data.startsWith("<xml")) + { + DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = db.parse(new ByteArrayInputStream(data.getBytes())); + + object = signature.createObject(doc.getDocumentElement()); + } + else if(data.startsWith("<Testdaten")) + { + + DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = db.parse(new ByteArrayInputStream(("<?xml version=\"1.0\" encoding=\"utf-8\"?>"+data).getBytes())); + + object = signature.createObject(doc.getDocumentElement()); + } + else if(data.startsWith("b64:")) + { + data = data.substring(4); + DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = db.newDocument(); + Element root = doc.createElement("root"); + doc.appendChild(root); + //String encoded = Base64Utils.encode(data.getBytes()); + String encoded = Base64Utils.encode(data.getBytes()); + /*encoded = replaceStringAll(encoded,"\n",""); + encoded = replaceStringAll(encoded,"\r","");*/ + Text textnode = doc.createTextNode(encoded); + + System.out.println("Encoded:"+encoded); + //root.appendChild(textnode); + + DocumentFragment df = doc.createDocumentFragment(); + + df.appendChild(textnode); + + object = signature.createObject(df); + + TransformImplBase64Decode trans = new TransformImplBase64Decode(); + InputStream s = new ByteArrayInputStream(encoded.getBytes()); + trans.setInput(s,null); + + reference.insertTransformAt(trans,0); + } + else + { + object = signature.createObject(data); + } + + object.setId("signed-data-1-1-1"); + signature.addObject(object); + + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + reference.setDigestAlgorithm(digestAlg); + + reference.setURI(new URI("#xpointer(id('signed-data-1-1-1')/node())")); + + + } + else + { + // Create and configure reference + URI refURI = null; + String baseDir = configuration_.getProperty("baseDir"); + refURI = new URI(data); + + + reference.setURI(refURI); + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + reference.setDigestAlgorithm(digestAlg); + } + reference.setId("reference-2-1"); + signedInfo.addReference(reference); + } + + if(data2!=null) + { + SignerReference reference = signedInfo.createReference(); + reference = signedInfo.createReference(); + if(env2) + { + iaik.ixsil.core.Object object = null; + if(data2.startsWith("<xml")) + { + DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = db.parse(new ByteArrayInputStream(data.getBytes())); + + object = signature.createObject(doc.getDocumentElement()); + } + else if(data2.startsWith("<Testdaten")) + { + + DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = db.parse(new ByteArrayInputStream(("<?xml version=\"1.0\" encoding=\"utf-8\"?>"+data).getBytes())); + + object = signature.createObject(doc.getDocumentElement()); + } + else + object = signature.createObject(data2); + + if(!env) + object.setId("signed-data-1-2-1"); + else + object.setId("signed-data-1-2-1"); + signature.addObject(object); + + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + reference.setDigestAlgorithm(digestAlg); + + if(!env) + reference.setURI(new URI("#xpointer(id('signed-data-1-2-1')/node())")); + else + reference.setURI(new URI("#xpointer(id('signed-data-1-2-1')/node())")); + } + else + { + // Create and configure reference + URI refURI = null; + String baseDir = configuration_.getProperty("baseDir"); + refURI = new URI(data2); + + + reference.setURI(refURI); + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + reference.setDigestAlgorithm(digestAlg); + } + reference.setId("reference-1-2"); + signedInfo.addReference(reference); + } + + // Add reference to signature + + + + if(mani) + { + + /*iaik.ixsil.core.Object object = null; + if(env) + object = signature.createObject(readFile(data)); + else + object = signature.createObject(data); + + object.setId("envelopedData"); + signature.addObject(object);*/ + SignerReference reference = signedInfo.createReference(); + SignerManifest manifest = signer.createManifest(); + SignerReference manifestRef = manifest.createReference(); + + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + manifestRef.setDigestAlgorithm(digestAlg); + + manifestRef.setURI(new URI(data)); + manifestRef.setId("reference-1-1"); + + manifest.addReference(manifestRef); + manifest.setId("dsig-manifest-1-1"); + iaik.ixsil.core.Object manifestObject = signature.createObject(manifest); + signature.addObject(manifestObject); + manifest.computeDigestValues(); + + reference = signedInfo.createReference(); + reference.setURI( + new URI("#dsig-manifest-1-1")); + reference.setType(new URI(IXSILConstants.REFERENCETYPE_ATTR_VALUE_MANIFEST_)); + reference.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); + + // Add reference to signature + signedInfo.addReference(reference); + + + /*Element envelopedDataElem = + signer.toDocument().createElement("EnvelopedDataElement"); + + if(env) + { + envelopedDataElem.appendChild( + signer.toDocument().createTextNode(readFile(data))); + } + else + { + envelopedDataElem.appendChild( + signer.toDocument().createTextNode(data)); + } + + iaik.ixsil.core.Object object = signature.createObject(envelopedDataElem); + signature.addObject(object); + + // Create Manifest with a single reference pointing to the enveloped data + SignerManifest manifest = signer.createManifest(); + SignerReference manifestRef = manifest.createReference(); + manifestRef.setURI( + new URI( + null, + null, + null, + null, + "xmlns(dsig=" + + IXSILConstants.NAMESPACE_URI_XMLSIGNATURE_ELEM_ + + ") " + + "xpointer(here()/ancestor::dsig:Signature[1]/dsig:Object[1]/descendant::node())")); + manifestRef.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); + manifest.addReference(manifestRef); + + // Add Manifest to signature structure (use an Object) and compute digest values for manifest reference + iaik.ixsil.core.Object manifestObject = signature.createObject(manifest); + signature.addObject(manifestObject); + manifest.computeDigestValues(); + + // Create and configure reference to manifest + reference = signedInfo.createReference(); + reference.setURI( + new URI( + null, + null, + null, + null, + "xmlns(dsig=" + + IXSILConstants.NAMESPACE_URI_XMLSIGNATURE_ELEM_ + + ") " + + "xpointer(here()/ancestor::dsig:Signature[1]/dsig:Object[2]/dsig:Manifest)")); + reference.setType(new URI(IXSILConstants.REFERENCETYPE_ATTR_VALUE_MANIFEST_)); + reference.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); + + // Add reference to signature + signedInfo.addReference(reference);*/ + } + + // Create key information + KeyManagerImpl keyManager = new KeyManagerImpl(signer.toDocument()); + + X509Certificate[] certs = getCertificates(pkcs12); + X509Data x509Data = new X509Data(); + x509Data.insertHintAt(certs[1], 0); + /*for (int i = 0; i < certs.length; i++) + { + + }*/ + + KeyProviderImplX509Data x509DataKeyProvider = new KeyProviderImplX509Data(signer.toDocument()); + x509DataKeyProvider.insertX509DataAt(x509Data, 0); + + // X509Data key information (certificate chain) + keyManager.addKeyProvider(x509DataKeyProvider); + + signer.getSignature().setKeyManager(keyManager); + signer.getSignature().setId("signature-2-1"); + // Compute signature value + signer.getSignature().sign(); + + return signer.toDocument(); + } + + public Document createHSMSig(String TestNumber,String data,boolean env,boolean mani,String data2,boolean env2) throws Exception + { + String keyId = null; + String certId = null; + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + // Create signature generator + URI baseURI = new URI(IXSILConstants.DUMMY_ABSURI_); + Signer signer = new Signer(baseURI); + + // Configure signed information + + // Get interface for signed information + SignerSignature signature = signer.getSignature(); + SignerSignedInfo signedInfo = signer.getSignature().getSignerSignedInfo(); + + // Set canonicalization algorithm + CanonicalizationAlgorithmImplCanonicalXML c14nAlg = + new CanonicalizationAlgorithmImplCanonicalXML(); + signedInfo.setCanonicalizationAlgorithm(c14nAlg); + + Properties config = new Properties(); + config.put("PKCS11_NATIVE_MODULE","cryptoki.dll"); + config.put("SLOT_ID","0"); + config.put("DEFAULT_PROMPT_DIALOG","testgenerator.Pass"); + + Security.addProvider(new IAIK()); + IAIKPkcs11 pkcs11Provider_ = new IAIKPkcs11(config); + Security.addProvider(pkcs11Provider_); + + // Set signature algorithm + SignatureAlgorithmImplRSA signatureAlg = new SignatureAlgorithmImplRSA(); + signatureAlg.setJCEProviderName(pkcs11Provider_.getName()); + + // HSM Action start + + // load the keystore of the PKCS#11 provider given via input stream + KeyStore tokenKeyStore = pkcs11Provider_.getTokenManager().getKeyStore(); + tokenKeyStore.load(null,"1111".toCharArray()); + + Enumeration enum = tokenKeyStore.aliases(); + + String ali = null; + while(enum.hasMoreElements()) + { + //enum.nextElement(); + ali = (String)enum.nextElement(); + //ali = (String)enum.nextElement(); + System.out.println("Alias:"+ali); + if(tokenKeyStore.containsAlias(ali)) System.out.println("ALIAS vorhanden"); + if(tokenKeyStore.isKeyEntry(ali)) System.out.println("KEYENTRY vorhanden"); + } + + Enumeration enum2 = tokenKeyStore.aliases(); + + while (enum2.hasMoreElements()) { + String alias = enum2.nextElement().toString(); + + if (tokenKeyStore.isKeyEntry(alias)) { + System.out.println("________________________________________________________________________________"); + System.out.println("Key entry with alias: " + alias); + Key key = tokenKeyStore.getKey(alias, null); + System.out.println(key); + java.security.cert.Certificate[] certificateChain2 = tokenKeyStore.getCertificateChain(alias); + if (certificateChain2 != null) { + System.out.println("Certificate chain of length: " + certificateChain2.length); + for (int i = 0; i < certificateChain2.length; i++) { + System.out.println("--------------------------------------------------------------------------------"); + System.out.println(certificateChain2[i]); + } + } else { + System.out.println("Certificate chain is null!"); + } + System.out.println("________________________________________________________________________________"); + } else if (tokenKeyStore.isCertificateEntry(alias)) { + System.out.println("________________________________________________________________________________"); + System.out.println("Certificate entry with alias: " + alias); + java.security.cert.Certificate certificate = tokenKeyStore.getCertificate(alias); + System.out.println(certificate); + System.out.println("________________________________________________________________________________"); + } else { + System.out.println("________________________________________________________________________________"); + System.out.println("ERROR! Unknown entry type with alias: " + alias); + System.out.println("________________________________________________________________________________"); + } + } + + + IAIKPKCS11RsaPrivateKey privateKey = (IAIKPKCS11RsaPrivateKey)tokenKeyStore.getKey("MOAHSMRSAKEY_cert", null); + keyId = new String(privateKey.getKeyID()); + + System.out.println(new String(privateKey.getKeyID())); + //System.out.println("got:"+signatureKey+" : "+signatureKey.getClass().getName()); + + Signature signatureEngine = Signature.getInstance("ExternalSHA1WithRSA", pkcs11Provider_.getName()); + signatureEngine.initSign(privateKey); + /*signatureEngine.update("This is some data to be signed.".getBytes()); + byte[] bytesig = signatureEngine.sign(); + System.out.println("SIG:"+new String(bytesig)); + + System.out.println("KEY:\n"+privateKey);*/ + signatureAlg.setSignerKey(privateKey); + signedInfo.setSignatureAlgorithm(signatureAlg); + + SignerReference reference = signedInfo.createReference(); + + if(!mani) + { + if(env) + { + iaik.ixsil.core.Object object = null; + object = signature.createObject(data); + object.setId("signed-data-0-1"); + signature.addObject(object); + + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + reference.setDigestAlgorithm(digestAlg); + + reference.setURI(new URI("#xpointer(id('signed-data-0-1')/node())")); + } + else + { + // Create and configure reference + URI refURI = null; + String baseDir = configuration_.getProperty("baseDir"); + refURI = new URI(data); + + + reference.setURI(refURI); + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + reference.setDigestAlgorithm(digestAlg); + } + reference.setId("reference-1-1"); + signedInfo.addReference(reference); + } + + if(data2!=null) + { + reference = signedInfo.createReference(); + if(env2) + { + iaik.ixsil.core.Object object = null; + object = signature.createObject(data2); + object.setId("signed-data-0-2"); + signature.addObject(object); + + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + reference.setDigestAlgorithm(digestAlg); + + reference.setURI(new URI("#xpointer(id('signed-data-0-2')/node())")); + } + else + { + // Create and configure reference + URI refURI = null; + String baseDir = configuration_.getProperty("baseDir"); + refURI = new URI(data2); + + + reference.setURI(refURI); + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + reference.setDigestAlgorithm(digestAlg); + } + signedInfo.addReference(reference); + } + + // Add reference to signature + + + + if(mani) + { + + /*iaik.ixsil.core.Object object = null; + if(env) + object = signature.createObject(readFile(data)); + else + object = signature.createObject(data); + + object.setId("envelopedData"); + signature.addObject(object);*/ + + SignerManifest manifest = signer.createManifest(); + SignerReference manifestRef = manifest.createReference(); + + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + manifestRef.setDigestAlgorithm(digestAlg); + + manifestRef.setURI(new URI(data)); + + manifest.addReference(manifestRef); + manifest.setId("manifest-1"); + iaik.ixsil.core.Object manifestObject = signature.createObject(manifest); + signature.addObject(manifestObject); + manifest.computeDigestValues(); + + reference = signedInfo.createReference(); + reference.setURI( + new URI("#xpointer(id('manifest-1'))")); + reference.setType(new URI(IXSILConstants.REFERENCETYPE_ATTR_VALUE_MANIFEST_)); + reference.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); + + // Add reference to signature + signedInfo.addReference(reference); + + + /*Element envelopedDataElem = + signer.toDocument().createElement("EnvelopedDataElement"); + + if(env) + { + envelopedDataElem.appendChild( + signer.toDocument().createTextNode(readFile(data))); + } + else + { + envelopedDataElem.appendChild( + signer.toDocument().createTextNode(data)); + } + + iaik.ixsil.core.Object object = signature.createObject(envelopedDataElem); + signature.addObject(object); + + // Create Manifest with a single reference pointing to the enveloped data + SignerManifest manifest = signer.createManifest(); + SignerReference manifestRef = manifest.createReference(); + manifestRef.setURI( + new URI( + null, + null, + null, + null, + "xmlns(dsig=" + + IXSILConstants.NAMESPACE_URI_XMLSIGNATURE_ELEM_ + + ") " + + "xpointer(here()/ancestor::dsig:Signature[1]/dsig:Object[1]/descendant::node())")); + manifestRef.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); + manifest.addReference(manifestRef); + + // Add Manifest to signature structure (use an Object) and compute digest values for manifest reference + iaik.ixsil.core.Object manifestObject = signature.createObject(manifest); + signature.addObject(manifestObject); + manifest.computeDigestValues(); + + // Create and configure reference to manifest + reference = signedInfo.createReference(); + reference.setURI( + new URI( + null, + null, + null, + null, + "xmlns(dsig=" + + IXSILConstants.NAMESPACE_URI_XMLSIGNATURE_ELEM_ + + ") " + + "xpointer(here()/ancestor::dsig:Signature[1]/dsig:Object[2]/dsig:Manifest)")); + reference.setType(new URI(IXSILConstants.REFERENCETYPE_ATTR_VALUE_MANIFEST_)); + reference.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); + + // Add reference to signature + signedInfo.addReference(reference);*/ + } + + enum2 = tokenKeyStore.aliases(); + + while(enum2.hasMoreElements()) + { + System.out.println(enum2.nextElement()); + } + + enum2 = tokenKeyStore.aliases(); + + while (enum2.hasMoreElements()) { + String alias = enum2.nextElement().toString(); + + if (tokenKeyStore.isKeyEntry(alias)) { + System.out.println("________________________________________________________________________________"); + System.out.println("Key entry with alias: " + alias); + Key key = tokenKeyStore.getKey(alias, null); + System.out.println(key); + java.security.cert.Certificate[] certificateChain2 = tokenKeyStore.getCertificateChain(alias); + if (certificateChain2 != null) { + System.out.println("Certificate chain of length: " + certificateChain2.length); + for (int i = 0; i < certificateChain2.length; i++) { + System.out.println("--------------------------------------------------------------------------------"); + System.out.println(certificateChain2[i]); + } + } else { + System.out.println("Certificate chain is null!"); + } + System.out.println("________________________________________________________________________________"); + } else if (tokenKeyStore.isCertificateEntry(alias)) { + System.out.println("________________________________________________________________________________"); + System.out.println("Certificate entry with alias: " + alias); + java.security.cert.Certificate certificate = tokenKeyStore.getCertificate(alias); + System.out.println(certificate); + System.out.println("________________________________________________________________________________"); + } else { + System.out.println("________________________________________________________________________________"); + System.out.println("ERROR! Unknown entry type with alias: " + alias); + System.out.println("________________________________________________________________________________"); + } + } + + // Create key information + KeyManagerImpl keyManager = new KeyManagerImpl(signer.toDocument()); + + //DOMUtils.serializeNode(keyManager.getKeyInfo()); + + java.security.cert.Certificate[] certificateChain = tokenKeyStore.getCertificateChain("MOAHSMRSAKEY_cert"); + + System.out.println("CERTLEN:"+certificateChain.length); + + X509Data x509Data = new X509Data(); + for (int i = 0; i < certificateChain.length; i++) + { + System.out.println("CERT:"+((Name)(((X509Certificate)certificateChain[i]).getIssuerDN())).getRFC2253String()); + x509Data.insertHintAt((X509Certificate)certificateChain[i], i); + } + + KeyProviderImplX509Data x509DataKeyProvider = new KeyProviderImplX509Data(signer.toDocument()); + x509DataKeyProvider.insertX509DataAt(x509Data, 0); + + // X509Data key information (certificate chain) + keyManager.addKeyProvider(x509DataKeyProvider); + + signer.getSignature().setKeyManager(keyManager); + signer.getSignature().setId("signature-1-1"); + + // Compute signature value + signer.getSignature().sign(); + + return signer.toDocument(); + } + + public Document createPKCS12SigSL(String TestNumber,String data) throws Exception + { + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + PKCS12 pkcs12 = decryptPKCS12( + configuration_.getProperty("PKCS12file"), + configuration_.getProperty("PKCS12password" ) ); + + // Create signature generator + URI baseURI = new URI(IXSILConstants.DUMMY_ABSURI_); + Signer signer = new Signer(baseURI); + + // Configure signed information + + // Get interface for signed information + SignerSignature signature = signer.getSignature(); + SignerSignedInfo signedInfo = signer.getSignature().getSignerSignedInfo(); + + // Set canonicalization algorithm + CanonicalizationAlgorithmImplCanonicalXML c14nAlg = + new CanonicalizationAlgorithmImplCanonicalXML(); + signedInfo.setCanonicalizationAlgorithm(c14nAlg); + + // Set signature algorithm + SignatureAlgorithmImplRSA signatureAlg = new SignatureAlgorithmImplRSA(); + RSAPrivateKey privateKey = getPrivateKey( pkcs12 ); + signatureAlg.setSignerKey(privateKey); + signedInfo.setSignatureAlgorithm(signatureAlg); + + SignerReference reference = signedInfo.createReference(); + + // env + /*iaik.ixsil.core.Object object = null; + object = signature.createObject(data); + object.setId("envelopedData"); + signature.addObject(object); + + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + reference.setDigestAlgorithm(digestAlg); + + reference.setURI(new URI("#xpointer(id('envelopedData')/node())"));*/ + + // detached + // Create and configure reference + URI refURI = null; + refURI = new URI(data); + + reference.setURI(refURI); + reference.setId("reference-1-1"); + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + reference.setDigestAlgorithm(digestAlg); + + signedInfo.addReference(reference); + + reference = signedInfo.createReference(); + + refURI = null; + refURI = new URI(data); + + //reference.setURI(new URI("#xpointer(id('ETSIProperties'))/*/*")); + reference.setURI(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('etsi-signed-1-1')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)")); + reference.setType(new URI("http://uri.etsi.org/01903/v1.1.1#SignedProperties")); + digestAlg = new DigestAlgorithmImplSHA1(); + reference.setDigestAlgorithm(digestAlg); + + signedInfo.addReference(reference); + + /*iaik.ixsil.core.Object object = null; + object = signature.createObject(data); + object.setId("SLManifestObject"); + + signature.addObject(object);*/ + + + /*SignerManifest manifest = signer.createManifest(); + SignerReference manifestRef = manifest.createReference(); + + digestAlg = new DigestAlgorithmImplSHA1(); + manifestRef.setDigestAlgorithm(digestAlg); + + manifestRef.setURI(new URI(data)); + + manifest.addReference(manifestRef); + manifest.setId("SLManifestObject"); + iaik.ixsil.core.Object manifestObject = signature.createObject(manifest); + signature.addObject(manifestObject); + manifest.computeDigestValues(); + + reference = manifest.createReference(); + reference.setType(new URI("http://www.buergerkarte.at/specifications/Security-Layer/20020225#SignatureManifest")); + reference.setURI(new URI("#SLManifestObject")); + reference.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); + + // Add reference to signature + signedInfo.addReference(reference);*/ + + iaik.ixsil.core.Object object = null; + object = signature.createObject(getElement("TEST")); + object.setId("etsi-signed-1-1"); + signature.addObject(object); + + + + /*if(mani) + { + + SignerManifest manifest = signer.createManifest(); + SignerReference manifestRef = manifest.createReference(); + + DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); + manifestRef.setDigestAlgorithm(digestAlg); + + manifestRef.setURI(new URI(data)); + + manifest.addReference(manifestRef); + manifest.setId("manifestObject"); + iaik.ixsil.core.Object manifestObject = signature.createObject(manifest); + signature.addObject(manifestObject); + manifest.computeDigestValues(); + + reference = signedInfo.createReference(); + reference.setURI( + new URI("#xpointer(id('manifestObject'))")); + reference.setType(new URI(IXSILConstants.REFERENCETYPE_ATTR_VALUE_MANIFEST_)); + reference.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); + + // Add reference to signature + signedInfo.addReference(reference); + + }*/ + + signature.setId("signature-1-1"); + + // Create key information + KeyManagerImpl keyManager = new KeyManagerImpl(signer.toDocument()); + + X509Certificate[] certs = getCertificates(pkcs12); + X509Data x509Data = new X509Data(); + x509Data.insertHintAt(certs[1], 0); + + KeyProviderImplX509Data x509DataKeyProvider = new KeyProviderImplX509Data(signer.toDocument()); + x509DataKeyProvider.insertX509DataAt(x509Data, 0); + + // X509Data key information (certificate chain) + keyManager.addKeyProvider(x509DataKeyProvider); + + signer.getSignature().setKeyManager(keyManager); + + // Compute signature value + signer.getSignature().sign(); + + return signer.toDocument(); + } + + public Element getElement(String data) throws Exception + { + String etsinamespace = "http://uri.etsi.org/01903/v1.1.1#"; + + getX509Content(); + + DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + //dbf.setNamespaceAware(true); + //dbf.setValidating(true); + + Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); + + + Element qualprop = doc.createElementNS(etsinamespace,"etsi:QualifyingProperties"); + qualprop.setAttributeNS(null,"Target","#signature-1-1"); + qualprop.setAttributeNS(IXSILConstants.NAMESPACE_URI_NAMESPACES_,"xmlns:etsi",etsinamespace); + //qualprop.setPrefix("etsi");*/ + //qualprop.setAttributeNodeNS(doc.createAttributeNS(etsinamespace,"etsi")); + Element signprop = doc.createElementNS(etsinamespace,"etsi:SignedProperties"); + Element signsigprop = doc.createElementNS(etsinamespace,"etsi:SignedSignatureProperties"); + Element signdataobjectprop = doc.createElementNS(etsinamespace,"etsi:SignedDataObjectProperties"); + Element signdate = doc.createElementNS(etsinamespace,"etsi:SigningTime"); + Text datevalue = doc.createTextNode("2003-05-10T00:01:01"); + Element signcert = doc.createElementNS(etsinamespace,"etsi:SigningCertificate"); + Element cert = doc.createElementNS(etsinamespace,"etsi:Cert"); + Element signpolyident = doc.createElementNS(etsinamespace,"etsi:SignaturePolicyIdentifier"); + Element signpolyimp = doc.createElementNS(etsinamespace,"etsi:SignaturePolicyImplied"); + Element certdig = doc.createElementNS(etsinamespace,"etsi:CertDigest"); + Element digmeth = doc.createElementNS(etsinamespace,"etsi:DigestMethod"); + digmeth.setAttribute("Algorithm","http://www.w3.org/2000/09/xmldsig#sha1"); + Element digvalue = doc.createElementNS(etsinamespace,"etsi:DigestValue"); + + ByteArrayOutputStream fos = new ByteArrayOutputStream(); + Base64OutputStream base64os = new Base64OutputStream(fos); + base64os.write(this.X509hash.getBytes()); + base64os.flush(); + + Text dig_value = doc.createTextNode(fos.toString()); + Element is = doc.createElementNS(etsinamespace,"etsi:IssuerSerial"); + Element i = doc.createElement("dsig:X509IssuerName"); + Text i_value = doc.createTextNode(this.X509name); + Element s = doc.createElement("dsig:X509SerialNumber"); + Text s_value = doc.createTextNode(this.X509number.toString()); + Element dataobjformat = doc.createElementNS(etsinamespace,"etsi:DataObjectFormat"); + dataobjformat.setAttribute("ObjectReference","#reference-1-1"); + Element mimetype = doc.createElementNS(etsinamespace,"etsi:MimeType"); + //mimetype.setNodeValue("text/plain"); + Text mimevalue = doc.createTextNode("text/plain"); + + qualprop.appendChild(signprop); + signprop.appendChild(signsigprop); + signsigprop.appendChild(signdate); + signdate.appendChild(datevalue); + signsigprop.appendChild(signcert); + signcert.appendChild(cert); + cert.appendChild(certdig); + certdig.appendChild(digmeth); + certdig.appendChild(digvalue); + digvalue.appendChild(dig_value); + cert.appendChild(is); + is.appendChild(i); + i.appendChild(i_value); + is.appendChild(s); + s.appendChild(s_value); + signsigprop.appendChild(signpolyident); + signpolyident.appendChild(signpolyimp); + signprop.appendChild(signdataobjectprop); + signdataobjectprop.appendChild(dataobjformat); + dataobjformat.appendChild(mimetype); + mimetype.appendChild(mimevalue); + + + + return qualprop; + } + + + 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=\"DSAinPKCS12\"> <Key id=\"DSA.512.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\"/>"+ +"</MOAConfiguration>"; + + + /*"<MOAConfiguration>\n"+ + " <KeyGroup id=\"PKCS12RSAKey1\"/> <!-- mapped auf \"test(1234).p12\" -->\n"+ + "</MOAConfiguration>\n"+ + "<!-- 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(); + + String file_3 = configuration_.getProperty("baseDir") + datadirectory_3 + + "TestGeneratorCX3" + + ".Config.xml"; + + fos = new FileOutputStream(file_3); + fos.write(config.getBytes()); + fos.flush(); + fos.close(); + + String file_4 = configuration_.getProperty("baseDir") + datadirectory_4 + + "TestGeneratorCX4" + + ".Config.xml"; + + fos = new FileOutputStream(file_4); + fos.write(config.getBytes()); + fos.flush(); + fos.close(); + + } + + public void createL00() throws Exception { + createL001("1kb"); + createL001("10kb"); + createL001("20kb"); + createL001("50kb"); + createL001("100kb"); + createL001("500kb"); + createL001("1mb"); + createL001("10mb"); + } + + public void createL001(String filename) throws Exception { + String TestNumber = "001"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory_l+filename+"/" + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\">\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\" ChildOfManifest=\"false\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/"+filename+".txt\"/>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory_l+filename+"/" + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12Sig(TestNumber,configuration_.getProperty("webbaseDir")+"resources/"+filename+".txt"); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + } + + /* ==================================================================================================== */ + + public void create001() throws Exception { + + String TestNumber = "001"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\">\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\" ChildOfManifest=\"false\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testDaten.txt\"/>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12Sig(TestNumber,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + + + // CX3 wird gleich mit generiert + + String reqFile_3 = configuration_.getProperty("baseDir") + datadirectory_3 + + "TestGeneratorCX3" + + "."; + String reqFile_4 = configuration_.getProperty("baseDir") + datadirectory_4 + + "TestGeneratorCX4" + + "."; + + writeFile(reqFile_3+"001" + ".Req.xml",req); + writeFile(reqFile_4+"051" + ".Req.xml",req); + + req = replaceString(req,"PKCS12RSAKey1","PKCS12RSAKeyNotAllowed"); + + writeFile(reqFile_3+"052" + ".Req.xml",req); + + String resFile_3 = configuration_.getProperty("baseDir") + datadirectory_3 + + "TestGeneratorCX3" + + "." ; + String resFile_4 = configuration_.getProperty("baseDir") + datadirectory_4 + + "TestGeneratorCX4" + + "." ; + + writeFile(resFile_3+ "001" + ".Res.xml",erg); + writeFile(resFile_4+ "051" + ".ErrRes.xml","0000"); + writeFile(resFile_3+ "052" + ".ErrRes.xml","2231"); + + } + + public void writeFile(String filename,String data) throws Exception + { + BufferedWriter bw = new BufferedWriter(new FileWriter(filename)); + bw.write(data); + bw.close(); + } + + + public void create002() throws Exception { + + String TestNumber = "002"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\" ChildOfManifest=\"false\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testDaten.txt\"/>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12Sig(TestNumber,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + + } + + public void create003() throws Exception { + + String TestNumber = "003"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" ?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\" ChildOfManifest=\"false\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testDaten.txt\"/>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12Sig(TestNumber,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + + } + + public void create004() throws Exception { + + /*Properties config = new Properties(); + config.put("PKCS11_NATIVE_MODULE","cryptoki.dll"); + config.put("SLOT_ID","0"); + + Security.addProvider(new IAIK()); + IAIKPkcs11 pkcs11Provider_ = new IAIKPkcs11(config); + Security.addProvider(pkcs11Provider_); + + // load the keystore of the PKCS#11 provider given via input stream + KeyStore tokenKeyStore = pkcs11Provider_.getTokenManager().getKeyStore(); + + Object signatureKey = tokenKeyStore.getKey("HSMRSAKEY", null); + //System.out.println("got:"+signatureKey+" : "+signatureKey.getClass().getName()); + if(signatureKey instanceof IAIKPKCS11RsaPrivateKey) + { + System.out.println("GOT PRIVATE KEY:"+(IAIKPKCS11RsaPrivateKey)signatureKey); + java.security.cert.Certificate[] certificateChain = tokenKeyStore.getCertificateChain("HSMRSAKEY"); + X509Certificate signerCertificate = (X509Certificate) certificateChain[0]; + + } + if(signatureKey instanceof IAIKPKCS11RsaPublicKey) + { + System.out.println("GOT PUBLIC KEY:"+(IAIKPKCS11RsaPublicKey)signatureKey); + }*/ + + String TestNumber = "004"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" ?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>MOAHSMRSAKEY</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\" ChildOfManifest=\"false\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testDaten.txt\"/>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createHSMSig(TestNumber,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt",false,false,null,false); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + + } + + public void create005() throws Exception { + + String TestNumber = "005"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" ?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12ECDSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\" ChildOfManifest=\"false\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testSimple.txt\"/>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createECDSPKCS12Sig(TestNumber,configuration_.getProperty("webbaseDir")+"resources/testSimple.txt"); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + + } + + + public void create006() throws Exception { + + String TestNumber = "006"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + + writeFile(reqFile,""); + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + writeFile(resFile,"0000"); + } + + public void create007() throws Exception { + + String TestNumber = "007"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\" ChildOfManifest=\"false\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testSimple.txt\">\n"+ + " <XMLContent xml:space=\"preserve\">Dies sind Testdaten</XMLContent>\n"+ + " </DataObject>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12Sig(TestNumber,configuration_.getProperty("webbaseDir")+"resources/testSimple.txt"); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + + } + + public void create008() throws Exception { + + String TestNumber = "008"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\" ChildOfManifest=\"false\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testSimple.txt\">\n"+ + " <Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg==</Base64Content>\n"+ + " </DataObject>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12Sig(TestNumber,configuration_.getProperty("webbaseDir")+"resources/testSimple.txt"); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + + } + + + /* ==================================================================================================== */ + + public void create009() throws Exception { + + // based on create000() + + String TestNumber = "009"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"enveloping\" ChildOfManifest=\"false\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testSimple.txt\"/>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12SigWithEnveloping(TestNumber,"b64:Dies sind Testdaten"); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + + } + + public void create010() throws Exception { + + // based on create000() + + String TestNumber = "010"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"enveloping\" ChildOfManifest=\"false\">\n"+ + " <DataObject>\n"+ + " <XMLContent xml:space=\"preserve\"><Testdaten>Dies sind Testdaten</Testdaten></XMLContent>\n"+ + " </DataObject>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12SigWithEnveloping(TestNumber,"<Testdaten>Dies sind Testdaten</Testdaten>"); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + + } + + public void create011() throws Exception { + + // based on create000() + + String TestNumber = "011"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"enveloping\" ChildOfManifest=\"false\">\n"+ + " <DataObject>\n"+ + " <Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg==</Base64Content>\n"+ + " </DataObject>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12SigWithEnveloping(TestNumber,"b64:Dies sind Testdaten"); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + + } + + public void create012() throws Exception { + + // based on create000() + + String TestNumber = "012"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\" >\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testSimple.txt\">\n"+ + " <XMLContent xml:space=\"preserve\">Dies sind Testdaten</XMLContent>\n"+ + " </DataObject>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12Sig(TestNumber,configuration_.getProperty("webbaseDir")+"resources/testSimple.txt"); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + + } + + + public void create013() throws Exception { + + // based on create000() + + String TestNumber = "013"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\" ChildOfManifest=\"true\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testDaten.txt\" />\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12Sig(TestNumber,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt",false,true); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + + } + + public void create014() throws Exception { + + // based on create000() + + String TestNumber = "014"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"true\">\n"+ + " <DataObjectInfo Structure=\"detached\" ChildOfManifest=\"false\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testUTF8.txt\" />\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12SigSL(TestNumber,configuration_.getProperty("webbaseDir")+"resources/testUTF8.txt"); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + + } + + public void create015() throws Exception { + + // based on create000() + + String TestNumber = "015"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testDaten.txt\"/>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " <DataObjectInfo Structure=\"detached\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testSimple.txt\"/>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12Sig(TestNumber,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt",false,false,configuration_.getProperty("webbaseDir")+"resources/testSimple.txt",false); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + + } + + public void create016() throws Exception { + + // based on create000() + + String TestNumber = "016"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"enveloping\">\n"+ + " <DataObject>\n"+ + " <XMLContent xml:space=\"preserve\">Dies sind Testdaten</XMLContent>\n"+ + " </DataObject>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " <DataObjectInfo Structure=\"enveloping\">\n"+ + " <DataObject>\n"+ + " <XMLContent xml:space=\"preserve\">Dies sind Testdaten</XMLContent>\n"+ + " </DataObject>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12Sig(TestNumber,"Dies sind Testdaten",true,false,"Dies sind Testdaten",true); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + + } + + public void create017() throws Exception { + + // based on create000() + + String TestNumber = "017"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testDaten.txt\"/>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " <DataObjectInfo Structure=\"enveloping\">\n"+ + " <DataObject>\n"+ + " <XMLContent xml:space=\"preserve\">Dies sind Testdaten</XMLContent>\n"+ + " </DataObject>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12Sig(TestNumber,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt",false,false,"Dies sind Testdaten",true); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + + } + + public void create018() throws Exception { + + // based on create000() + + String TestNumber = "018"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testDaten.txt\"/>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testDaten.txt\"/>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12Sig(TestNumber,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); + Document signatureDoc2 = createPKCS12Sig(TestNumber,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt","id","id"); + + String erg = makeOutputFile(signatureDoc,signatureDoc2); + + writeFile(resFile,erg); + + } + + public void create019() throws Exception { + + String TestNumber = "019"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"enveloping\" ChildOfManifest=\"false\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testXML.txt\"/>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/xml</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Res.xml"; + + Document signatureDoc = createPKCS12SigWithEnveloping(TestNumber,"b64:"+readFile(configuration_.getProperty("baseDir")+"resources/testXML.txt")); + + String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,erg); + } + + public void create064() throws Exception { + + // based on create000() + + String TestNumber = "064"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"enveloping\" ChildOfManifest=\"false\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"testDatenFalsch.txt\">\n"+ + " <Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg==</Base64Content>\n"+ + " </DataObject>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".ErrRes.xml"; + + //Document signatureDoc = createPKCS12SigWithEnveloping(TestNumber,"Dies sind Testdaten"); + + //String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,"1110"); + + } + + + public void create051() throws Exception { + + String TestNumber = "051"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\" ChildOfManifest=\"false\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testDaten.txt\"/>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " <SuperExtraElementThatShouldNotBeValidWithTheSchema/>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".ErrRes.xml"; + + writeFile(resFile,"1100"); + + } + + public void create052() throws Exception { + + String TestNumber = "052"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = this.replaceString(defaultblock,"version=\"1.0\"",""); + + writeFile(reqFile,req); + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".ErrRes.xml"; + + writeFile(resFile,"0000"); + + } + + public void create053() throws Exception { + + String TestNumber = "053"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = this.replaceString(defaultblock,"version=\"1.0\"","version=\"5.0alpha3\""); + + writeFile(reqFile,req); + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".ErrRes.xml"; + + writeFile(resFile,"0000"); + + } + + public void create054() throws Exception { + + String TestNumber = "054"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = this.replaceString(defaultblock,"ISO-8859-1","SuperSvenEncoding:)"); + + writeFile(reqFile,req); + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".ErrRes.xml"; + + writeFile(resFile,"0000"); + + } + + public void create055() throws Exception { + + String TestNumber = "055"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = this.replaceString(defaultblock,"xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"","xmlns=\"http://www.w3.org/2000/09/svens_schema#\""); + + writeFile(reqFile,req); + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".ErrRes.xml"; + + writeFile(resFile,"1100"); + + } + + public void create056() throws Exception { + + String TestNumber = "056"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = this.replaceString(defaultblock,"PKCS12RSAKey1","wrong_value_KeyIdentifier"); + + writeFile(reqFile,req); + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".ErrRes.xml"; + + writeFile(resFile,"2231"); + + } + + public void create057() throws Exception { + + String TestNumber = "057"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = this.replaceString(defaultblock,"PKCS12RSAKey1","PKCS12RSAKeyExpired"); + + writeFile(reqFile,req); + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".ErrRes.xml"; + + writeFile(resFile,"2220"); + + } + + public void create058() throws Exception { + + String TestNumber = "058"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = this.replaceString(defaultblock,"PKCS12RSAKey1","DSAinPKCS12"); + + writeFile(reqFile,req); + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".ErrRes.xml"; + + writeFile(resFile,"2220"); + + } + + public void create059() throws Exception { + + String TestNumber = "059"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = this.replaceString(defaultblock,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt",configuration_.getProperty("webbaseDir")+"not_here.txt"); + + writeFile(reqFile,req); + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".ErrRes.xml"; + + writeFile(resFile,"2208"); + + } + + /* + + public String defaultblock = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\" ChildOfManifest=\"false\">\n"+ + " <DataObject Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testDaten.txt\">\n"+ + " <!-- Hint -->\n"+ + " </DataObject>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + */ + + public void create060() throws Exception { + + String TestNumber = "060"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = this.replaceString(defaultblock,"Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testDaten.txt\"",""); + /*req = this.replaceString(req,"<CreateTransformsInfoProfile>",""); + req = this.replaceString(req,"<CreateTransformsInfo>",""); + req = this.replaceString(req,"<FinalDataMetaInfo>",""); + req = this.replaceString(req,"<MimeType>text/plain</MimeType>",""); + req = this.replaceString(req,"</FinalDataMetaInfo>",""); + req = this.replaceString(req,"</CreateTransformsInfo>",""); + req = this.replaceString(req,"</CreateTransformsInfoProfile>","");*/ + + writeFile(reqFile,req); + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".ErrRes.xml"; + + writeFile(resFile,"1102"); + + } + + public void create061() throws Exception { + + String TestNumber = "061"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = this.replaceString(defaultblock,"Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testDaten.txt\"",""); + req = this.replaceString(req,"<!-- Hint -->","<XMLContent xml:space=\"preserve\"><DieserTagIstNichtZu></XMLContent>"); + + writeFile(reqFile,req); + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".ErrRes.xml"; + + writeFile(resFile,"0000"); + + } + + public void create062() throws Exception { + + String TestNumber = "062"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = this.replaceString(defaultblock,"Reference=\""+configuration_.getProperty("webbaseDir")+"resources/testDaten.txt\"",""); + req = this.replaceString(req,"<!-- Hint -->","<Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg=</Base64Content>"); + + writeFile(reqFile,req); + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".ErrRes.xml"; + + writeFile(resFile,"1100"); + + } + + public void create063() throws Exception { + + String TestNumber = "063"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = this.replaceString(defaultblock,"<MimeType>text/plain</MimeType>","<MimeType>something/some thing/something</MimeType>"); + + writeFile(reqFile,req); + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".ErrRes.xml"; + + writeFile(resFile,"1100"); + + } + + public void create065() throws Exception { + + String TestNumber = "065"; + String reqFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".Req.xml"; + String req = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<CreateXMLSignatureRequest\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" >\n"+ + " <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>\n"+ + " <SingleSignatureInfo SecurityLayerConformity=\"false\">\n"+ + " <DataObjectInfo Structure=\"detached\" ChildOfManifest=\"false\">\n"+ + " <DataObject>\n"+ + " <XMLContent xml:space=\"preserve\">Dies sind Testdaten</XMLContent>\n"+ + " </DataObject>\n"+ + " <CreateTransformsInfoProfile>\n"+ + " <CreateTransformsInfo>\n"+ + " <FinalDataMetaInfo>\n"+ + " <MimeType>text/plain</MimeType>\n"+ + " </FinalDataMetaInfo>\n"+ + " </CreateTransformsInfo>\n"+ + " </CreateTransformsInfoProfile>\n"+ + " </DataObjectInfo>\n"+ + " </SingleSignatureInfo>\n"+ + "</CreateXMLSignatureRequest>"; + + writeFile(reqFile,req); + + /* ---------------------------------------------------------------------------------------------------- */ + + String resFile = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + "." + TestNumber + ".ErrRes.xml"; + + //Document signatureDoc = createPKCS12Sig(TestNumber,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); + + //String erg = makeOutputFile(signatureDoc); + + writeFile(resFile,"1102"); + + } + + + + + 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\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " >"+ + //" xmlns:etsi=\"http://uri.etsi.org/01903/v1.1.1#\">\n"+ + "<SignatureEnvironment>" + + erg + "</SignatureEnvironment></CreateXMLSignatureResponse>"; + + return erg; + } + + public String makeOutputFile(Document signatureDoc,Document signatureDoc2) 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); + + foundNodes.clear(); + findNode(signatureDoc2.getDocumentElement(),"dsig:Signature",foundNodes); + + outputNode = null; + + if(foundNodes.size()>0) + { + outputNode = (Node)foundNodes.get(0); + } + + String erg2 = Node2String(outputNode); + + // remove the <?xml ?> Prologue + pos = erg2.indexOf("<dsig"); + erg2 = erg2.substring(pos); + + // insert the dsig:signature element in a MOA Response Message + erg = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"+ + "<CreateXMLSignatureResponse\n" + + " xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\"\n"+ + " >"+ + "<SignatureEnvironment>" + + erg +"</SignatureEnvironment><SignatureEnvironment>"+erg2+"</SignatureEnvironment> </CreateXMLSignatureResponse>"; + + //erg = replaceString(erg,"Id=\"signature-1-1\"","Id=\"signature-2-1\""); + //erg = replaceString(erg,"Id=\"reference-1-1\"","Id=\"reference-2-1\""); + + + return erg; + } + + public String readFile(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"); + } + return data.toString();*/ + + RandomAccessFile raf = new RandomAccessFile(filename, "r"); + if (raf.length() > Integer.MAX_VALUE) + throw new IOException("file too big to fit in byte array."); + + byte[] result = new byte[(int) raf.length()]; + + raf.read(result); + + return new String(result); + + } + +} + |