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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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(""+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(""+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(""+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(""+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 = ""+ " "+ " "+ " "+ " "+ " "+ " "+ " "+ " "+ " "+ ""; /*"\n"+ " \n"+ "\n"+ "" + "";*/ 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " MOAHSMRSAKEY\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12ECDSAKey1\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " Dies sind Testdaten\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " RGllcyBzaW5kIFRlc3RkYXRlbg==\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " Dies sind Testdaten\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; writeFile(reqFile,req); /* ---------------------------------------------------------------------------------------------------- */ String resFile = configuration_.getProperty("baseDir") + datadirectory + configuration_.getProperty("TestClass") + "." + TestNumber + ".Res.xml"; Document signatureDoc = createPKCS12SigWithEnveloping(TestNumber,"Dies sind 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " RGllcyBzaW5kIFRlc3RkYXRlbg==\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " Dies sind Testdaten\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " Dies sind Testdaten\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " Dies sind Testdaten\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " Dies sind Testdaten\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/xml\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " RGllcyBzaW5kIFRlc3RkYXRlbg==\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; */ 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,"",""); req = this.replaceString(req,"",""); req = this.replaceString(req,"",""); req = this.replaceString(req,"text/plain",""); req = this.replaceString(req,"",""); req = this.replaceString(req,"",""); req = this.replaceString(req,"","");*/ 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,"",""); 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,"","RGllcyBzaW5kIFRlc3RkYXRlbg="); 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,"text/plain","something/some thing/something"); 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 = "" + "\n"+ " PKCS12RSAKey1\n"+ " \n"+ " \n"+ " \n"+ " Dies sind Testdaten\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " text/plain\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; 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 Prologue int pos = erg.indexOf(""+ ""+ //" xmlns:etsi=\"http://uri.etsi.org/01903/v1.1.1#\">\n"+ "" + erg + ""; 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 Prologue int pos = erg.indexOf("0) { outputNode = (Node)foundNodes.get(0); } String erg2 = Node2String(outputNode); // remove the Prologue pos = erg2.indexOf(""+ ""+ "" + erg +""+erg2+" "; //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); } }