From 8c769bae2d6d71677ce71a299d618957029ab4ac Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@d688527b-c9ab-4aba-bd8d-4036d912da1d> Date: Mon, 10 Apr 2006 08:46:26 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'Build_ID-1_3_1'. git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/tags/Build_ID-1_3_1@704 d688527b-c9ab-4aba-bd8d-4036d912da1d --- spss.test/src/ExportECDSA.java | 249 -- .../moa/spss/client/call/MOACaller.java | 38 - .../spss/client/call/SignatureCreationCaller.java | 23 - .../client/call/SignatureVerificationCaller.java | 28 - spss.test/src/testclient/LasttestClient.java | 389 --- spss.test/src/testclient/TestClient.java | 1665 ----------- spss.test/src/testgenerator/CMSKeyStore.java | 198 -- .../src/testgenerator/CMSKeyStoreConstants.java | 51 - .../src/testgenerator/CreatePKCSSignature.java | 874 ------ spss.test/src/testgenerator/DataGenerator.java | 45 - spss.test/src/testgenerator/EtsiProperties.java | 113 - spss.test/src/testgenerator/LauchAll.java | 28 - spss.test/src/testgenerator/LaunchVX.java | 24 - spss.test/src/testgenerator/Pass.java | 22 - spss.test/src/testgenerator/SetupCMSKeyStore.java | 671 ----- .../SignatureManifestCheckParams.java | 176 -- spss.test/src/testgenerator/Supplement.java | 62 - spss.test/src/testgenerator/TestCMS.java | 118 - spss.test/src/testgenerator/TestCases.java | 611 ---- spss.test/src/testgenerator/TestGeneratorCX0.java | 2940 -------------------- spss.test/src/testgenerator/TestGeneratorCX1.java | 1054 ------- spss.test/src/testgenerator/TestGeneratorCX2.java | 1050 ------- .../src/testgenerator/TestGeneratorFeature41.java | 1167 -------- spss.test/src/testgenerator/TestGeneratorVC0.java | 1057 ------- spss.test/src/testgenerator/TestGeneratorVX.java | 2793 ------------------- spss.test/src/testgenerator/TestGeneratorVX2.java | 1600 ----------- .../src/testgenerator/TestGeneratorVXErrors.java | 1775 ------------ spss.test/src/testgenerator/TestPKCS12.java | 107 - spss.test/src/testgenerator/VXResponseBean.java | 180 -- 29 files changed, 19108 deletions(-) delete mode 100644 spss.test/src/ExportECDSA.java delete mode 100644 spss.test/src/at/gv/egovernment/moa/spss/client/call/MOACaller.java delete mode 100644 spss.test/src/at/gv/egovernment/moa/spss/client/call/SignatureCreationCaller.java delete mode 100644 spss.test/src/at/gv/egovernment/moa/spss/client/call/SignatureVerificationCaller.java delete mode 100644 spss.test/src/testclient/LasttestClient.java delete mode 100644 spss.test/src/testclient/TestClient.java delete mode 100644 spss.test/src/testgenerator/CMSKeyStore.java delete mode 100644 spss.test/src/testgenerator/CMSKeyStoreConstants.java delete mode 100644 spss.test/src/testgenerator/CreatePKCSSignature.java delete mode 100644 spss.test/src/testgenerator/DataGenerator.java delete mode 100644 spss.test/src/testgenerator/EtsiProperties.java delete mode 100644 spss.test/src/testgenerator/LauchAll.java delete mode 100644 spss.test/src/testgenerator/LaunchVX.java delete mode 100644 spss.test/src/testgenerator/Pass.java delete mode 100644 spss.test/src/testgenerator/SetupCMSKeyStore.java delete mode 100644 spss.test/src/testgenerator/SignatureManifestCheckParams.java delete mode 100644 spss.test/src/testgenerator/Supplement.java delete mode 100644 spss.test/src/testgenerator/TestCMS.java delete mode 100644 spss.test/src/testgenerator/TestCases.java delete mode 100644 spss.test/src/testgenerator/TestGeneratorCX0.java delete mode 100644 spss.test/src/testgenerator/TestGeneratorCX1.java delete mode 100644 spss.test/src/testgenerator/TestGeneratorCX2.java delete mode 100644 spss.test/src/testgenerator/TestGeneratorFeature41.java delete mode 100644 spss.test/src/testgenerator/TestGeneratorVC0.java delete mode 100644 spss.test/src/testgenerator/TestGeneratorVX.java delete mode 100644 spss.test/src/testgenerator/TestGeneratorVX2.java delete mode 100644 spss.test/src/testgenerator/TestGeneratorVXErrors.java delete mode 100644 spss.test/src/testgenerator/TestPKCS12.java delete mode 100644 spss.test/src/testgenerator/VXResponseBean.java (limited to 'spss.test/src') diff --git a/spss.test/src/ExportECDSA.java b/spss.test/src/ExportECDSA.java deleted file mode 100644 index d47a0841b..000000000 --- a/spss.test/src/ExportECDSA.java +++ /dev/null @@ -1,249 +0,0 @@ -import iaik.asn1.structures.Name; -import iaik.pkcs.pkcs11.provider.IAIKPkcs11; -import iaik.pkcs.pkcs12.CertificateBag; -import iaik.pkcs.pkcs12.KeyBag; -import iaik.pkcs.pkcs12.PKCS12; -import iaik.security.provider.IAIK; - -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.security.Key; -import java.security.KeyStore; -import java.security.PrivateKey; -import java.security.Security; -import java.security.cert.CertificateFactory; -import java.security.cert.X509Certificate; -import java.util.Collection; -import java.util.Enumeration; -import java.util.Properties; - -/** - * @author Administrator - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class ExportECDSA { - - public static void main(String[] args) throws Exception { - iaik.security.provider.IAIK.addAsJDK14Provider(); - iaik.security.ecc.provider.ECCProvider.addAsProvider(); - - PKCS12 input = new PKCS12(new FileInputStream("C:\\eclipse\\workspace\\spss.server\\data\\deploy\\conf\\moa-spss\\keys\\ecc(ego).p12")); - input.decrypt("ego".toCharArray()); - KeyBag newkb = input.getKeyBag(); - System.out.println("KeyNew:"+newkb.getFriendlyName()); - System.out.println(newkb.getPrivateKey()); - CertificateBag newcbs[] = input.getCertificateBags(); - System.out.println(newcbs.length); - System.out.println("CertNew:"+newcbs[0].getFriendlyName()); - System.out.println(newcbs[0]); - System.out.println(newcbs[0].getCertificate().getSerialNumber().toString()); - System.out.println(((Name)newcbs[0].getCertificate().getSubjectDN()).getRFC2253String()); - } - - public static void main2(String[] args) throws Exception { - - - - /* Export P12 Cert in .Cer File * - PKCS12 pkcs12 = new PKCS12(new FileInputStream("resources/ecc(ego).p12")); - pkcs12.decrypt("ego".toCharArray()); - X509Certificate[] ret = CertificateBag.getCertificates(pkcs12.getCertificateBags()); - - byte []cert = ret[0].getEncoded(); - FileOutputStream fos = new FileOutputStream("cert1.cer"); - fos.write(cert); - fos.close(); - */ - - Properties config = new Properties(); - config.put("PKCS11_NATIVE_MODULE","cryptoki.dll"); - config.put("SLOT_ID","0"); - - IAIK iaik = new IAIK(); - Security.addProvider(iaik); - IAIKPkcs11 pkcs11Provider_ = new IAIKPkcs11(config); - Security.addProvider(pkcs11Provider_); - - KeyStore tokenKeyStore = pkcs11Provider_.getTokenManager().getKeyStore(); - tokenKeyStore.load(null,"0000".toCharArray()); - - byte [] keyid = {0x01,0x02,0x03,0x04}; - - PrivateKey k = (PrivateKey)tokenKeyStore.getKey("MOAHSMRSAKEY_cert",null); - KeyBag kb = new KeyBag(k,"MOAHSMRSAKEY_pri",keyid); - System.out.println("Key:"+k); - - java.security.cert.Certificate[] ret = tokenKeyStore.getCertificateChain("MOAHSMRSAKEY_cert"); - - System.out.println(ret.getClass().getName()); - - CertificateBag cb = new CertificateBag((iaik.x509.X509Certificate)ret[0],"MOAHSMRSAKEY_cert",keyid); - CertificateBag chain[] = new CertificateBag[1]; - chain[0] = cb; - System.out.println("Cert:"+cb); - FileOutputStream fos = new FileOutputStream("hsm.p12"); - - PKCS12 pkcs12 = new PKCS12(kb,chain); - System.out.println("Encrypting..."); - pkcs12.encrypt("moa".toCharArray()); - System.out.println("Write..."); - pkcs12.writeTo(fos); - fos.close(); - - - PKCS12 input = new PKCS12(new FileInputStream("hsm.p12")); - input.decrypt("moa".toCharArray()); - KeyBag newkb = input.getKeyBag(); - System.out.println("KeyNew:"+newkb.getFriendlyName()); - System.out.println(newkb.getPrivateKey()); - CertificateBag newcbs[] = input.getCertificateBags(); - System.out.println("CertNew:"+newcbs[0].getFriendlyName()); - System.out.println(newcbs[0]); - - } - - public static void test(String[] args) throws Exception { - iaik.security.provider.IAIK.addAsJDK14Provider(); - iaik.security.ecc.provider.ECCProvider.addAsProvider(); - - Properties config = new Properties(); - config.put("PKCS11_NATIVE_MODULE","cryptoki.dll"); - config.put("SLOT_ID","0"); - - IAIK iaik = new IAIK(); - Security.addProvider(iaik); - IAIKPkcs11 pkcs11Provider_ = new IAIKPkcs11(config); - Security.addProvider(pkcs11Provider_); - - KeyStore tokenKeyStore = pkcs11Provider_.getTokenManager().getKeyStore(); - tokenKeyStore.load(null,"0000".toCharArray()); - - FileInputStream inputStream = new FileInputStream("MOA.Serversignatur.TestECDSA.der"); - CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509", "IAIK"); - Collection certificateCollection = certificateFactory.generateCertificates(inputStream); - X509Certificate[] certificateChain = - (X509Certificate[]) certificateCollection.toArray(new X509Certificate[certificateCollection.size()]); - - System.out.println("Number of Cert:"+certificateCollection.size()); - - tokenKeyStore.setCertificateEntry("ECDSA_cert",certificateChain[0]); - - System.out.println("DONE"); - - 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("________________________________________________________________________________"); - } - } - - //tokenKeyStore.setCertificateEntry() - - /*IAIKPKCS11PublicKey key = (IAIKPKCS11PublicKey)tokenKeyStore.getKey("ECDSA_pub",null); - - ECDSAPublicKey pkcs11EcDsaPublicKey = (ECDSAPublicKey)key.getKeyObject(); - - ByteArrayAttribute ecdsaParamsAttribute = (ByteArrayAttribute) pkcs11EcDsaPublicKey.getEcdsaParams(); - ByteArrayAttribute ecPointAttribute = (ByteArrayAttribute) pkcs11EcDsaPublicKey.getEcPoint(); - - if (!ecdsaParamsAttribute.isPresent()) { - throw new IAIKPkcs11Exception("The PKCS#11 ECDSA key object does not possess a ECDSA parameters attribute."); - } - if (!ecPointAttribute.isPresent()) { - throw new IAIKPkcs11Exception("The PKCS#11 ECDSA key object does not possess a EC point attribute."); - } - - byte[] x509encodedPublicKey; - try { - byte[] encodedParameters = ecdsaParamsAttribute.getByteArrayValue(); - byte[] encodedPublicKeyValue = ecPointAttribute.getByteArrayValue(); - - ECDSAKeyFactory fact = new ECDSAKeyFactory(); - - // encoding the algorithm ID with the parameters - ObjectID OBJECT_ID_EC_KEY = new ObjectID("1.2.840.10045.2.1"); - AlgorithmID EC_ALGORITHM_ID = new AlgorithmID(OBJECT_ID_EC_KEY); - - - ASN1 parametersASN1 = new ASN1(encodedParameters); - - EC_ALGORITHM_ID.setParameter(parametersASN1.toASN1Object()); - - // encoding the X.509 subject public key info structure - SEQUENCE publicKeyInfo = new SEQUENCE(); - - publicKeyInfo.addComponent(EC_ALGORITHM_ID.toASN1Object()); - publicKeyInfo.addComponent(new BIT_STRING(encodedPublicKeyValue)); - - x509encodedPublicKey = DerCoder.encode(publicKeyInfo); - - } catch (CodingException ex) { - ex.printStackTrace(); - throw new InvalidKeySpecException("Error during encoding of ECDSA public key: " + ex.toString()); - } - - int size = 0; - - X509EncodedKeySpec keySpec = new X509EncodedKeySpec(x509encodedPublicKey); - byte [] enc = keySpec.getEncoded(); - size = enc.length; - - BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("ecdsakey.key")); - bos.write(enc); - bos.flush(); - bos.close(); - - byte [] data = new byte[size]; - - BufferedInputStream bis = new BufferedInputStream(new FileInputStream("ecdsakey.key")); - bis.read(data); - bis.close(); - - - ASN1Object asn1 = DerCoder.decode(data); - System.out.println("Objectcount:"+asn1.countComponents()); - ASN1Object asnobject1 = asn1.getComponentAt(0); - System.out.println(asnobject1); - - ASN1Object asnobject1_1 = asnobject1.getComponentAt(0); - System.out.println(asnobject1_1); - - ASN1Object asnobject1_2 = asnobject1.getComponentAt(1); - System.out.println(asnobject1_2); - - ASN1Object asnobject2 = asn1.getComponentAt(1); - System.out.println(asnobject2);*/ - - } -} diff --git a/spss.test/src/at/gv/egovernment/moa/spss/client/call/MOACaller.java b/spss.test/src/at/gv/egovernment/moa/spss/client/call/MOACaller.java deleted file mode 100644 index 13a06b2fb..000000000 --- a/spss.test/src/at/gv/egovernment/moa/spss/client/call/MOACaller.java +++ /dev/null @@ -1,38 +0,0 @@ -package at.gv.egovernment.moa.spss.client.call; - -import java.rmi.RemoteException; -import java.util.Vector; - -import javax.xml.namespace.QName; -import javax.xml.rpc.Call; -import javax.xml.rpc.Service; -import javax.xml.rpc.ServiceException; -import javax.xml.rpc.ServiceFactory; - -import org.apache.axis.message.SOAPBodyElement; -import org.w3c.dom.Element; - -/** - * @author Patrick Peck - * @version $Id$ - */ -public class MOACaller { - - protected Element doCall(QName serviceName, Element request, String endPoint) - throws RemoteException, ServiceException, Exception { - Service service = ServiceFactory.newInstance().createService(serviceName); - Call call = service.createCall(); - SOAPBodyElement body = - new SOAPBodyElement(request); - SOAPBodyElement[] params = new SOAPBodyElement[] {body}; - Vector responses; - SOAPBodyElement response; - - call.setTargetEndpointAddress(endPoint); - responses = (Vector) call.invoke(params); - response = (SOAPBodyElement) responses.get(0); - - return response.getAsDOM(); - } - -} diff --git a/spss.test/src/at/gv/egovernment/moa/spss/client/call/SignatureCreationCaller.java b/spss.test/src/at/gv/egovernment/moa/spss/client/call/SignatureCreationCaller.java deleted file mode 100644 index 0ca4a23c0..000000000 --- a/spss.test/src/at/gv/egovernment/moa/spss/client/call/SignatureCreationCaller.java +++ /dev/null @@ -1,23 +0,0 @@ -package at.gv.egovernment.moa.spss.client.call; - -import java.rmi.RemoteException; - -import javax.xml.namespace.QName; -import javax.xml.rpc.ServiceException; - -import org.w3c.dom.Element; - -/** - * @author Patrick Peck - * @version $Id$ - */ -public class SignatureCreationCaller extends MOACaller { - - private static final QName SERVICE_QNAME = new QName("SignatureCreation"); - - public Element createXMLSignature(Element request, String endPoint) - throws ServiceException, RemoteException, Exception { - return doCall(SERVICE_QNAME, request, endPoint); - } - -} diff --git a/spss.test/src/at/gv/egovernment/moa/spss/client/call/SignatureVerificationCaller.java b/spss.test/src/at/gv/egovernment/moa/spss/client/call/SignatureVerificationCaller.java deleted file mode 100644 index 612a1d345..000000000 --- a/spss.test/src/at/gv/egovernment/moa/spss/client/call/SignatureVerificationCaller.java +++ /dev/null @@ -1,28 +0,0 @@ -package at.gv.egovernment.moa.spss.client.call; - -import java.rmi.RemoteException; - -import javax.xml.namespace.QName; -import javax.xml.rpc.ServiceException; - -import org.w3c.dom.Element; - -/** - * @author Patrick Peck - * @version $Id$ - */ -public class SignatureVerificationCaller extends MOACaller { - - private static final QName SERVICE_QNAME = new QName("SignatureVerification"); - - public Element verifyCMSSignature(Element request, String endPoint) - throws ServiceException, RemoteException, Exception { - return doCall(SERVICE_QNAME, request, endPoint); - } - - public Element verifyXMLSignature(Element request, String endPoint) - throws ServiceException, RemoteException, Exception { - return doCall(SERVICE_QNAME, request, endPoint); - } - -} diff --git a/spss.test/src/testclient/LasttestClient.java b/spss.test/src/testclient/LasttestClient.java deleted file mode 100644 index 339b6609d..000000000 --- a/spss.test/src/testclient/LasttestClient.java +++ /dev/null @@ -1,389 +0,0 @@ -package testclient; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.io.PrintStream; -import java.io.RandomAccessFile; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.Date; - - -/** - * @author Sven - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class LasttestClient { - - - public int max_thread_count = 300; - public int thread_counter = 0; - public int error_count = 0; - public int turns = 0; - - public long max = 0; - public long min = Long.MAX_VALUE; - - public PrintStream Log = null; - - public boolean stop = false; - - private String readFile(String filename) throws Exception - { - 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); - - } - - - - public String buildRequest(String filename) throws Exception - { - String data = readFile(filename); - int index = data.indexOf(">"); - - String xml_head = data.substring(0,index+1); - data = data.substring(index+1); - //Log.println("Data2:\n"+data); - - data = - xml_head + - "\" "+ - "soap:encodingStyle=\"http://www.w3.org/2001/12/soap-encoding\"> "+ - " "+ - data + - ""+ - ""; - - if(data.indexOf("10.16.46.109")!=-1) - data = replaceString(data,"10.16.46.109","127.0.0.1"); - - System.out.println("Request:"+data); - - return data; - - } - - public String buildEndpoint(String request,String server) - { - String ep = null; - if(request.indexOf(""); - if(pos==-1) - { - return true; - } - else - { - return false; - } - } - - } - - private String replaceString( - String input, - String oldPart, - String newPart) - throws Exception { - String erg = null; - - //First Part - erg = input.substring(0, input.indexOf(oldPart)); - //Insert new Part - erg += newPart; - - //insert REST - erg - += input.substring( - input.indexOf(oldPart) + oldPart.length(), - input.length()); - - return erg; - } - - public static void main(String[] args) throws Exception - { - int sek = 0; - int turns = 0; - - if(args.length!=4) - { - System.out.println("Parameteranzahl falsch. Bitte verwenden Sie die Syntax "); - return; - } - - try { - sek = Integer.parseInt(args[2]); - if(args[3].equals("INF")) - { - turns = 0; - } - else - turns = Integer.parseInt(args[3]); - } - catch(NumberFormatException e) - { - System.out.println("Einer der Parameter (Requestanzahl oder Testanzahl) ist keine Zahl !"); - return; - } - - System.out.println("Starte Lastest mit folgenden Parametern ..."); - System.out.println("Requestdatei: "+args[0]); - System.out.println("ServerURL: "+args[1]); - System.out.println("Requests pro Sekunde: "+sek); - System.out.println("Durchläufe: "+(turns==0?"INF":turns+"")); - - - LasttestClient lc = new LasttestClient(); - //lc.startTest("data/CX0/TestGeneratorCX0.001.Req.xml","http://161.106.2.255:8080/",10,1000); - lc.startTest(args[0],args[1],sek,turns); - } -} - -class Dispatcher extends Thread -{ - private String request = null; - private String endpoint = null; - private LasttestClient parent = null; - private int max; - private int turns; - public Dispatcher(LasttestClient parent,String request,String endpoint,int max,int turns) - { - this.request = request; - this.endpoint = endpoint; - this.parent = parent; - this.max = max; - this.turns = turns; - } - - public void run() - { - this.setPriority(Thread.NORM_PRIORITY+1); - System.out.println("Dispatcher wird gestartet..."); - TestThread[] old_reqs = buildRequests(); - for(int turn_counter=0;turns==0?true:(turn_counter"); - if(pos==-1) - { - long diff = end-start; - if(parent.maxdiff) - { - parent.min=diff; - } - return true; - - } - else - { - return false; - } - } - - } - -} \ No newline at end of file diff --git a/spss.test/src/testclient/TestClient.java b/spss.test/src/testclient/TestClient.java deleted file mode 100644 index aac30499f..000000000 --- a/spss.test/src/testclient/TestClient.java +++ /dev/null @@ -1,1665 +0,0 @@ -package testclient; - -import iaik.ixsil.algorithms.Transform; -import iaik.ixsil.algorithms.TransformImplExclusiveCanonicalXML; -import iaik.ixsil.init.IXSILInit; -import iaik.ixsil.util.URI; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.io.PrintStream; -import java.io.RandomAccessFile; -import java.io.UTFDataFormatException; -import java.net.HttpURLConnection; -import java.net.URL; -import java.security.KeyStore; -import java.security.Principal; -import java.security.Security; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.Enumeration; -import java.util.Iterator; -import java.util.StringTokenizer; -import java.util.TreeMap; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.w3c.dom.Text; -import org.xml.sax.SAXParseException; - -import at.gv.egovernment.moa.spss.client.call.SignatureCreationCaller; -import at.gv.egovernment.moa.spss.client.call.SignatureVerificationCaller; -import at.gv.egovernment.moa.util.Base64Utils; -import at.gv.egovernment.moa.util.Constants; -import at.gv.egovernment.moa.util.DOMUtils; -import at.gv.egovernment.moa.util.XPathUtils; - -import com.sun.net.ssl.internal.ssl.Provider; - -/** - * @author Sven - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class TestClient -{ - - // stats - private int pos_ok = 0; - private int pos_nok = 0; - private int pos_exc = 0; - private int neg_ok = 0; - private int neg_nok = 0; - private int neg_exc = 0; - private long max_request = 0; - private long min_request = 99999; - private long all_request = 0; - private int count_all_request = 0; - private int count_tests = 0; - - private TreeMap suits = new TreeMap(); - private PrintStream Log = null; - private static File directory = null; - private static String directorystring = null; - private static Provider ssl_provider = null; - private static boolean ssl_connection = false; - private static String defaultserver = "http://localhost:8080/"; - private static String defaultdirectory = "data/feature41/"; - private static String server; - - private static boolean ignoreSignatureValue = false; - - // end points - private static String VERIFICATION_ENDPOINT = "moa-spss/services/SignatureVerification"; - private static String CREATION_ENDPOINT = "moa-spss/services/SignatureCreation"; - private static String SSL_VERIFICATION_ENDPOINT = null; - private static String SSL_CREATION_ENDPOINT = null; - - private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss.SSS"); - - // super cool stuff - private static ArrayList testtimes = new ArrayList(); - private static ArrayList testnames = new ArrayList(); - private static ArrayList testvalues = new ArrayList(); - private static ArrayList testerrors = new ArrayList(); - private static int ELEMS_MAX = 40; - private static String ELEMS_ICON = "O"; - private static String ELEMS_ICON_BAD = "X"; - - private static final boolean debug = true; - - public static void main(String[] args) - { - long start = System.currentTimeMillis(); - long end = 0; - System.out.println("Lade IXSIL ..."); - try - { - IXSILInit.init(new URI("init/properties/init.properties")); - } - catch (Exception e) - { - e.printStackTrace(); - System.exit(1); - } - - System.out.println("Starte TestClient @ " + sdf.format(new Date(start)) + "..."); - - if (args.length == 0) - { - directory = new File(defaultdirectory); - server = defaultserver; - System.out.println("DefaultPfad wird benutzt (" + directory.getPath() + ")"); - System.out.println("DefaultServer wird benutzt (" + server + ")"); - } - else if (args.length == 1) - { - System.out.println("Pfad " + args[0] + " wird benutzt "); - directory = new File(args[0]); - server = defaultserver; - System.out.println("DefaultServer wird benutzt (" + server + ")"); - } - else if (args.length == 2) - { - System.out.println("Pfad " + args[0] + " wird benutzt "); - directory = new File(args[0]); - System.out.println("Server " + args[1] + " wird benutzt "); - server = args[1]; - } - - VERIFICATION_ENDPOINT = server + VERIFICATION_ENDPOINT; - CREATION_ENDPOINT = server + CREATION_ENDPOINT; - TestClient tc = new TestClient(); - tc.run(); - end = System.currentTimeMillis(); - System.out.println("Ende TestClient @ " + sdf.format(new Date(end)) + "..."); - System.out.println("Durchlaufzeit: " + ((end - start) / 1000) + " sekunden"); - - } - - public void run() - { - ssl_provider = new Provider(); - Security.addProvider(ssl_provider); - Log = System.out; - try - { - prepareFiles(); - runSuits(); - } - catch (Exception e) - { - e.printStackTrace(); - } - - Log.println("----- Auswertung:"); - Log.println("----- Positiv Tests:" + (pos_ok + pos_nok + pos_exc)); - Log.println("----- OK:" + (pos_ok)); - Log.println("----- nicht OK:" + (pos_nok)); - Log.println("----- Exception aufgetreten:" + (pos_exc)); - Log.println("----- Negativ Test:" + (neg_ok + neg_nok + neg_exc)); - Log.println("----- OK:" + (neg_ok)); - Log.println("----- nicht OK:" + (neg_nok)); - Log.println("----- Exception aufgetreten:" + (neg_exc)); - Log.println("----- schnellste Anfrage:" + min_request + " ms"); - Log.println("----- langsamste Anfrage:" + max_request + " ms"); - if (count_all_request > 2) - Log.println( - "----- durchschnittliche Anfrage:" - + ((all_request - max_request - min_request) / (count_all_request - 2)) - + " ms"); - else if (count_all_request == 0) - Log.println("----- keine gültigen Messungen für Durchschnittsermittlung"); - else - Log.println("----- durchschnittliche Anfrage:" + ((all_request) / (count_all_request)) + " ms"); - } - - private void prepareFiles() throws Exception - { - - if (!directory.isDirectory()) - { - throw new Exception("Das angegebene Verzeichnis ist kein Verzeichnis. Bitte Pfad überprüfen."); - } - - directorystring = directory.getAbsolutePath(); - - String[] list = directory.list(); - for (int counter = 0; counter < list.length; counter++) - { - - if (list[counter].endsWith("Req.xml") - || list[counter].endsWith("Res.xml") - || list[counter].endsWith("Config.xml")) - { - String suitename = list[counter].substring(0, list[counter].indexOf(".")); - - if (!suits.containsKey(suitename)) - suits.put(suitename, null); - - ArrayList al = (ArrayList) suits.get(suitename); - if (al == null) - { - al = new ArrayList(); - suits.put(suitename, al); - } - al.add(list[counter]); - } - } - - } - - private void runSuits() - { - Iterator i = suits.keySet().iterator(); - while (i.hasNext()) - { - String suitename = (String) i.next(); - Log.println("Suite:" + suitename); - ArrayList al = (ArrayList) suits.get(suitename); - testtimes.clear(); - testnames.clear(); - testvalues.clear(); - testerrors.clear(); - runTests(al, suitename); - printGraph(testnames, testtimes, testvalues, testerrors, suitename); - } - } - - private void runTests(ArrayList testlist, String suitename) - { - TreeMap tests = new TreeMap(); - String config = null; - - int size = testlist.size(); - for (int counter = 0; counter < size; counter++) - { - String filename = (String) testlist.get(counter); - StringTokenizer st = new StringTokenizer(filename, "."); - String prefix = st.nextToken(); - String number = st.nextToken(); - - if (number.equals("Config")) - { - config = filename; - continue; - } - - ArrayList testfiles = null; - if (!tests.containsKey(number)) - { - testfiles = new ArrayList(); - tests.put(number, testfiles); - } - else - { - testfiles = (ArrayList) tests.get(number); - } - testfiles.add(filename); - } - - Iterator i = tests.keySet().iterator(); - while (i.hasNext()) - { - String number = (String) i.next(); - runTest((ArrayList) tests.get(number), null, number, suitename); - } - } - - private void runTest(ArrayList files, String config, String number, String suitename) - { - String request = null; - String response = null; - String errorresponse = null; - - //Log.println("Test:"+number+" Mit Config:"+config); - int size = files.size(); - for (int counter = 0; counter < size; counter++) - { - String filename = (String) files.get(counter); - //Log.println("File:"+filename); - if (filename.endsWith("ErrRes.xml")) - errorresponse = filename; - else if (filename.endsWith("Res.xml")) - response = filename; - else if (filename.endsWith("Req.xml")) - request = filename; - else - Log.println("Nicht relevant:" + filename); - } - - if (request != null) - { - for (int counter = 0; counter < 1; counter++) - { - if (response != null && errorresponse != null) - Log.println( - "Test " + number + " nicht gültig ! Sowohl Response als auch ErrorResponse vorhanden !"); - else if (response != null) - runPosTest(request, response, config, number, suitename); - else if (errorresponse != null) - runNegTest(request, errorresponse, config, number, suitename); - } - } - else - { - Log.println("Test " + number + " nicht gültig ! Kein Request vorhanden !"); - } - } - - private void runPosTest(String request, String response, String config, String number, String suitename) - { - long start = System.currentTimeMillis(); - long end = 0; - Log.println("\n----- Starte Test <" + number + "> (positiv) -----"); - Log.println("----- Request: " + request); - Log.println("----- Response: " + response); - try - { - long start_req = 0; - long end_req = 0; - - Log.println("----- Lade Request:" + directorystring + "/" + request); - FileInputStream fis = new FileInputStream(directorystring + "/" + request); - Document root_doc = DOMUtils.parseDocument(fis, false, Constants.ALL_SCHEMA_LOCATIONS, null); - Element root = root_doc.getDocumentElement(); - if (debug) - Log.println(DOMUtils.serializeNode(root)); - - Log.println("----- Lade Response:" + directorystring + "/" + response); - FileInputStream fis2 = new FileInputStream(directorystring + "/" + response); - Document root_response_doc = DOMUtils.parseDocument(fis2, true, Constants.ALL_SCHEMA_LOCATIONS, null); - Element root_response = root_response_doc.getDocumentElement(); - - //can_root_response.normalize(); - - if (request.endsWith("CX3.001.Req.xml")) - { - printKeyStoreInformation("./resources/client.keystore", "changeit"); - System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol"); - System.setProperty("javax.net.ssl.keyStore", "./resources/client.keystore"); - System.setProperty("javax.net.ssl.keyStorePassword", "changeit"); - System.setProperty("javax.net.ssl.trustStore", "./resources/client.keystore"); - System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); - - ssl_connection = true; - } - else - ssl_connection = false; - - if (request.endsWith("CX0.005.Req.xml")) // ECDSA - ignoreSignatureValue = true; - else - ignoreSignatureValue = false; - - boolean compare = false; - - Transform can = new TransformImplExclusiveCanonicalXML(); - can.setInput(XPathUtils.selectNodeList(root_response, XPathUtils.ALL_NODES_XPATH), null); - - InputStream is = (InputStream) can.transform(); - Document can_root_response_doc = - DOMUtils.parseDocument(is, true, Constants.ALL_SCHEMA_LOCATIONS, null); - Element can_root_response = root_response_doc.getDocumentElement(); - - if (checkNode(root, "VerifyCMSSignatureRequest")) - { - Log.println("----- Anfrage wird gesendet ..."); - SignatureVerificationCaller svc = new SignatureVerificationCaller(); - start_req = System.currentTimeMillis(); - Element root_serverresponse = svc.verifyCMSSignature(root, VERIFICATION_ENDPOINT); - end_req = System.currentTimeMillis(); - - Transform can2 = new TransformImplExclusiveCanonicalXML(); - can2.setInput(XPathUtils.selectNodeList(root_serverresponse, XPathUtils.ALL_NODES_XPATH), null); - InputStream is2 = (InputStream) can2.transform(); - - Document can_root_serverresponse_doc = - DOMUtils.parseDocument(is2, true, Constants.ALL_SCHEMA_LOCATIONS, null); - Element can_root_serverresponse = can_root_serverresponse_doc.getDocumentElement(); - if (debug) - Log.println("----- Antwort sollte so aussehen ...\n" + DOMUtils.serializeNode(can_root_response)); - if (debug) - Log.println("----- Antwort vom Server ...\n" + DOMUtils.serializeNode(can_root_serverresponse)); - - Log.println("----- Antwort validieren ...\n"); - DOMUtils.validateElement(can_root_serverresponse, Constants.ALL_SCHEMA_LOCATIONS, null); - Log.println("----- Antwort vergleichen ...\n"); - - String error = findErrorNode(can_root_serverresponse); - if (error != null) - { - compare = false; - Log.println("----- ServerError: " + error); - testerrors.add(error); - } - else - { - compare = compareElements(can_root_response, can_root_serverresponse); - testerrors.add(null); - } - - } - else if (checkNode(root, "VerifyXMLSignatureRequest")) - { - Log.println("----- Anfrage wird gesendet ..."); - SignatureVerificationCaller svc = new SignatureVerificationCaller(); - start_req = System.currentTimeMillis(); - Element root_serverresponse = svc.verifyXMLSignature(root, VERIFICATION_ENDPOINT); - end_req = System.currentTimeMillis(); - - Transform can2 = new TransformImplExclusiveCanonicalXML(); - can2.setInput(XPathUtils.selectNodeList(root_serverresponse, XPathUtils.ALL_NODES_XPATH), null); - InputStream is2 = (InputStream) can2.transform(); - - Document can_root_serverresponse_doc = - DOMUtils.parseDocument(is2, false, Constants.ALL_SCHEMA_LOCATIONS, null); - Element can_root_serverresponse = can_root_serverresponse_doc.getDocumentElement(); - - if (debug) - Log.println("----- Antwort sollte so aussehen ...\n" + DOMUtils.serializeNode(can_root_response)); - if (debug) - Log.println("----- Antwort vom Server ...\n" + DOMUtils.serializeNode(can_root_serverresponse)); - - Log.println("----- Antwort validieren ...\n"); - DOMUtils.validateElement(can_root_serverresponse, Constants.ALL_SCHEMA_LOCATIONS, null); - Log.println("----- Antwort vergleichen ...\n"); - String error = findErrorNode(can_root_serverresponse); - if (error != null) - { - compare = false; - Log.println("----- ServerError: " + error); - testerrors.add(error); - } - else - { - compare = compareElements(can_root_response, can_root_serverresponse); - testerrors.add(null); - } - } - else if (checkNode(root, "CreateXMLSignatureRequest")) - { - Log.println("----- Anfrage wird gesendet ..."); - SignatureCreationCaller scc = new SignatureCreationCaller(); - start_req = System.currentTimeMillis(); - Element root_serverresponse = scc.createXMLSignature(root, CREATION_ENDPOINT); - end_req = System.currentTimeMillis(); - - Transform can2 = new TransformImplExclusiveCanonicalXML(); - can2.setInput(XPathUtils.selectNodeList(root_serverresponse, XPathUtils.ALL_NODES_XPATH), null); - InputStream is2 = (InputStream) can2.transform(); - - Document can_root_serverresponse_doc = - DOMUtils.parseDocument(is2, false, Constants.ALL_SCHEMA_LOCATIONS, null); - Element can_root_serverresponse = can_root_serverresponse_doc.getDocumentElement(); - - if (debug) - Log.println("----- Antwort sollte so aussehen ...\n" + DOMUtils.serializeNode(can_root_response)); - //Log.println("----- Antwort vom Server (von Can)...\n"+DOMUtils.serializeNode(root_serverresponse)); - if (debug) - Log.println("----- Antwort vom Server ...\n" + DOMUtils.serializeNode(can_root_serverresponse)); - - Log.println("----- Antwort validieren ...\n"); - DOMUtils.validateElement(can_root_serverresponse, Constants.ALL_SCHEMA_LOCATIONS, null); - Log.println("----- Antwort vergleichen ...\n"); - - String error = findErrorNode(can_root_serverresponse); - if (error != null) - { - compare = false; - Log.println("----- ServerError: " + error); - testerrors.add(error); - } - else - { - compare = compareElements(can_root_response, can_root_serverresponse); - testerrors.add(null); - } - - } - else - { - throw new Exception("Responsetyp nicht bekannt"); - } - - if (compare) - { - pos_ok++; - testvalues.add(" OK"); - Log.println("----- Keine Fehler aufgetreten"); - } - else - { - pos_nok++; - testvalues.add("NOK"); - Log.println("----- Response war nicht ok !"); - } - - Date start_date = new Date(start_req); - Date end_date = new Date(end_req); - long diff = end_req - start_req; - Log.println("----- Requeststart: " + sdf.format(start_date)); - Log.println("----- Requestende: " + sdf.format(end_date)); - Log.println("----- Requestdauer: " + diff + " ms"); - if (diff > max_request) - max_request = diff; - if (diff < min_request) - min_request = diff; - all_request += diff; - count_all_request++; - - // :) - testtimes.add(new Long(diff)); - testnames.add(number); - } - catch (Exception e) - { - testtimes.add(new Long(-1L)); - testnames.add(number); - testvalues.add("EXC"); - testerrors.add(e.getMessage()); - pos_exc++; - Log.println("----- Exception:\n"); - e.printStackTrace(Log); - } - end = System.currentTimeMillis(); - Log.println("----- Durchlaufzeit: " + ((end - start) / 1000) + " sekunden"); - Log.println("----- Ende Test <" + number + "> -----\n"); - } - - private void runNegTest( - String request, - String errorresponse, - String config, - String number, - String suitename) - { - long start = System.currentTimeMillis(); - long end = 0; - Log.println("\n----- Starte Test <" + number + "> (negativ) -----"); - Log.println("----- Config: " + config); - Log.println("----- Request: " + request); - Log.println("----- ErrorResponse: " + errorresponse); - int error_no = 0; - try - { - - FileInputStream fis = null; - Document root_doc = null; - Element root = null; - long start_req = 0; - long end_req = 0; - - try - { - error_no = Integer.parseInt(readFile(directorystring + "/" + errorresponse)); - } - catch (NumberFormatException nfe) - { - throw new Exception( - "Fehler beim Lesen der Datei " - + directorystring - + "/" - + errorresponse - + ". Die Fehlernummer konnte nicht ermittelt werden"); - } - - try - { - Log.println("----- Lade Request: " + directorystring + "/" + request); - fis = new FileInputStream(directorystring + "/" + request); - root_doc = DOMUtils.parseDocument(fis, false, Constants.ALL_SCHEMA_LOCATIONS, null); - root = root_doc.getDocumentElement(); - } - catch (SAXParseException saxpe) - { - Log.println("Fehler beim Lesen der Requestdatei !"); - throw saxpe; - } - - try - { - if (request.endsWith("CX4.051.Req.xml")) - { - printKeyStoreInformation("./resources/sven.keystore", "example"); - System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol"); - System.setProperty("javax.net.ssl.keyStore", "./resources/sven.keystore"); - System.setProperty("javax.net.ssl.keyStorePassword", "example"); - System.setProperty("javax.net.ssl.trustStore", "./resources/sven.keystore"); - System.setProperty("javax.net.ssl.trustStorePassword", "example"); - - ssl_connection = true; - } - else if (request.endsWith("CX3.052.Req.xml")) - { - printKeyStoreInformation("./resources/client.keystore", "changeit"); - System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol"); - System.setProperty("javax.net.ssl.keyStore", "./resources/client.keystore"); - System.setProperty("javax.net.ssl.keyStorePassword", "changeit"); - System.setProperty("javax.net.ssl.trustStore", "./resources/client.keystore"); - System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); - - ssl_connection = true; - } - else - ssl_connection = false; - - Element root_serverresponse = null; - - if (checkNode(root, "VerifyCMSSignatureRequest")) - { - SignatureVerificationCaller svc = new SignatureVerificationCaller(); - start_req = System.currentTimeMillis(); - root_serverresponse = svc.verifyCMSSignature(root, VERIFICATION_ENDPOINT); - end_req = System.currentTimeMillis(); - Log.println(DOMUtils.serializeNode(root_serverresponse)); - } - else if (checkNode(root, "VerifyXMLSignatureRequest")) - { - SignatureVerificationCaller svc = new SignatureVerificationCaller(); - start_req = System.currentTimeMillis(); - root_serverresponse = svc.verifyXMLSignature(root, VERIFICATION_ENDPOINT); - end_req = System.currentTimeMillis(); - Log.println(DOMUtils.serializeNode(root_serverresponse)); - } - else if (checkNode(root, "CreateXMLSignatureRequest")) - { - SignatureCreationCaller svc = new SignatureCreationCaller(); - start_req = System.currentTimeMillis(); - root_serverresponse = svc.createXMLSignature(root, CREATION_ENDPOINT); - end_req = System.currentTimeMillis(); - Log.println(DOMUtils.serializeNode(root_serverresponse)); - } - - Transform can2 = new TransformImplExclusiveCanonicalXML(); - can2.setInput(XPathUtils.selectNodeList(root_serverresponse, XPathUtils.ALL_NODES_XPATH), null); - InputStream is2 = (InputStream) can2.transform(); - - Document can_root_serverresponse_doc = - DOMUtils.parseDocument(is2, false, Constants.ALL_SCHEMA_LOCATIONS, null); - Element can_root_serverresponse = can_root_serverresponse_doc.getDocumentElement(); - - int errno = getErrorNumber(can_root_serverresponse); - - if (errno == -1) - { - Log.println("Kein Fehler aufgetreten oder Fehlernummer konnte nicht ermittelt werden."); - neg_nok++; - testvalues.add("NOK"); - testerrors.add("Kein Fehler aufgetreten oder Fehlernummer konnte nicht ermittelt werden."); - } - else - { - Log.println("----- Fehlercode vom Server:" + errno); - Log.println("----- Fehlercode vom Test:" + error_no); - if (errno == error_no) - { - Log.println("Test erfolgreich !"); - testvalues.add(" OK"); - testerrors.add(null); - neg_ok++; - } - else - { - Log.println("Test nicht erfolgreich !"); - neg_nok++; - testvalues.add("NOK"); - testerrors.add("Fehlercodes nicht gleich: Server " + errno + " Client " + error_no); - } - } - - } - catch (org.apache.axis.AxisFault af) - { - end_req = System.currentTimeMillis(); - /* - * Sample Fault: - AxisFault - faultCode: {http://xml.apache.org/axis/}Server.userException - faultString: at.gv.egovernment.moa.spss.server.MOAApplicationException: Fehler beim Validieren der Anfrage - faultActor: null - faultDetail: - ErrorResponse: - 1100 - Fehler beim Validieren der Anfrage - */ - Element base = af.getFaultDetails()[0]; - System.out.println(DOMUtils.serializeNode(base)); - - int error_no_server = getErrorNumber(base); - if (error_no_server == -1) - { - Log.println("Kein Fehler aufgetreten oder Fehlernummer konnte nicht ermittelt werden."); - neg_nok++; - testvalues.add("NOK"); - testerrors.add("Kein Fehler aufgetreten oder Fehlernummer konnte nicht ermittelt werden."); - } - else - { - Log.println("----- Fehlercode vom Server:" + error_no_server); - Log.println("----- Fehlercode vom Test:" + error_no); - if (error_no_server == error_no) - { - Log.println("Test erfolgreich !"); - testvalues.add(" OK"); - testerrors.add(null); - neg_ok++; - } - else - { - Log.println("Test nicht erfolgreich !"); - neg_nok++; - testvalues.add("NOK"); - testerrors.add("Fehlercodes nicht gleich: Server " + error_no_server + " Client " + error_no); - } - } - } - long diff = end_req - start_req; - Log.println("----- Requestdauer: " + diff + " ms"); - if (diff > max_request) - max_request = diff; - if (diff < min_request) - min_request = diff; - all_request += diff; - count_all_request++; - testtimes.add(new Long(diff)); - testnames.add(number); - - } - catch (UTFDataFormatException e) - { - method2(request, error_no, number); - } - catch (SAXParseException e) - { - method2(request, error_no, number); - } - catch (Exception e) - { - neg_exc++; - testtimes.add(new Long(-1L)); - testnames.add(number); - testvalues.add("EXC"); - testerrors.add(e.getMessage()); - Log.println("----- Exception:\n"); - e.printStackTrace(Log); - } - end = System.currentTimeMillis(); - Log.println("----- Durchlaufzeit: " + ((end - start) / 1000) + " sekunden"); - Log.println("----- Ende Test <" + number + "> -----\n"); - } - - private void method2(String request, int error_no, String number) - { - try - { - Log.println("----- Methode 2\n"); - String data = readFile(directorystring + "/" + request); - //Log.println("Data:\n"+data); - int index = data.indexOf(">"); - if (index != -1) - { - String xml_head = data.substring(0, index); - data = data.substring(index + 1); - //Log.println("Data2:\n"+data); - - data = - xml_head - + "\" " - + "soap:encodingStyle=\"http://www.w3.org/2001/12/soap-encoding\"> " - + " " - + data - + "" - + ""; - //Log.println("Data3:\n"+data); - - String ep = null; - if (data.indexOf(""); - if (pos == -1) - { - Log.println("Test nicht erfolgreich !"); - neg_nok++; - testvalues.add("NOK"); - testtimes.add(new Long(-1)); - testnames.add(number); - testerrors.add("Test nicht erfolgreich !"); - } - else - { - resp = resp.substring(pos + "ErrorCode>".length()); - pos = resp.indexOf("<"); - if (pos == -1) - { - Log.println("Test nicht erfolgreich !"); - neg_nok++; - testvalues.add("NOK"); - testtimes.add(new Long(-1)); - testnames.add(number); - testerrors.add("Test nicht erfolgreich !"); - } - else - { - resp = resp.substring(0, pos); - - int err_resp = -1; - try - { - err_resp = Integer.parseInt(resp); - } - catch (NumberFormatException nfe) - { - } - //Log.println("ResponseCode:\n"+resp); - - Log.println("----- Fehlercode vom Server:" + err_resp); - Log.println("----- Fehlercode vom Test:" + error_no); - - if (err_resp == error_no) - { - Log.println("Test erfolgreich !"); - neg_ok++; - testvalues.add(" OK"); - testtimes.add(new Long(-1)); - testnames.add(number); - testerrors.add(null); - } - else - { - Log.println("Test nicht erfolgreich !"); - neg_ok++; - testvalues.add("NOK"); - testtimes.add(new Long(-1)); - testnames.add(number); - testerrors.add("Fehlercodes nicht gleich: Server " + err_resp + " Client " + error_no); - } - } - } - } - } - } - catch (Exception ee) - { - ee.printStackTrace(); - } - } - - private boolean compareElements(Element root1, Element root2) - { - //Log.println("----- Compare Elements:"+root1.getNodeName()+" "+root2.getNodeName()); - filterTree(root1); - filterTree(root2); - return compareNodes(root1, root2, 0, "root/", false); - } - - private boolean compareNodes(Node n1, Node n2, int level, String path, boolean attribute) - { - /*try { - Log.println(DOMUtils.serializeNode(n1)); - } - catch(Exception e) - { - e.printStackTrace(); - }*/ - boolean equal = false; - //Log.println("----- Compare Node "+level+":"+n1+" "+n2); - //Log.println("----- Compare Node "+level+":"+n1.getNodeName()+" "+n2.getNodeName()); - //Log.println("----- Checking:"+path+getPathString(n1)); - NodeList nl1 = n1.getChildNodes(); - NodeList nl2 = n2.getChildNodes(); - - int size1 = nl1.getLength(); - int size2 = nl2.getLength(); - - if (debug) - display_one(n1); - if (debug) - display_one(n2); - - if (debug) - if (n1.getNodeName().equals("Base64Content") && n2.getNodeName().equals("Base64Content")) - { - try - { - Log.println( - "CONT:" - + new String(Base64Utils.decode(strip(n1.getChildNodes().item(0).getNodeValue()), false))); - Log.println( - "CONT:" - + new String(Base64Utils.decode(strip(n2.getChildNodes().item(0).getNodeValue()), false))); - } - catch (Exception e) - { - e.printStackTrace(); - } - } - - if (size1 != size2) - { - Log.println( - "----- Anzahl der Kinder nicht gleich:" - + path - + getPathString(n1) - + "(" - + size1 - + ") / " - + getPathString(n2) - + "(" - + size2 - + ")"); - return false; - } - - equal = compareNodeExact(n1, n2, level, path + getPathString(n1) + "/"); - if (!equal) - { - Log.println("----- Knoten sind nicht identisch:" + path + getPathString(n1)); - return false; - } - - if (n1.hasAttributes() || n2.hasAttributes()) - { - equal = compareNodeAttriubtes(n1, n2, level + 1, path + getPathString(n1) + "/(a)"); - if (!equal) - { - Log.println("----- Attribute stimmen nicht überein:" + path + getPathString(n1)); - return false; - } - } - if (size1 == 0) - { - return true; - } - - for (int counter = 0; counter < size1; counter++) - { - boolean found = false; - Node comp_n1 = nl1.item(counter); - - //if(comp_n1==null) return false; - - Node comp_n2 = null; - size2 = nl2.getLength(); - for (int counter2 = 0; counter2 < size2; counter2++) - { - comp_n2 = nl2.item(counter2); - - /*equal = compareNodeExact(comp_n1,comp_n2,level+1); - if(equal) return false;*/ - //Log.println("COMP_N1:"+comp_n1); - //Log.println("COMP_N2:"+comp_n2); - equal = compareNodes(comp_n1, comp_n2, level + 1, path + getPathString(comp_n1) + "/", false); - if (equal) - { - n2.removeChild(comp_n2); - counter2 = size2; - nl2 = n2.getChildNodes(); - size2 = nl2.getLength(); - } - - } - - if (!equal) - { - Log.println("----- Keine Übereinstimmung gefunden:" + path + getPathString(comp_n1)); - return false; - } - } - return true; - } - - private boolean compareNodeExact(Node n1, Node n2, int level, String path) - { - if (n1.getNodeType() == Node.TEXT_NODE) - { - Text textnode = (Text) n1; - /*Log.println("----- *****"+textnode.getNodeName()); - Log.println("----- *****"+textnode.getParentNode().getNodeName()); - Log.println("----- *****"+textnode.getNodeValue());*/ - } - - //Log.println("----- Checking:"+path); - String n1_name = n1.getNodeName(); - String n2_name = n2.getNodeName(); - /*Log.println("----- !!!!!"+n1.getNodeName()); - Log.println("----- !!!!!"+n1.getNodeValue()); - Log.println("----- !!!!!"+n1.getLocalName()); - Log.println("----- !!!!!"+n1.getPrefix()); - Log.println("----- !!!!!"+n1.getNextSibling()); - Log.println("----- !!!!!"+n1.getPreviousSibling());*/ - - //Log.println("----- Compare Node "+level+":"+n1_name+" "+n2_name); - if (!((n1_name == null && n2_name == null) - || (n1_name != null && n2_name != null && n1_name.equals(n2_name)))) - { - Log.println("----- Name stimmt nicht überein:" + path); - return false; - } - - //Log.println("----- Compare Node "+level+":"+n1.getNodeType()+" "+n2.getNodeType()); - if (n1.getNodeType() != n2.getNodeType()) - { - Log.println("----- Knotentyp stimmt nicht überein:" + path); - return false; - } - - String n1_ns = n1.getPrefix(); - String n2_ns = n2.getPrefix(); - //Log.println("----- Compare Node "+level+":"+n1_ns+" "+n2_ns); - if (!((n1_ns == null && n2_ns == null) || (n1_ns != null && n2_ns != null && n1_ns.equals(n2_ns)))) - { - Log.println("----- NameSpace stimmt nicht überein:" + path); - return false; - } - - String n1_value = n1.getNodeValue(); - String n2_value = n2.getNodeValue(); - - boolean special = false; - special = specialValues(n1_value, n2_value, path); - if (special) - return true; - - //Log.println("----- Compare Node "+level+":"+n1_value+" "+n2_value); - if (!((n1_value == null && n2_value == null) - || (n1_value != null && n2_value != null && n1_value.equals(n2_value)))) - { - Log.println("----- Wert stimmt nicht überein:" + path); - Log.println("----- Value1:\n" + n1_value); - Log.println("----- Value2:\n" + n2_value); - return false; - } - - return true; - } - - private boolean compareNodeAttriubtesWithoutSize(Node n1, Node n2, int level, String path) - { - return true; - } - - private boolean compareNodeAttriubtes(Node n1, Node n2, int level, String path) - { - //Log.println("----- Compare NodeAttributes "+level+":"+n1.getNodeName()+" "+n2.getNodeName()); - Element n1elem = (Element) n1; - Element n2elem = (Element) n2; - - NamedNodeMap nnm1 = n1.getAttributes(); - NamedNodeMap nnm2 = n2.getAttributes(); - - int size1 = 0; - int size2 = 0; - - boolean specialattrs = specialAttributesSize(path); - - if (!specialattrs) - { - - if (nnm1 == null && nnm2 == null) - return true; - if (nnm1 == null || nnm2 == null) - { - Log.println("----- Anzahl der Attribute nicht gleich:" + path + ":" + getPathString(n1)); - return false; - } - size1 = nnm1.getLength(); - size2 = nnm2.getLength(); - - if (size1 != size2) - { - Log.println("----- Anzahl der Attribute nicht gleich:" + path + ":" + getPathString(n1)); - return false; - } - - } - else - { - return compareNodeAttriubtesWithoutSize(n1, n2, level, path); - } - - for (int counter = 0; counter < size1; counter++) - { - Node attribute_node1 = nnm1.item(counter); - Node attribute_node2 = nnm2.item(counter); - - String attr1_name = attribute_node1.getNodeName(); - String attr2_name = attribute_node2.getNodeName(); - - //Log.println("----- Checking:"+path+">"+attr1_name); - - String value1 = n1elem.getAttribute(attr1_name); - String value2 = n2elem.getAttribute(attr2_name); - - boolean special = false; - - special = specialAttributes(value1, value2); - if (special) - { - return special; - } - - if (!value1.equals(value2)) - { - Log.println("----- Keine Übereinstimmung gefunden:" + path + getPathString(n1)); - return false; - } - //Log.println("----- Compare NodeAttributes > "+level+":"+attribute_node1+" "+attribute_node2); - - /*boolean equal = compareNodes(attribute_node1,attribute_node2,level+1,path+attribute_node1.getNodeName()+"/",true); - if(!equal) - { - //Log.println("----- no match for:"+attribute_node1.getNodeName()); - return false; - }*/ - - } - - return true; - } - - private boolean checkNode(Node base, String name) - { - if (base.getNodeName().equals(name)) - { - return true; - } - - NodeList children = base.getChildNodes(); - int size = children.getLength(); - for (int counter = 0; counter < size; counter++) - { - boolean found = checkNode(children.item(counter), name); - if (found) - return true; - } - return false; - } - - private void display_one(Node base) - { - int att_size = 0; - if (base.getAttributes() != null) - { - att_size = base.getAttributes().getLength(); - } - if (base.getNodeName().equals("#text")) - Log.println( - base.getNodeName() - + base.getChildNodes().getLength() - + ":" - + att_size - + " (" - + base.getNodeValue() - + ")"); - else - Log.println(base.getNodeName() + base.getChildNodes().getLength() + ":" + att_size); - } - - private void display(Node base) - { - display(base, 1); - } - - private void display(Node base, int level) - { - String spacer = ""; - for (int counter = 0; counter < level; counter++) - { - spacer += " "; - } - - int att_size = 0; - if (base.getAttributes() != null) - { - att_size = base.getAttributes().getLength(); - } - if (base.getNodeName().equals("#text")) - Log.println( - spacer - + base.getNodeName() - + base.getChildNodes().getLength() - + ":" - + att_size - + " (" - + base.getNodeValue() - + ")"); - else - Log.println(spacer + base.getNodeName() + base.getChildNodes().getLength() + ":" + att_size); - - NodeList children = base.getChildNodes(); - int size = children.getLength(); - for (int counter = 0; counter < size; counter++) - { - display(children.item(counter), level + 1); - } - } - - private void filterTree(Node base) - { - ArrayList removeList = new ArrayList(); - - NodeList children = base.getChildNodes(); - int size = children.getLength(); - for (int counter = 0; counter < size; counter++) - { - Node child1 = children.item(counter); - if (child1.getNodeType() == Node.TEXT_NODE && child1.getNodeValue().trim().equals("")) - { - removeList.add(child1); - } - } - - size = removeList.size(); - for (int counter = 0; counter < size; counter++) - { - base.removeChild((Node) removeList.get(counter)); - } - - children = base.getChildNodes(); - size = children.getLength(); - for (int counter = 0; counter < size; counter++) - { - filterTree(children.item(counter)); - } - - } - - private String readFile(String filename) throws Exception - { - 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); - - } - - private String getPathString(Node n) - { - if (n.getNodeType() == Node.TEXT_NODE) - { - return n.getParentNode().getNodeName() + "(text)"; - } - else - { - return n.getNodeName(); - } - - } - - private String replaceString(String input, String oldPart, String newPart) throws Exception - { - String erg = null; - - //First Part - erg = input.substring(0, input.indexOf(oldPart)); - //Insert new Part - erg += newPart; - - //insert REST - erg += input.substring(input.indexOf(oldPart) + oldPart.length(), input.length()); - - return erg; - } - - private String replaceStringWithCheck(String input, String oldPart, String newPart) throws Exception - { - String erg = null; - - if (input.indexOf(oldPart) == -1) - return input; - - return replaceString(input, oldPart, newPart); - } - - private void printKeyStoreInformation(String keystore, String pw) throws Exception - { - KeyStore ks = KeyStore.getInstance("JKS", "SUN"); - ks.load(new FileInputStream(keystore), pw.toCharArray()); - Enumeration enum = ks.aliases(); - while (enum.hasMoreElements()) - { - String certname = (String) enum.nextElement(); - Log.println("Cert:" + certname); - sun.security.x509.X509CertImpl c = (sun.security.x509.X509CertImpl) ks.getCertificate(certname); - Principal p = c.getIssuerDN(); - Log.println(" Issuer:" + p.getName()); - p = c.getSubjectDN(); - Log.println(" Subject:" + p.getName()); - Log.println(" Serial:" + c.getSerialNumber()); - } - } - - private void printGraph( - ArrayList names, - ArrayList times, - ArrayList values, - ArrayList errors, - String suitename) - { - long max = getMax(times, names); - //Log.println("MAX:"+max); - if (max == -1) - { - Log.println("Kein Graph möglich !"); - return; - } - Log.println("names:" + names.size()); - Log.println("times:" + times.size()); - Log.println("values:" + values.size()); - Log.println("errors:" + errors.size()); - Log.println("# | Status | Suite:" + suitename); - int size = times.size(); - for (int counter = 0; counter < size; counter++) - { - String output = ""; - long value = ((Long) times.get(counter)).longValue(); - if (value != -1) - { - output = names.get(counter) + " | " + values.get(counter) + " | " + getElement(value, max); - - } - else - { - output = names.get(counter) + " | " + values.get(counter) + " | " + ELEMS_ICON_BAD; - } - - if (errors.get(counter) != null) - { - output += buildSpacer(70 - output.length()) + errors.get(counter); - } - Log.println(output); - } - - } - - private String getElement(long value, long max) - { - boolean plus = false; - int elems = (int) (((((double) value) / ((double) max)) * (ELEMS_MAX / 2))); - if (elems > ELEMS_MAX) - { - elems = ELEMS_MAX; - plus = true; - } - StringBuffer sb = new StringBuffer(); - for (int counter = 0; counter < elems; counter++) - { - sb.append(ELEMS_ICON); - } - for (int counter = 0; counter < (ELEMS_MAX - elems); counter++) - { - sb.append(" "); - } - if (plus) - sb.append("> "); - else - sb.append(" "); - - sb.append(value + " ms"); - - return sb.toString(); - } - - private long getMax(ArrayList times, ArrayList names) - { - int count = 0; - double sum = 0; - int size = times.size(); - for (int counter = 0; counter < size; counter++) - { - //Log.println(times.get(counter)+":"+names.get(counter)); - long value = ((Long) times.get(counter)).longValue(); - if (value != -1) - { - sum += value; - count++; - } - } - - if (count == 0) - return -1; - - return ((long) (sum / count)); - } - - private boolean specialAttributes(String value1, String value2) - { - //if(value1.startsWith("reference-") && value2.startsWith("reference-")) return true; - if (value1.startsWith("signature-") && value2.startsWith("signature-")) - return true; - - return false; - } - - private boolean specialAttributesSize(String path) - { - if (path.endsWith("/xsl:template/(a)")) - return true; - return false; - } - - private boolean specialValues(String value1, String value2, String path) - { - - //Log.println(path); - if (ignoreSignatureValue) - { - if (path.endsWith("/dsig:SignatureValue(text)/")) - { - return true; - } - } - else - { - if (path.endsWith("/dsig:SignatureValue(text)/")) - { - String stripped_1 = strip(value1); - String stripped_2 = strip(value2); - return stripped_1.equals(stripped_2); - } - } - - if (path.endsWith("/dsig:X509Certificate(text)/")) - { - String stripped_1 = strip(value1); - String stripped_2 = strip(value2); - return stripped_1.equals(stripped_2); - } - - if (path.endsWith("/dsig:Object(text)/")) - { - String stripped_1 = strip(value1); - String stripped_2 = strip(value2); - return stripped_1.equals(stripped_2); - } - - if (path.endsWith("/Base64Content(text)/")) - { - String stripped_1 = strip(value1); - String stripped_2 = strip(value2); - return stripped_1.equals(stripped_2); - } - - if (path.endsWith("/FailedReference(text)/")) - { - try - { - int stripped_1 = Integer.parseInt(value1); - int stripped_2 = Integer.parseInt(value2); - return stripped_1 == stripped_2; - } - catch (Exception e) - { - return false; - } - } - - return false; - } - - private String strip(String input) - { - String output = replaceStringAll(input, " ", ""); - output = replaceStringAll(output, "\n", ""); - output = replaceStringAll(output, "\r", ""); - return output; - } - - public static String replaceStringAll(String input, String oldPart, String newPart) - { - - String erg = null; - - int pos = input.indexOf(oldPart); - if (pos == -1) - return input; - - while (true) - { - - //First Part - pos = input.indexOf(oldPart); - if (pos == -1) - break; - erg = input.substring(0, pos); - - //Insert new Part - erg += newPart; - - //insert REST - erg += input.substring(input.indexOf(oldPart) + oldPart.length(), input.length()); - - input = erg; - } - return erg; - } - - private int getErrorNumber(Element root) - { - ArrayList result = new ArrayList(); - findNode(root, "ErrorCode", result); - if (result.size() != 1) - return -1; - Node n = (Node) result.get(0); - String text = (String) n.getChildNodes().item(0).getNodeValue(); - try - { - int error = Integer.parseInt(text); - return error; - } - catch (NumberFormatException nfe) - { - Log.println(text + " ist keine gültige Fehlernummer"); - return -1; - } - } - - private void findNode(Node base, String name, ArrayList foundNodes) - { - findNode(base, name, foundNodes, -1); - } - - private void findNode(Node base, String name, ArrayList foundNodes, int max_level) - { - findNode(base, name, foundNodes, max_level, 0); - } - - private void findNode(Node base, String name, ArrayList foundNodes, int max_level, int level) - { - if (max_level != -1 && max_level <= level) - return; - //System.out.println("FINDNODE "+name); - //System.out.println("CHECKING "+base.getNodeName()); - if (base.getNodeName().endsWith(name)) - { - //System.out.println("ADD BASE !"+name); - foundNodes.add(base); - } - - NodeList children = base.getChildNodes(); - int size = children.getLength(); - for (int counter = 0; counter < size; counter++) - { - findNode(children.item(counter), name, foundNodes, max_level, level + 1); - } - } - - private String findErrorNode(Node n) - { - ArrayList al = new ArrayList(); - findNode(n, "ErrorResponse", al); - if (al.size() != 0) - { - al.clear(); - findNode(n, "ErrorCode", al); - String code = ((Node) al.get(0)).getChildNodes().item(0).getNodeValue(); - al.clear(); - findNode(n, "Info", al); - String msg = ((Node) al.get(0)).getChildNodes().item(0).getNodeValue(); - - return "ErrorCode: " + code + " / ErrorMsg: " + msg; - } - else - return null; - } - - private String buildSpacer(int length) - { - if (length <= 0) - return ""; - else - { - StringBuffer output = new StringBuffer(); - for (int counter = 0; counter < length; counter++) - { - output.append(" "); - } - return output.toString(); - } - } - -} \ No newline at end of file diff --git a/spss.test/src/testgenerator/CMSKeyStore.java b/spss.test/src/testgenerator/CMSKeyStore.java deleted file mode 100644 index a85da893b..000000000 --- a/spss.test/src/testgenerator/CMSKeyStore.java +++ /dev/null @@ -1,198 +0,0 @@ -// Copyright (C) 1997-2002 IAIK -// email: jce-info@iaik.tu-graz.ac.at -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// $Header$ -// -// $Header$ -// - -package testgenerator; - -import iaik.utils.Util; -import iaik.x509.X509Certificate; - -import java.io.File; -import java.io.FileInputStream; -import java.security.KeyStore; -import java.security.PrivateKey; - -public class CMSKeyStore implements CMSKeyStoreConstants { - - static Object[][] certificates = new Object[3][7]; - static PrivateKey[][] keys = new PrivateKey[3][7]; - static X509Certificate[] ca_certificates = new X509Certificate[2]; - static PrivateKey[] ca_keys = new PrivateKey[2]; - - public final static int RSA = 0; - public final static int DSA = 1; - public final static int ESDH = 2; - - public final static int SZ_512_SIGN = 0; - public final static int SZ_1024_SIGN = 1; - public final static int SZ_2048_SIGN = 2; - public final static int SZ_512_CRYPT = 3; - public final static int SZ_1024_CRYPT = 4; - public final static int SZ_1024_CRYPT_ = 5; - public final static int SZ_2048_CRYPT = 6; - - static KeyStore key_store; - - static { - System.out.println("initializing KeyStore..."); - loadKeyStore(); - initKeyStore(); - } - - private static void loadKeyStore() { - // try to locate the KeyStore - // first check the current working directory - System.out.println("User.dir:"+System.getProperty("user.dir")); - File ks = new File(System.getProperty("user.dir"), KS_FILENAME); - if (!ks.exists()) { - System.out.println("Can not find the KeyStore in directory:"); - System.out.println(ks.getAbsolutePath()); - System.exit(1); - } - - // now try to create and load the KeyStore - try { - key_store = KeyStore.getInstance("IAIKKeyStore"); - key_store.load(new FileInputStream(ks), KS_PASSWORD); - } catch (Exception ex) { - System.out.println("Unable to load KeyStore!"); - ex.printStackTrace(); - System.exit(1); - } - } - - private static void initKeyStore() { - - try { - ca_certificates[RSA] = Util.convertCertificateChain(key_store.getCertificateChain(CA_RSA))[0]; - ca_keys[RSA] = (PrivateKey)key_store.getKey(CA_RSA, KS_PASSWORD); - - // RSA for signing - certificates[RSA][SZ_512_SIGN] = Util.convertCertificateChain(key_store.getCertificateChain(RSA_512_SIGN)); - keys[RSA][SZ_512_SIGN] = (PrivateKey)key_store.getKey(RSA_512_SIGN, KS_PASSWORD); - certificates[RSA][SZ_1024_SIGN] = Util.convertCertificateChain(key_store.getCertificateChain(RSA_1024_SIGN)); - keys[RSA][SZ_1024_SIGN] = (PrivateKey)key_store.getKey(RSA_1024_SIGN, KS_PASSWORD); - certificates[RSA][SZ_2048_SIGN] = Util.convertCertificateChain(key_store.getCertificateChain(RSA_2048_SIGN)); - keys[RSA][SZ_2048_SIGN] = (PrivateKey)key_store.getKey(RSA_2048_SIGN, KS_PASSWORD); - // RSA for encrypting - certificates[RSA][SZ_512_CRYPT] = Util.convertCertificateChain(key_store.getCertificateChain(RSA_512_CRYPT)); - keys[RSA][SZ_512_CRYPT] = (PrivateKey)key_store.getKey(RSA_512_CRYPT, KS_PASSWORD); - certificates[RSA][SZ_1024_CRYPT] = Util.convertCertificateChain(key_store.getCertificateChain(RSA_1024_CRYPT)); - keys[RSA][SZ_1024_CRYPT] = (PrivateKey)key_store.getKey(RSA_1024_CRYPT, KS_PASSWORD); - certificates[RSA][SZ_1024_CRYPT_] = Util.convertCertificateChain(key_store.getCertificateChain(RSA_1024_CRYPT_)); - keys[RSA][SZ_1024_CRYPT_] = (PrivateKey)key_store.getKey(RSA_1024_CRYPT_, KS_PASSWORD); - certificates[RSA][SZ_2048_CRYPT] = Util.convertCertificateChain(key_store.getCertificateChain(RSA_2048_CRYPT)); - keys[RSA][SZ_2048_CRYPT] = (PrivateKey)key_store.getKey(RSA_2048_CRYPT, KS_PASSWORD); - } catch (Exception ex) { - System.out.println("Unable to get RSA certificates from KeyStore."); - ex.printStackTrace(); - } - - try { - ca_certificates[DSA] = Util.convertCertificateChain(key_store.getCertificateChain(CA_DSA))[0]; - ca_keys[DSA] = (PrivateKey)key_store.getKey(CA_DSA, KS_PASSWORD); - - certificates[DSA][SZ_512_SIGN] = Util.convertCertificateChain(key_store.getCertificateChain(DSA_512)); - keys[DSA][SZ_512_SIGN] = (PrivateKey)key_store.getKey(DSA_512, KS_PASSWORD); - certificates[DSA][SZ_1024_SIGN] = Util.convertCertificateChain(key_store.getCertificateChain(DSA_1024)); - keys[DSA][SZ_1024_SIGN] = (PrivateKey)key_store.getKey(DSA_1024, KS_PASSWORD); - - } catch (Exception ex) { - System.out.println("Unable to get DSA certificate from KeyStore."); - ex.printStackTrace(); - } - - /*try { - certificates[ESDH][SZ_512_CRYPT] = Util.convertCertificateChain(key_store.getCertificateChain(ESDH_512)); - keys[ESDH][SZ_512_CRYPT] = (PrivateKey)key_store.getKey(ESDH_512, KS_PASSWORD); - certificates[ESDH][SZ_1024_CRYPT] = Util.convertCertificateChain(key_store.getCertificateChain(ESDH_1024)); - keys[ESDH][SZ_1024_CRYPT] = (PrivateKey)key_store.getKey(ESDH_1024, KS_PASSWORD); - certificates[ESDH][SZ_1024_CRYPT_] = Util.convertCertificateChain(key_store.getCertificateChain(ESDH_1024_)); - keys[ESDH][SZ_1024_CRYPT_] = (PrivateKey)key_store.getKey(ESDH_1024_, KS_PASSWORD); - certificates[ESDH][SZ_2048_CRYPT] = Util.convertCertificateChain(key_store.getCertificateChain(ESDH_2048)); - keys[ESDH][SZ_2048_CRYPT] = (PrivateKey)key_store.getKey(ESDH_2048, KS_PASSWORD); - } catch (Exception ex) { - System.out.println("Unable to get Diffie-Hellman certificate from KeyStore."); - ex.printStackTrace(); - }*/ - } - - /** - * Returns the private key of a CA certificate. - * - * @param type {@link #RSA RSA} or {@link #DSA DSA} or {@link #ESDH ESDH} - */ - public static PrivateKey getPrivateKey(int type, int size) { - try { - return keys[type][size]; - } catch (ArrayIndexOutOfBoundsException ex) { - throw new RuntimeException("Wrong type or size!"); - } - } - - /** - * Returns a demo user certificate. - * - * @param type {@link #RSA RSA} or {@link #DSA DSA} or {@link #ESDH ESDH} - */ - public static X509Certificate[] getCertificateChain(int type, int size) { - try { - return (X509Certificate[])certificates[type][size]; - } catch (ArrayIndexOutOfBoundsException ex) { - throw new RuntimeException("Wrong type or size!"); - } - } - - /** - * Returns the private key of a CA certificate. - * - * @param type {@link #RSA RSA} or {@link #DSA DSA} - */ - public static PrivateKey getCaPrivateKey(int type) { - try { - return ca_keys[type]; - } catch (ArrayIndexOutOfBoundsException ex) { - throw new RuntimeException("Wrong type or size!"); - } - } - - /** - * Returns a demo CA certificate. - * - * @param type {@link #RSA RSA} or {@link #DSA DSA} - */ - public static X509Certificate getCaCertificate(int type) { - try { - return ca_certificates[type]; - } catch (ArrayIndexOutOfBoundsException ex) { - throw new RuntimeException("Wrong type or size!"); - } - } -} diff --git a/spss.test/src/testgenerator/CMSKeyStoreConstants.java b/spss.test/src/testgenerator/CMSKeyStoreConstants.java deleted file mode 100644 index 6e4892d64..000000000 --- a/spss.test/src/testgenerator/CMSKeyStoreConstants.java +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (C) 1997-2002 IAIK -// email: jce-info@iaik.tu-graz.ac.at -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// $Header$ -// - -package testgenerator; - -public interface CMSKeyStoreConstants { - public final static String CA_RSA = "CA.RSA"; - public final static String CA_DSA = "CA.DSA"; - public final static String RSA_512_SIGN = "RSA_SIGN.512"; - public final static String RSA_512_CRYPT = "RSA_CRYPT.512"; - public final static String RSA_1024_SIGN = "RSA_SIGN.1024"; - public final static String RSA_1024_CRYPT = "RSA_CRYPT.1024"; - public final static String RSA_1024_CRYPT_ = "RSA_CRYPT_.1024"; - public final static String RSA_2048_SIGN = "RSA_SIGN.2048"; - public final static String RSA_2048_CRYPT = "RSA_CRYPT.2048"; - public final static String DSA_512 = "DSA.512"; - public final static String DSA_1024 = "DSA.1024"; - public final static String ESDH_512 = "ESDH.512"; - public final static String ESDH_1024 = "ESDH.1024"; - public final static String ESDH_1024_ = "ESDH_.1024"; - public final static String ESDH_2048 = "ESDH.2048"; - public final static String KS_FILENAME = "resources/cms.keystore"; - public final static char[] KS_PASSWORD = "topSecret".toCharArray(); -} - \ No newline at end of file diff --git a/spss.test/src/testgenerator/CreatePKCSSignature.java b/spss.test/src/testgenerator/CreatePKCSSignature.java deleted file mode 100644 index 896daf6d1..000000000 --- a/spss.test/src/testgenerator/CreatePKCSSignature.java +++ /dev/null @@ -1,874 +0,0 @@ -package testgenerator; - -import iaik.ixsil.algorithms.CanonicalizationAlgorithm; -import iaik.ixsil.algorithms.CanonicalizationAlgorithmImplCanonicalXML; -import iaik.ixsil.algorithms.CanonicalizationAlgorithmImplCanonicalXMLWithComments; -import iaik.ixsil.algorithms.CanonicalizationAlgorithmImplExclusiveCanonicalXML; -import iaik.ixsil.algorithms.CanonicalizationAlgorithmImplExclusiveCanonicalXMLWithComments; -import iaik.ixsil.algorithms.DigestAlgorithmImplSHA1; -import iaik.ixsil.algorithms.SignatureAlgorithmImplECDSA; -import iaik.ixsil.algorithms.SignatureAlgorithmImplRSA; -import iaik.ixsil.algorithms.Transform; -import iaik.ixsil.core.Position; -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.core.URIResolverParameters; -import iaik.ixsil.init.IXSILConstants; -import iaik.ixsil.keyinfo.KeyManagerImpl; -import iaik.ixsil.keyinfo.retrieval.KeyProviderImplRetrievalMethod; -import iaik.ixsil.keyinfo.retrieval.RetrievalMethod; -import iaik.ixsil.keyinfo.x509.KeyProviderImplX509Data; -import iaik.ixsil.keyinfo.x509.X509Data; -import iaik.ixsil.util.URI; -import iaik.pkcs.pkcs12.PKCS12; -import iaik.security.ecc.interfaces.ECDSAPrivateKey; -import iaik.utils.Base64OutputStream; -import java.io.ByteArrayOutputStream; -import java.security.cert.X509Certificate; -import java.security.interfaces.RSAPrivateKey; - -import javax.xml.parsers.DocumentBuilderFactory; - -import org.apache.xml.serialize.DOMWriterImpl; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.w3c.dom.Text; - - -/** - * @author Stevie (Admin) - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class CreatePKCSSignature extends TestCases{ - - private static final int canAlgCanXML = 1; - private static final int canAlgCanXMLwithCom = 2; - private static final int canAlgExcXML = 3; - private static final int canAlgExcXMLwithCom = 4; - - private Document doc; - public Signer signer; - private SignerSignature signature; - private SignerSignedInfo signedInfo; - private PKCS12 pkcs12; - private String x509CertString; - public CreatePKCSSignature() throws Exception { - iaik.security.provider.IAIK.addAsProvider(); - iaik.security.ecc.provider.ECCProvider.addAsProvider(); - } - - // Schritt 1 - - public void init() throws Exception{ - pkcs12 = decryptPKCS12( - configuration_.getProperty("PKCS12file"), - configuration_.getProperty("PKCS12password")); - - // Create signature generator - URI baseURI = new URI(IXSILConstants.DUMMY_ABSURI_); - signer = new Signer(baseURI); - - // Configure signed information - - // Get interface for signed information - signature = signer.getSignature(); - signedInfo = signer.getSignature().getSignerSignedInfo(); - - // Set signature algorithm - SignatureAlgorithmImplRSA signatureAlg = - new SignatureAlgorithmImplRSA(); - RSAPrivateKey privateKey = getPrivateKey(pkcs12); - signatureAlg.setSignerKey(privateKey); - signedInfo.setSignatureAlgorithm(signatureAlg); - - } - public void init(String iD) throws Exception{ - pkcs12 = decryptPKCS12( - configuration_.getProperty("PKCS12file"), - configuration_.getProperty("PKCS12password")); - - // Create signature generator - URI baseURI = new URI(IXSILConstants.DUMMY_ABSURI_); - signer = new Signer(baseURI); - - // Configure signed information - - // Get interface for signed information - signature = signer.getSignature(); - signedInfo = signer.getSignature().getSignerSignedInfo(); - - // Set signature algorithm - SignatureAlgorithmImplRSA signatureAlg = - new SignatureAlgorithmImplRSA(); - RSAPrivateKey privateKey = getPrivateKey(pkcs12); - signatureAlg.setSignerKey(privateKey); - signedInfo.setSignatureAlgorithm(signatureAlg); - signature.setId(iD); - } - - public void init(Document doc, Position position) throws Exception{ - pkcs12 = decryptPKCS12( - configuration_.getProperty("PKCS12file"), - configuration_.getProperty("PKCS12password")); - - // Create signature generator - URI baseURI = new URI(IXSILConstants.DUMMY_ABSURI_); - signer = new Signer(doc, baseURI, position); - - // Configure signed information - - // Get interface for signed information - signature = signer.getSignature(); - signedInfo = signer.getSignature().getSignerSignedInfo(); - - // Set signature algorithm - SignatureAlgorithmImplRSA signatureAlg = - new SignatureAlgorithmImplRSA(); - RSAPrivateKey privateKey = getPrivateKey(pkcs12); - signatureAlg.setSignerKey(privateKey); - signedInfo.setSignatureAlgorithm(signatureAlg); - - } - - public void init(Document doc, Position position,String iD) throws Exception{ - pkcs12 = decryptPKCS12( - configuration_.getProperty("PKCS12file"), - configuration_.getProperty("PKCS12password")); - - // Create signature generator - URI baseURI = new URI(IXSILConstants.DUMMY_ABSURI_); - signer = new Signer(doc, baseURI, position); - - // Configure signed information - - // Get interface for signed information - signature = signer.getSignature(); - signedInfo = signer.getSignature().getSignerSignedInfo(); - - // Set signature algorithm - SignatureAlgorithmImplRSA signatureAlg = - new SignatureAlgorithmImplRSA(); - RSAPrivateKey privateKey = getPrivateKey(pkcs12); - signatureAlg.setSignerKey(privateKey); - signedInfo.setSignatureAlgorithm(signatureAlg); - signature.setId(iD); - - } - - - public void initECDSA() throws Exception{ - pkcs12 = decryptPKCS12( - configuration_.getProperty("ECDSPKCS12file"), - configuration_.getProperty("ECDSPKCS12password")); - - // Create signature generator - URI baseURI = new URI(IXSILConstants.DUMMY_ABSURI_); - signer = new Signer(baseURI); - - // Configure signed information - - // Get interface for signed information - signature = signer.getSignature(); - signedInfo = signer.getSignature().getSignerSignedInfo(); - - // Set signature algorithm - SignatureAlgorithmImplECDSA signatureAlg = new SignatureAlgorithmImplECDSA(); - - ECDSAPrivateKey privateKey = (ECDSAPrivateKey)pkcs12.getKeyBag().getPrivateKey(); - - signatureAlg.setSignerKey(privateKey); - signedInfo.setSignatureAlgorithm(signatureAlg); - - SignerSignature signature = signer.getSignature(); - SignerSignedInfo signedInfo = signature.getSignerSignedInfo(); - - } - - // Schritt 2 - - public void setCanoncialization(int CanonicalizationMethodNumber) throws Exception - { - // Set canonicalization algorithm - CanonicalizationAlgorithm calg = null; - - switch (CanonicalizationMethodNumber) - { - case canAlgCanXML : - calg = new CanonicalizationAlgorithmImplCanonicalXML(); break; - case canAlgCanXMLwithCom : - calg = new CanonicalizationAlgorithmImplCanonicalXMLWithComments(); break; - case canAlgExcXML : - calg = new CanonicalizationAlgorithmImplExclusiveCanonicalXML(); break; - case canAlgExcXMLwithCom : - calg = new CanonicalizationAlgorithmImplExclusiveCanonicalXMLWithComments(); break; - } - - signedInfo.setCanonicalizationAlgorithm(calg); - - } - /** - * Method createReference. - * @param booelan env: if set, the data-string will be enveloped, else an uri pointing to data will be created - * @param data - * @throws Exception - */ - // Schritt 3.1 - - public void createEnvelopedDataObject(String iD, String data) throws Exception - { - iaik.ixsil.core.Object object = null; - object = signature.createObject(data); - object.setId(iD); - signature.addObject(object); - } - - public void createEnvelopedDataObject(String iD, Element doc) throws Exception - { - iaik.ixsil.core.Object object = null; - object = signature.createObject(doc); - object.setId(iD); - signature.addObject(object); - } - - public void createReference(URI uri, URI type) throws Exception - { - SignerReference reference = signedInfo.createReference(); - - reference.setURI(uri); - reference.setType(type); - DigestAlgorithmImplSHA1 digestAlg = - new DigestAlgorithmImplSHA1(); - - reference.setDigestAlgorithm(digestAlg); - signedInfo.addReference(reference); - - } - - public void createReference(boolean env, String data, String iD) throws Exception - { - SignerReference reference = signedInfo.createReference(); - - if (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())")); - } else { - // Create and configure reference - URI refURI = null; - String baseDir = configuration_.getProperty("baseDir"); - refURI = new URI(data); - - reference.setURI(refURI); - if (iD!=null) - reference.setId(iD); - DigestAlgorithmImplSHA1 digestAlg = - new DigestAlgorithmImplSHA1(); - reference.setDigestAlgorithm(digestAlg); - } - - signedInfo.addReference(reference); - - } - public void createReference(boolean env, String data) throws Exception - { - createReference(env,data,null); - } - - public void createETSIObjects(String data) throws Exception - { - SignerReference reference = signedInfo.createReference(); - - URI refURI = null; - refURI = new URI(data); - - 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")); - DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); - reference.setDigestAlgorithm(digestAlg); - - signedInfo.addReference(reference); - - iaik.ixsil.core.Object object = null; - object = signature.createObject(getElement("TEST")); - object.setId("etsi-signed-1-1"); - signature.addObject(object); - } - - 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/html"); - - 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 createReferenceEnvElement(Element data) throws Exception - { - SignerReference reference = signedInfo.createReference(); - - 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(Data/node())")); - - - signedInfo.addReference(reference); - - } - public void createReferenceWithTransforms(URI uriToData, Transform[] transforms) throws Exception - { - createReferenceWithTransforms(uriToData, transforms,null); - } - - public void createReferenceWithTransforms(URI uriToData, Transform[] transforms, String iD) throws Exception - { - SignerReference reference = signedInfo.createReference(); - - // Create and configure reference - URI refURI = null; - //String baseDir = configuration_.getProperty("baseDir"); - refURI = uriToData; - - reference.setURI(refURI); - if (iD!=null) - reference.setId(iD); - - DigestAlgorithmImplSHA1 digestAlg = - new DigestAlgorithmImplSHA1(); - reference.setDigestAlgorithm(digestAlg); - - for (int trNr=0; trNr < transforms.length; trNr++) - { - reference.insertTransformAt(transforms[trNr],trNr); - //transforms[trNr].transform(); - } - - signedInfo.addReference(reference); - - - } - public Element createReferenceWithManifest( - URI uriToData1, String iD1) throws Exception - { - return createReferencesWithManifest(uriToData1,iD1,null); - } - - public Element createReferenceWithManifest( - URI uriToData1, String iD1, String type) throws Exception - { - /* - public void createReferenceWithManifest( - URI uriToData1, String iD1, - URI uriToData2, String iD2 - ) throws Exception - */ - SignerReference reference = signedInfo.createReference(); - SignerManifest manifest = signer.createManifest(); - SignerReference manifestRef = manifest.createReference(); - - DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); - manifestRef.setDigestAlgorithm(digestAlg); - - manifestRef.setURI(uriToData1); - manifest.addReference(manifestRef); - - manifest.setId(iD1); - iaik.ixsil.core.Object manifestObject = - signature.createObject(manifest); - signature.addObject(manifestObject); - manifest.computeDigestValues(); - - reference = signedInfo.createReference(); - reference.setURI(new URI("#xpointer(id('"+iD1+"'))")); - if (type==null) - reference.setType( - new URI(IXSILConstants.REFERENCETYPE_ATTR_VALUE_MANIFEST_)); - else - reference.setType(new URI(type)); - - reference.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); - - // Add reference to signature - signedInfo.addReference(reference); - return manifest.toElement(); - } - - public Element createReferencesWithManifest( - URI uriToData1, String iD1, - URI uriToData2 - ) throws Exception - { - /* - public void createReferenceWithManifest( - URI uriToData1, String iD1, - URI uriToData2, String iD2 - ) throws Exception - */ - SignerReference reference = signedInfo.createReference(); - - SignerManifest manifest = signer.createManifest(); - - - DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); - - SignerReference manifestRef = manifest.createReference(); - manifestRef.setDigestAlgorithm(digestAlg); - manifestRef.setURI(uriToData1); - manifest.addReference(manifestRef); - - if (uriToData2!=null) - { - SignerReference manifestRef2 = manifest.createReference(); - manifestRef2.setDigestAlgorithm(digestAlg); - manifestRef2.setURI(uriToData2); - manifest.addReference(manifestRef2); - } - manifest.setId(iD1); - iaik.ixsil.core.Object manifestObject = - signature.createObject(manifest); - signature.addObject(manifestObject); - manifest.computeDigestValues(); - - reference = signedInfo.createReference(); - reference.setURI(new URI("#xpointer(id('"+iD1+"'))")); - reference.setType( - new URI(IXSILConstants.REFERENCETYPE_ATTR_VALUE_MANIFEST_)); - reference.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); - - // Add reference to signature - signedInfo.addReference(reference); - /* - if (iD2!=null) - { - SignerReference reference2 = signedInfo.createReference(); - SignerManifest manifest2 = signer.createManifest(); - SignerReference manifestRef2 = manifest.createReference(); - - - manifestRef2.setDigestAlgorithm(digestAlg); - - manifestRef2.setURI(uriToData2); - - manifest2.addReference(manifestRef2); - manifest2.setId(iD2); - iaik.ixsil.core.Object manifestObject2 = - signature.createObject(manifest2); - signature.addObject(manifestObject2); - manifest2.computeDigestValues(); - - reference2 = signedInfo.createReference(); - reference2.setURI(new URI("#xpointer(id('"+iD1+"'))")); - reference2.setType( - new URI(IXSILConstants.REFERENCETYPE_ATTR_VALUE_MANIFEST_)); - reference2.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); - - // Add reference to signature - signedInfo.addReference(reference2); - - } - */ - return manifest.toElement(); - } - -public Element createReferencesWithManifest( - URI uriToData1, String iD1, - URI uriToData2, String type - ) throws Exception - { - SignerReference reference = signedInfo.createReference(); - - SignerManifest manifest = signer.createManifest(); - - - DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); - - SignerReference manifestRef = manifest.createReference(); - manifestRef.setDigestAlgorithm(digestAlg); - manifestRef.setURI(uriToData1); - manifest.addReference(manifestRef); - - SignerReference manifestRef2 = manifest.createReference(); - manifestRef2.setDigestAlgorithm(digestAlg); - manifestRef2.setURI(uriToData2); - manifest.addReference(manifestRef2); - - manifest.setId(iD1); - iaik.ixsil.core.Object manifestObject = - signature.createObject(manifest); - signature.addObject(manifestObject); - manifest.computeDigestValues(); - - reference = signedInfo.createReference(); - reference.setURI(new URI("#xpointer(id('"+iD1+"'))")); - reference.setType(new URI(type)); - reference.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); - - // Add reference to signature - signedInfo.addReference(reference); - return manifest.toElement(); - } - - - public void setKeyInformation() throws Exception - { - // 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); - - Element e = (Element)keyManager.getKeyInfo(); - NodeList nl = e.getChildNodes(); - x509CertString = ((new DOMWriterImpl(true)).writeToString(nl.item(0).getChildNodes().item(1))); - if(x509CertString==null) - x509CertString = ((new DOMWriterImpl(true)).writeToString(nl.item(0).getChildNodes().item(0))); - - signer.getSignature().setKeyManager(keyManager); - - - - } - public void setKeyInformation(String retrievalMethod) throws Exception - { // Create key information - KeyManagerImpl keyManager = new KeyManagerImpl(signer.toDocument()); - - KeyProviderImplRetrievalMethod x509RetrievalMethod = - new KeyProviderImplRetrievalMethod(signer.toDocument()); - - URI fileURI = null; - - if (retrievalMethod == "XML") - fileURI = - new URI( - "file:" - + configuration_.getProperty("baseDir") - + configuration_.getProperty("RetrievalURIXML")); - else - fileURI = - new URI( - "file:" - + configuration_.getProperty("baseDir") - + configuration_.getProperty("RetrievalURIRaw")); - - RetrievalMethod retMet = - new RetrievalMethod( - signer.toDocument(), - new URIResolverParameters(fileURI)); - - retMet.setURI(fileURI); - - if (retrievalMethod == "XML") - retMet.setType( - new URI(configuration_.getProperty("RetrievalTypeXML"))); - else - retMet.setType( - new URI(configuration_.getProperty("RetrievalTypeRaw"))); - - x509RetrievalMethod.insertRetrievalMethodAt(retMet, 0); - keyManager.addKeyProvider(x509RetrievalMethod); - Element e = (Element)keyManager.getKeyInfo(); - NodeList nl = e.getChildNodes(); - x509CertString = ((new DOMWriterImpl(true)).writeToString(nl.item(0).getChildNodes().item(0))); - - - signer.getSignature().setKeyManager(keyManager); - } - - public void setKeyInformation(int pos) throws Exception - { - // Create key information - KeyManagerImpl keyManager = new KeyManagerImpl(signer.toDocument()); - - - X509Certificate[] certs = getCertificates(pkcs12); - X509Data x509Data = new X509Data(); - - x509Data.insertHintAt(certs[pos], 0); - - - KeyProviderImplX509Data x509DataKeyProvider = - new KeyProviderImplX509Data(signer.toDocument()); - - x509DataKeyProvider.insertX509DataAt(x509Data, 0); - - // X509Data key information (certificate chain) - keyManager.addKeyProvider(x509DataKeyProvider); - - signer.getSignature().setKeyManager(keyManager); - - Element e = (Element)keyManager.getKeyInfo(); - NodeList nl = e.getChildNodes(); - x509CertString = ((new DOMWriterImpl(true)).writeToString(nl.item(0).getChildNodes().item(0))); - - //((Element)signer.getSignature().getSignatureDOMElement().getChildNodes().item(0)).setAttributeNS(IXSILConstants.NAMESPACE_URI_NAMESPACES_,"xmlns:data","http://uri.data.org"); - - //display(signer.getSignature().getSignatureDOMElement()); - } - - private void display(Node base) - { - display(base,1); - } - - private void display(Node base,int level) - { - String spacer = ""; - for(int counter=0;counter",""); - if(x509CertString.indexOf("xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\"")!=-1) - result = TestCases.replaceString(result,"xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\"",""); - - return result; - } -} diff --git a/spss.test/src/testgenerator/DataGenerator.java b/spss.test/src/testgenerator/DataGenerator.java deleted file mode 100644 index d0743612e..000000000 --- a/spss.test/src/testgenerator/DataGenerator.java +++ /dev/null @@ -1,45 +0,0 @@ -package testgenerator; - -import java.io.BufferedWriter; -import java.io.FileWriter; - -/** - * @author Administrator - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class DataGenerator { - - public static final String text_to_be_signed="Something to be Signed :) "; - - public static void main(String[] args) throws Exception { - generateData("1kb.txt",1000); - generateData("10kb.txt",10000); - generateData("20kb.txt",20000); - generateData("50kb.txt",50000); - generateData("100kb.txt",100000); - generateData("500kb.txt",500000); - generateData("1mb.txt",1000000); - generateData("10mb.txt",10000000); - } - - public static void generateData(String filename,int size) throws Exception - { - StringBuffer sb = new StringBuffer(size); - int max = size-text_to_be_signed.length(); - while(sb.length()<(max)) - { - sb.append(text_to_be_signed); - } - - sb.append(text_to_be_signed.substring(0,(size-sb.length()))); - - BufferedWriter bw = new BufferedWriter(new FileWriter(filename)); - bw.write(sb.toString()); - bw.flush(); - bw.close(); - } -} diff --git a/spss.test/src/testgenerator/EtsiProperties.java b/spss.test/src/testgenerator/EtsiProperties.java deleted file mode 100644 index c306ddeb6..000000000 --- a/spss.test/src/testgenerator/EtsiProperties.java +++ /dev/null @@ -1,113 +0,0 @@ -package testgenerator; - -import iaik.ixsil.init.IXSILConstants; - -import iaik.utils.Base64OutputStream; - -import java.io.ByteArrayOutputStream; - -import javax.xml.parsers.DocumentBuilderFactory; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Text; -/** - * @author knirschs - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class EtsiProperties extends TestCases { - - /** - * Constructor for EtsiProperties. - * - */ - private Element qualprop; - private Element signdataobjectprop; - private static String etsinamespace = "http://uri.etsi.org/01903/v1.1.1#"; - private Document doc; - - public EtsiProperties() throws Exception{ - - getX509Content(); - - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); - //dbf.setNamespaceAware(true); - //dbf.setValidating(true); - - doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); - - - qualprop = doc.createElementNS(etsinamespace,"etsi:QualifyingProperties"); - qualprop.setAttributeNS(null,"Target","#signature"); - 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"); - signdataobjectprop = doc.createElementNS(etsinamespace,"etsi:SignedDataObjectProperties"); - Element signdate = doc.createElementNS(etsinamespace,"etsi:SigningTime"); - Text datevalue = doc.createTextNode("2003-03-01T00: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()); - - - 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); - - - } - public Element getQualProp() - { - return qualprop; - } - public void addDataObjectFormat(String reference) throws Exception - { - Element dataobjformat = doc.createElementNS(etsinamespace,"etsi:DataObjectFormat"); - dataobjformat.setAttribute("ObjectReference",reference); - Element mimetype = doc.createElementNS(etsinamespace,"etsi:MimeType"); - //mimetype.setNodeValue("text/plain"); - Text mimevalue = doc.createTextNode("text/html"); - signdataobjectprop.appendChild(dataobjformat); - dataobjformat.appendChild(mimetype); - mimetype.appendChild(mimevalue); - } - -} diff --git a/spss.test/src/testgenerator/LauchAll.java b/spss.test/src/testgenerator/LauchAll.java deleted file mode 100644 index 70965ae09..000000000 --- a/spss.test/src/testgenerator/LauchAll.java +++ /dev/null @@ -1,28 +0,0 @@ -package testgenerator; - -/** - * @author Administrator - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class LauchAll { - - public static void main(String[] args) { - try { - TestGeneratorCX0.main(null); - TestGeneratorCX1.main(null); - TestGeneratorCX2.main(null); - TestGeneratorVC0.main(null); - TestGeneratorVX.main(null); - TestGeneratorVX2.main(null); - TestGeneratorVXErrors.main(null); - } - catch(Exception e) - { - e.printStackTrace(); - } - } -} diff --git a/spss.test/src/testgenerator/LaunchVX.java b/spss.test/src/testgenerator/LaunchVX.java deleted file mode 100644 index 3c4191411..000000000 --- a/spss.test/src/testgenerator/LaunchVX.java +++ /dev/null @@ -1,24 +0,0 @@ -package testgenerator; - -/** - * @author Administrator - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class LaunchVX { - - public static void main(String[] args) { - try { - TestGeneratorVX.main(null); - TestGeneratorVX2.main(null); - TestGeneratorVXErrors.main(null); - } - catch(Exception e) - { - e.printStackTrace(); - } - } -} diff --git a/spss.test/src/testgenerator/Pass.java b/spss.test/src/testgenerator/Pass.java deleted file mode 100644 index b6fef9575..000000000 --- a/spss.test/src/testgenerator/Pass.java +++ /dev/null @@ -1,22 +0,0 @@ -package testgenerator; - -import iaik.apps.util.passphrase.PassphrasePrompt; - -/** - * @author Administrator - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class Pass implements PassphrasePrompt -{ - public Pass() {}; - public void setCancelAllowed(boolean b) {}; - public void setMessage(Object o) {}; - public boolean isCancelAllowed() { return false; } - public char[] promptPassphrase() { return "1111".toCharArray(); }; - public void setProtectedResourceInfo(Object o) {}; - -} diff --git a/spss.test/src/testgenerator/SetupCMSKeyStore.java b/spss.test/src/testgenerator/SetupCMSKeyStore.java deleted file mode 100644 index 441e64236..000000000 --- a/spss.test/src/testgenerator/SetupCMSKeyStore.java +++ /dev/null @@ -1,671 +0,0 @@ -// Copyright (C) 1997-2002 IAIK -// email: jce-info@iaik.tu-graz.ac.at -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// $Header$ -// - -package testgenerator; - -import iaik.asn1.CodingException; -import iaik.asn1.ObjectID; -import iaik.asn1.structures.AlgorithmID; -import iaik.asn1.structures.GeneralName; -import iaik.asn1.structures.GeneralNames; -import iaik.asn1.structures.Name; -import iaik.asn1.structures.PolicyInformation; -import iaik.asn1.structures.PolicyQualifierInfo; -import iaik.security.provider.IAIK; -import iaik.x509.SimpleChainVerifier; -import iaik.x509.X509Certificate; -import iaik.x509.X509ExtensionException; -import iaik.x509.extensions.AuthorityKeyIdentifier; -import iaik.x509.extensions.BasicConstraints; -import iaik.x509.extensions.CertificatePolicies; -import iaik.x509.extensions.KeyUsage; -import iaik.x509.extensions.SubjectAltName; -import iaik.x509.extensions.SubjectKeyIdentifier; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStreamReader; -import java.math.BigInteger; -import java.security.InvalidKeyException; -import java.security.KeyPair; -import java.security.KeyPairGenerator; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.NoSuchProviderException; -import java.security.PrivateKey; -import java.security.PublicKey; -import java.security.cert.CertificateException; -import java.util.Calendar; -import java.util.GregorianCalendar; -import java.util.Random; - -/** - * Creates a default KeyStore in the current working directory. - * These keys are used by many demos included in IAIK-JCE. - * The aliases and the password for accessing the keys and - * certificates can be found in {@link demo.keystore.CMSKeyStoreConstants CMSKeyStoreConstants}. - * - * @see CMSKeyStoreConstants - */ -public class SetupCMSKeyStore implements CMSKeyStoreConstants { - - // the keylength of the CA certificate shall be 1024 - private final static int CA_KEYLENGTH = 1024; - - // the key store to create - KeyStore key_store; - // the file where the key store shall be saved - String keystore_file; - // takes the existing keys from the KeyStore and only creates new certificates - boolean create_only_certificates = true; - - // the private keys - KeyPair ca_rsa = null; - // RSA for signing - KeyPair rsa512_sign = null; - KeyPair rsa1024_sign = null; - KeyPair rsa2048_sign = null; - // RSA for encrypting - KeyPair rsa512_crypt = null; - KeyPair rsa1024_crypt = null; - KeyPair rsa1024_crypt_ = null; - KeyPair rsa2048_crypt = null; - - KeyPair ca_dsa = null; - KeyPair dsa512 = null; - KeyPair dsa1024 = null; - KeyPair esdh512 = null; - KeyPair esdh1024 = null; - KeyPair esdh1024_ = null; - KeyPair esdh2048 = null; - - // create RSA keys and certificates - boolean create_rsa = true; - // create DSA keys and certificates - boolean create_dsa = true; - // create ESDH keys and certificates - boolean create_esdh = true; - - /** - * Generate a KeyPair using the specified algorithm with the given size. - * - * @param algorithm the algorithm to use - * @param bits the length of the key (modulus) in bits - * @return the KeyPair - */ - public static KeyPair generateKeyPair(String algorithm, int bits) - throws NoSuchAlgorithmException { - - KeyPairGenerator generator = null; - - try { - generator = KeyPairGenerator.getInstance(algorithm, "IAIK"); - - } catch (NoSuchProviderException ex) { - throw new NoSuchAlgorithmException("Provider IAIK not found!"); - } - - generator.initialize(bits); - KeyPair kp = generator.generateKeyPair(); - - return kp; - } - - /** - * Creates a certificate from the given values. - * - * @param subject the subject of the certificate - * @param publicKey the public key to include - * @param issuer the issuer of the certificate - * @param privateKey the private key for signing the certificate - * @param algorithm the signature algorithm to use - */ - public static X509Certificate createCertificate(Name subject, PublicKey publicKey, - Name issuer, PrivateKey privateKey, AlgorithmID algorithm, byte[] keyID, boolean forSigning) { - - // create a new certificate - X509Certificate cert = new X509Certificate(); - - try { - // set the values - cert.setSerialNumber(new BigInteger(20, new Random())); - cert.setSubjectDN(subject); - cert.setPublicKey(publicKey); - cert.setIssuerDN(issuer); - - GregorianCalendar date = new GregorianCalendar(); - date.add(Calendar.DATE, -1); - // not before now - cert.setValidNotBefore(date.getTime()); - - if (issuer.equals(subject)) { - date.add(Calendar.MONTH, 12); - BasicConstraints basicConstraints = new BasicConstraints(true); - cert.addExtension(basicConstraints); - KeyUsage keyUsage = new KeyUsage(KeyUsage.keyCertSign | KeyUsage.cRLSign); - cert.addExtension(keyUsage); - } else { - date.add(Calendar.MONTH, 11); - KeyUsage keyUsage = null; - if (forSigning) { - keyUsage = new KeyUsage(KeyUsage.digitalSignature | - KeyUsage.nonRepudiation); - } else { - keyUsage = new KeyUsage(KeyUsage.keyEncipherment | - KeyUsage.dataEncipherment); - } - cert.addExtension(keyUsage); - AuthorityKeyIdentifier authID = new AuthorityKeyIdentifier(); - authID.setKeyIdentifier(keyID); - cert.addExtension(authID); - GeneralNames generalNames = new GeneralNames(); - generalNames.addName(new GeneralName(GeneralName.rfc822Name, "smimetest@iaik.at")); - generalNames.addName(new GeneralName(GeneralName.rfc822Name, "smimetest@iaik.tu-graz.ac.at")); - SubjectAltName subjectAltName = new SubjectAltName(generalNames); - cert.addExtension(subjectAltName); - } - String explicitText = "This certificate only may be used for test purposes"; - PolicyQualifierInfo policyQualifier = new PolicyQualifierInfo(null, null, explicitText); - PolicyInformation[] policyInformations = - { new PolicyInformation(new ObjectID("1.3.6.1.4.1.2706.17.0.11.1.1"), - new PolicyQualifierInfo[] { policyQualifier }) }; - CertificatePolicies certPolicies = new CertificatePolicies(policyInformations); - - SubjectKeyIdentifier subjectKeyID = new SubjectKeyIdentifier(cert.getPublicKey()); - cert.addExtension(subjectKeyID); - - cert.addExtension(certPolicies); - cert.setValidNotAfter(date.getTime()); - // and sign the certificate - cert.sign(algorithm ,privateKey); - } catch (CertificateException ex) { - throw new RuntimeException("Error creating the certificate: "+ex.getMessage()); - } catch (InvalidKeyException ex) { - throw new RuntimeException("Error creating the certificate: "+ex.getMessage()); - } catch (NoSuchAlgorithmException ex) { - throw new RuntimeException("Error creating the certificate: "+ex.getMessage()); - } catch (X509ExtensionException ex) { - throw new RuntimeException("Error adding extension: "+ex.getMessage()); - } catch (CodingException ex) { - throw new RuntimeException("Error adding SubjectKeyIdentifier extension: "+ex.getMessage()); - } -/* - System.out.println(cert.toString(true)); - iaik.utils.Util.waitKey(); -*/ - - return cert; - } - - /** - * Load or create a KeyStore and initialize it. - */ - private void initializeKeyStore() { - - BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); - String line; - - try { - // default directory is the current user dir - String keystore_dir = System.getProperty("user.dir"); - File ks = new File(keystore_dir, KS_FILENAME); - - // KeyStore does already exist - if (ks.exists()) { - keystore_file = ks.getAbsolutePath(); - if (create_only_certificates) { - System.out.println("Create only new certificates from already existing keys!"); - } - else { - System.out.println("Existing KeyStore will be deleted!"); - } - System.out.println("KeyStore: "+keystore_file); - } - else { - // there is no KeyStore -> create also new keys - create_only_certificates = false; - - while (true) { - System.out.print("Create new KeyStore in directory: "+keystore_dir+" [y]"); - line = reader.readLine(); - if (line.length() == 0 || line.equals("y")) { - ks = new File(keystore_dir, KS_FILENAME); - keystore_file = ks.getAbsolutePath(); - System.out.println("KeyStore will be saved to: "+keystore_file); - break; - } - System.out.print("Enter directory: "); - keystore_dir = reader.readLine(); - } - } - - // get a new KeyStore onject - key_store = KeyStore.getInstance("IAIKKeyStore"); - - if (create_only_certificates) { - // take private keys from existing KeyStore - key_store.load(new FileInputStream(ks), KS_PASSWORD); - } - else { - // create a new KeyStore - key_store.load(null, null); - } - - } catch (Exception ex) { - System.out.println("Error creating new IAIK KeyStore!"); - throw new RuntimeException("Error creating new KeyStore: "+ex.getMessage()); - } - } - - /** - * Save the KeyStore to disk. - */ - private void saveKeyStore() { - try { - // write the KeyStore to disk - FileOutputStream os = new FileOutputStream(keystore_file); - key_store.store(os, KS_PASSWORD); - os.close(); - } catch (Exception ex) { - System.out.println("Error saving KeyStore!"); - ex.printStackTrace(); - } - } - - /** - * Add the private key and the certificate chain to the key store. - */ - public void addToKeyStore(KeyPair keyPair, X509Certificate[] chain, String alias) throws KeyStoreException { - key_store.setKeyEntry(alias, keyPair.getPrivate(), KS_PASSWORD, chain); - } - - /** - * Returns a KeyPair form the KeyStore. - */ - private KeyPair getKeyPair(String type) throws Exception { - PrivateKey privKey = (PrivateKey)key_store.getKey(type, KS_PASSWORD); - PublicKey pubKey = key_store.getCertificateChain(type)[0].getPublicKey(); - return new KeyPair(pubKey, privKey); - } - - /** - * Get all private keys from the KeyStore. - */ - private void getPrivateKeys() { - // RSA - try { - ca_rsa = getKeyPair(CA_RSA); - // for signing - rsa512_sign = getKeyPair(RSA_512_SIGN); - rsa1024_sign = getKeyPair(RSA_1024_SIGN); - rsa2048_sign = getKeyPair(RSA_2048_SIGN); - // for encrypting - rsa512_crypt = getKeyPair(RSA_512_CRYPT); - rsa1024_crypt = getKeyPair(RSA_1024_CRYPT); - rsa1024_crypt_ = getKeyPair(RSA_1024_CRYPT_); - rsa2048_crypt = getKeyPair(RSA_2048_CRYPT); - } catch (Exception ex) { - System.out.println("Unable to get RSA keys from KeyStore."); - ex.printStackTrace(); - create_rsa = false; - } - // DSA - try { - ca_dsa = getKeyPair(CA_DSA); - dsa512 = getKeyPair(DSA_512); - dsa1024 = getKeyPair(DSA_1024); - } catch (Exception ex) { - System.out.println("Unable to get DSA keys from KeyStore."); - ex.printStackTrace(); - create_dsa = false; - } - // ESDH - try { - esdh512 = getKeyPair(ESDH_512); - esdh1024 = getKeyPair(ESDH_1024); - esdh1024_ = getKeyPair(ESDH_1024_); - esdh2048 = getKeyPair(ESDH_2048); - } catch (Exception ex) { - System.out.println("Unable to get ESDH keys from KeyStore."); - ex.printStackTrace(); - create_esdh = false; - } - } - - /** - * Gernerate new prviate keys. - */ - private void generatePrivateKeys() { - try { - // first create the KeyPairs - if (create_rsa) { - try { - System.out.println("generate RSA KeyPair for CA certificate ["+CA_KEYLENGTH+" bits]..."); - ca_rsa = generateKeyPair("RSA", CA_KEYLENGTH); - System.out.println("Generate RSA signing keys..."); - System.out.println("generate RSA KeyPair for a test certificate [512 bits]..."); - rsa512_sign = generateKeyPair("RSA", 512); - System.out.println("generate RSA KeyPair for a test certificate [1024 bits]..."); - rsa1024_sign = generateKeyPair("RSA", 1024); - System.out.println("generate RSA KeyPair for a test certificate [2048 bits]..."); - rsa2048_sign = generateKeyPair("RSA", 2048); - System.out.println("Generate RSA encryption keys..."); - System.out.println("generate RSA KeyPair for a test certificate [512 bits]..."); - rsa512_crypt = generateKeyPair("RSA", 512); - System.out.println("generate RSA KeyPair for a test certificate [1024 bits]..."); - rsa1024_crypt = generateKeyPair("RSA", 1024); - System.out.println("generate second RSA KeyPair for a test certificate [1024 bits]..."); - rsa1024_crypt_ = generateKeyPair("RSA", 1024); - System.out.println("generate RSA KeyPair for a test certificate [2048 bits]..."); - rsa2048_crypt = generateKeyPair("RSA", 2048); - } catch (NoSuchAlgorithmException ex) { - create_rsa = false; - System.out.println("No implementation for RSA! RSA certificates are not created!\n"); - } - } - if (create_dsa) { - try { - System.out.println("generate DSA KeyPair for CA certificate ["+CA_KEYLENGTH+" bits]..."); - ca_dsa = generateKeyPair("DSA", CA_KEYLENGTH); - System.out.println("generate DSA KeyPair for a test certificate [512 bits]..."); - dsa512 = generateKeyPair("DSA", 512); - System.out.println("generate DSA KeyPair for a test certificate [1024 bits]..."); - dsa1024 = generateKeyPair("DSA", 1024); - } catch (NoSuchAlgorithmException ex) { - create_dsa = false; - System.out.println("No implementation for DSA! DSA certificates are not created!\n"); - } - } - - if (create_esdh) { - try { - System.out.println("generate ESDH KeyPair for a test certificate [512 bits]..."); - esdh512 = generateKeyPair("ESDH", 512); - System.out.println("generate ESDH KeyPair for a test certificate [1024 bits]..."); - esdh1024 = generateKeyPair("ESDH", 1024); - System.out.println("generate ESDH KeyPair for a test certificate [1024 bits]..."); - esdh1024_ = generateKeyPair("ESDH", 1024); - System.out.println("generate ESDH KeyPair for a test certificate [2048 bits]..."); - esdh2048 = generateKeyPair("ESDH", 2048); - } catch (NoSuchAlgorithmException ex) { - create_esdh = false; - System.out.println("No implementation for ESDH! ESDH certificates are not created!\n"); - } - } - } catch (Exception ex) { - System.out.println("Exception: "+ex); - } - } - - public void generateCertificates() { - - try { - - // Now create the certificates - Name issuer = new Name(); - issuer.addRDN(ObjectID.country, "AT"); - issuer.addRDN(ObjectID.organization ,"IAIK"); - issuer.addRDN(ObjectID.organizationalUnit ,"JavaSecurity"); - - Name subject = new Name(); - subject.addRDN(ObjectID.country, "AT"); - subject.addRDN(ObjectID.organization ,"IAIK"); - subject.addRDN(ObjectID.organizationalUnit ,"JavaSecurity"); - - // - // create self signed CA certs - // - X509Certificate caRSA = null; - X509Certificate caDSA = null; - X509Certificate[] chain = new X509Certificate[1]; - // for verifying the created certificates - SimpleChainVerifier verifier = new SimpleChainVerifier(); - - if (create_rsa) { - issuer.addRDN(ObjectID.commonName ,"IAIK RSA Test CA"); - System.out.println("create self signed RSA CA certificate..."); - caRSA = createCertificate(issuer, ca_rsa.getPublic(), - issuer, ca_rsa.getPrivate(), AlgorithmID.sha1WithRSAEncryption, null, true); - // verify the self signed certificate - caRSA.verify(); - // set the CA cert as trusted root - verifier.addTrustedCertificate(caRSA); - chain[0] = caRSA; - addToKeyStore(ca_rsa, chain, CA_RSA); - issuer.removeRDN(ObjectID.commonName); - } - - if (create_dsa) { - issuer.addRDN(ObjectID.commonName ,"IAIK DSA Test CA"); - System.out.println("create self signed DSA CA certificate..."); - caDSA = createCertificate(issuer, ca_dsa.getPublic(), - issuer, ca_dsa.getPrivate(), AlgorithmID.dsaWithSHA, null, true); - // verify the self signed certificate - caDSA.verify(); - // set the CA cert as trusted root - verifier.addTrustedCertificate(caDSA); - chain[0] = caDSA; - addToKeyStore(ca_dsa, chain, CA_DSA); - issuer.removeRDN(ObjectID.commonName); - } - - // - // create certificates - // - chain = new X509Certificate[2]; - - // create a RSA certificate - if (create_rsa) { - issuer.addRDN(ObjectID.commonName ,"IAIK RSA Test CA"); - SubjectKeyIdentifier subjectKeyID = (SubjectKeyIdentifier)caRSA.getExtension(SubjectKeyIdentifier.oid); - // 512 - // for signing - System.out.println("Create RSA demo certificates to be used for signing..."); - - // 512 - subject.addRDN(ObjectID.commonName, "RSA 512 bit Demo Signing Certificate"); - System.out.println("create 512 bit RSA demo certificate..."); - chain[0] = createCertificate(subject, rsa512_sign.getPublic(), - issuer, ca_rsa.getPrivate(), AlgorithmID.sha1WithRSAEncryption, subjectKeyID.get(), true); - chain[1] = caRSA; - // and verify the chain - verifier.verifyChain(chain); - addToKeyStore(rsa512_sign, chain, RSA_512_SIGN); - subject.removeRDN(ObjectID.commonName); - - // 1024 - - subject.addRDN(ObjectID.commonName ,"RSA 1024 bit Demo Signing Certificate"); - System.out.println("create 1024 bit RSA demo certificate..."); - chain[0] = createCertificate(subject, rsa1024_sign.getPublic(), - issuer, ca_rsa.getPrivate(), AlgorithmID.sha1WithRSAEncryption, subjectKeyID.get(), true); - chain[1] = caRSA; - verifier.verifyChain(chain); - addToKeyStore(rsa1024_sign, chain, RSA_1024_SIGN); - subject.removeRDN(ObjectID.commonName); - - // 2048 - - subject.addRDN(ObjectID.commonName ,"RSA 2048 bit Demo Signing Certificate"); - System.out.println("create 2048 bit RSA demo certificate..."); - chain[0] = createCertificate(subject, rsa2048_sign.getPublic(), - issuer, ca_rsa.getPrivate(), AlgorithmID.sha1WithRSAEncryption, subjectKeyID.get(), true); - chain[1] = caRSA; - verifier.verifyChain(chain); - - addToKeyStore(rsa2048_sign, chain, RSA_2048_SIGN); - subject.removeRDN(ObjectID.commonName); - - // for encrypting - System.out.println("Create RSA demo certificates to be used for encryption..."); - // 512 - subject.addRDN(ObjectID.commonName, "RSA 512 bit Demo Encryption Certificate"); - System.out.println("create 512 bit RSA demo certificate..."); - chain[0] = createCertificate(subject, rsa512_crypt.getPublic(), - issuer, ca_rsa.getPrivate(), AlgorithmID.sha1WithRSAEncryption, subjectKeyID.get(), false); - chain[1] = caRSA; - // and verify the chain - verifier.verifyChain(chain); - addToKeyStore(rsa512_crypt, chain, RSA_512_CRYPT); - subject.removeRDN(ObjectID.commonName); - - // 1024 - - subject.addRDN(ObjectID.commonName ,"RSA 1024 bit Demo Encryption Certificate"); - System.out.println("create 1024 bit RSA demo certificate..."); - chain[0] = createCertificate(subject, rsa1024_crypt.getPublic(), - issuer, ca_rsa.getPrivate(), AlgorithmID.sha1WithRSAEncryption, subjectKeyID.get(), false); - chain[1] = caRSA; - verifier.verifyChain(chain); - addToKeyStore(rsa1024_crypt, chain, RSA_1024_CRYPT); - - System.out.println("create second 1024 bit RSA demo Encryption certificate..."); - chain[0] = createCertificate(subject, rsa1024_crypt_.getPublic(), - issuer, ca_rsa.getPrivate(), AlgorithmID.sha1WithRSAEncryption, subjectKeyID.get(), false); - chain[1] = caRSA; - verifier.verifyChain(chain); - addToKeyStore(rsa1024_crypt_, chain, RSA_1024_CRYPT_); - subject.removeRDN(ObjectID.commonName); - - // 2048 - - subject.addRDN(ObjectID.commonName ,"RSA 2048 bit Demo Encryption Certificate"); - System.out.println("create 2048 bit RSA demo certificate..."); - chain[0] = createCertificate(subject, rsa2048_crypt.getPublic(), - issuer, ca_rsa.getPrivate(), AlgorithmID.sha1WithRSAEncryption, subjectKeyID.get(), false); - chain[1] = caRSA; - verifier.verifyChain(chain); - addToKeyStore(rsa2048_crypt, chain, RSA_2048_CRYPT); - subject.removeRDN(ObjectID.commonName); - issuer.removeRDN(ObjectID.commonName); - } - - // create a DSA test certificate - if (create_dsa) { - issuer.addRDN(ObjectID.commonName ,"IAIK DSA Test CA"); - // 512 - subject.addRDN(ObjectID.commonName ,"DSA 512 bit Demo Certificate"); - System.out.println("create 512 bit DSA demo certificate..."); - SubjectKeyIdentifier subjectKeyID = (SubjectKeyIdentifier)caDSA.getExtension(SubjectKeyIdentifier.oid); - chain[0] = createCertificate(subject, dsa512.getPublic(), - issuer, ca_dsa.getPrivate(), AlgorithmID.dsaWithSHA, subjectKeyID.get(), true); - subject.removeRDN(ObjectID.commonName); - chain[1] = caDSA; - verifier.verifyChain(chain); - - addToKeyStore(dsa512, chain, DSA_512); - // 1024 - subject.addRDN(ObjectID.commonName ,"DSA 1024 bit Demo Certificate"); - System.out.println("create 1024 bit DSA demo certificate..."); - chain[0] = createCertificate(subject, dsa1024.getPublic(), - issuer, ca_dsa.getPrivate(), AlgorithmID.dsaWithSHA, subjectKeyID.get(), true); - subject.removeRDN(ObjectID.commonName); - chain[1] = caDSA; - verifier.verifyChain(chain); - addToKeyStore(dsa1024, chain, DSA_1024); - issuer.removeRDN(ObjectID.commonName); - } - - // create a ESDH test certificate - if (create_esdh) { - issuer.addRDN(ObjectID.commonName ,"IAIK DSA Test CA"); - // 512 - subject.addRDN(ObjectID.commonName ,"ESDH 512 bit Demo Certificate"); - System.out.println("create 512 bit ESDH demo certificate..."); - SubjectKeyIdentifier subjectKeyID = (SubjectKeyIdentifier)caDSA.getExtension(SubjectKeyIdentifier.oid); - chain[0] = createCertificate(subject, esdh512.getPublic(), - issuer, ca_dsa.getPrivate(), AlgorithmID.dsaWithSHA, subjectKeyID.get(), false); - subject.removeRDN(ObjectID.commonName); - chain[1] = caDSA; - verifier.verifyChain(chain); - addToKeyStore(esdh512, chain, ESDH_512); - // 1024 - subject.addRDN(ObjectID.commonName ,"ESDH 1024 bit Demo Certificate 1"); - System.out.println("create 1024 bit ESDH demo certificate..."); - chain[0] = createCertificate(subject, esdh1024.getPublic(), - issuer, ca_dsa.getPrivate(), AlgorithmID.dsaWithSHA, subjectKeyID.get(), false); - subject.removeRDN(ObjectID.commonName); - chain[1] = caDSA; - verifier.verifyChain(chain); - addToKeyStore(esdh1024, chain, ESDH_1024); - // 1024 - subject.addRDN(ObjectID.commonName ,"ESDH 1024 bit Demo Certificate 2"); - System.out.println("create second 1024 bit ESDH demo certificate..."); - chain[0] = createCertificate(subject, esdh1024_.getPublic(), - issuer, ca_dsa.getPrivate(), AlgorithmID.dsaWithSHA, subjectKeyID.get(), false); - subject.removeRDN(ObjectID.commonName); - chain[1] = caDSA; - verifier.verifyChain(chain); - addToKeyStore(esdh1024_, chain, ESDH_1024_); - // 2048 - subject.addRDN(ObjectID.commonName ,"ESDH 2048 bit Demo Certificate"); - System.out.println("create 2048 bit ESDH demo certificate..."); - chain[0] = createCertificate(subject, esdh2048.getPublic(), - issuer, ca_dsa.getPrivate(), AlgorithmID.dsaWithSHA, subjectKeyID.get(), false); - subject.removeRDN(ObjectID.commonName); - chain[1] = caDSA; - verifier.verifyChain(chain); - addToKeyStore(esdh2048, chain, ESDH_2048); - issuer.removeRDN(ObjectID.commonName); - } - - System.out.println("\nCertificates created!"); - - } catch (Exception ex) { - System.out.println("Exception: "+ex); - } - } - - public static void start() { - SetupCMSKeyStore suks = new SetupCMSKeyStore(); - suks.initializeKeyStore(); - if (suks.create_only_certificates) { - suks.getPrivateKeys(); - } - else { - suks.generatePrivateKeys(); - } - suks.generateCertificates(); - suks.saveKeyStore(); - } - - /** - * Creates the test certificates. - */ - public static void main(String arg[]) throws IOException { - - IAIK.addAsProvider(true); - start(); - System.in.read(); - } -} \ No newline at end of file diff --git a/spss.test/src/testgenerator/SignatureManifestCheckParams.java b/spss.test/src/testgenerator/SignatureManifestCheckParams.java deleted file mode 100644 index b1505418d..000000000 --- a/spss.test/src/testgenerator/SignatureManifestCheckParams.java +++ /dev/null @@ -1,176 +0,0 @@ -package testgenerator; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.apache.xml.serialize.DOMWriterImpl; -import org.w3c.dom.DOMImplementation; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - - -/** - * @author knirschs - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class SignatureManifestCheckParams { -/* So solls mal aussehen :-) - - - - - - - - - - - validBase64Data - - - validID - - -*/ - private Document document; - private Element refInfo; - private Element verifyTrans; - private Element transPara; - private Element dsigTrans; - - public SignatureManifestCheckParams(String returnReferenceInputData) throws Exception{ - - // Find the implementation - DocumentBuilderFactory factory - = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - DOMImplementation impl = builder.getDOMImplementation(); - - // Create the document - document = impl.createDocument(null, "SignatureManifestCheckParams", null); - - //document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); // Create from whole cloth - Element root = document.getDocumentElement(); - if (returnReferenceInputData!=null) - root.setAttribute("ReturnReferenceInputData",returnReferenceInputData); - - refInfo = (Element) document.createElement("ReferenceInfo"); - root.appendChild(refInfo); - - verifyTrans = (Element) document.createElement("VerifyTransformsInfoProfile"); - - - } - - public void addTransPara(String URI) - { - transPara = document.createElement("TransformParameter"); - transPara.setAttribute("URI",URI); - verifyTrans.appendChild(transPara); - - } - - - /** - * Method addDsigTransform: To add an dsig:Tranform element with a special algorithm - * @param algName - */ - public void addDsigTransform(String algName, Element el) - { - if (dsigTrans==null) - { - dsigTrans = (Element) document.createElementNS("http://www.w3.org/2000/09/xmldsig#","Transforms"); - dsigTrans.setPrefix("dsig"); - verifyTrans.appendChild(dsigTrans); - - refInfo.appendChild(verifyTrans); - } - - - Element trans = document.createElementNS("http://www.w3.org/2000/09/xmldsig#","Transform"); - trans.setPrefix("dsig"); - trans.setAttribute("Algorithm",algName); - if (el!=null) trans.appendChild(el); - dsigTrans.appendChild(trans); - } - - public void addDisgTransform(Element transformElement) - { - if (dsigTrans==null) - { - dsigTrans = (Element) document.createElementNS("http://www.w3.org/2000/09/xmldsig#","Transforms"); - dsigTrans.setPrefix("dsig"); - verifyTrans.appendChild(dsigTrans); - - refInfo.appendChild(verifyTrans); - } - - dsigTrans.appendChild(transformElement); - } - - /** - * Method addTransformsProfileID. - * @param id - */ - public void addTransformsProfileID(String id) - { - Element profID = (Element) document.createElement("VerifyTransformsInfoProfileID"); - profID.appendChild(document.createTextNode(id)); - refInfo.appendChild(profID); - } - - public void addTransParaElement(String elemName, String content) - { - if (elemName!="Hash") { - - Element eleName = document.createElement(elemName); - eleName.appendChild(document.createTextNode(content)); - transPara.appendChild(eleName); - - } else { - - Element eleName = document.createElement(elemName); - Element digMethod = document.createElementNS("http://www.w3.org/2000/09/xmldsig#","DigestMethod"); - digMethod.setPrefix("dsig"); - digMethod.setAttribute("Algorithm","http://www.w3.org/2000/09/xmldsig#sha1"); - eleName.appendChild(digMethod); - Element hash = document.createElementNS("http://www.w3.org/2000/09/xmldsig#","DigestValue"); - hash.setPrefix("dsig"); - hash.appendChild(document.createTextNode(content)); - eleName.appendChild(hash); - - transPara.appendChild(eleName); - - - } - - } - -public String returnDoc() throws Exception - { - String result =(new DOMWriterImpl(true)).writeToString(document.getDocumentElement()); - - TestCases tc = new TestCases(); - - result = TestCases.replaceString(result,"",""); - try { - result = TestCases.replaceString(result," xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\"",""); - result = TestCases.replaceString(result," xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\"",""); - result = TestCases.replaceString(result," xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\"",""); - } catch (Exception e) { - } - - - return result; - } - - public Document getDoc() throws Exception - { - return document; - } -} diff --git a/spss.test/src/testgenerator/Supplement.java b/spss.test/src/testgenerator/Supplement.java deleted file mode 100644 index 41edd4118..000000000 --- a/spss.test/src/testgenerator/Supplement.java +++ /dev/null @@ -1,62 +0,0 @@ -package testgenerator; - -/** - * @author Stevie (Admin) - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class Supplement { - - private String supplement; - /** - * Constructor for Supplement. - */ - public Supplement() { - supplement = " \n"; - - } - - public void addMetaInfo(String mimeType, String description) - { - supplement += " \n" + - " " + mimeType + ""; - if (!(description==null)) - { - supplement+= " " + description + ""; - } - - supplement+= " "; - } - - public void addBase64Content(String fileName, String data) - { - supplement+= " \n"+ - " "+data+"\n" + - " \n"; - - } - - public void addXMLContent(String fileName, String data) - { - supplement+= " \n"+ - " "+data+"\n" + - " \n"; - - } - - - public void closeSupplement() - { - supplement+= " \n"; - } - - public String getSupplement() - { - return supplement; - } - - -} diff --git a/spss.test/src/testgenerator/TestCMS.java b/spss.test/src/testgenerator/TestCMS.java deleted file mode 100644 index e4d022383..000000000 --- a/spss.test/src/testgenerator/TestCMS.java +++ /dev/null @@ -1,118 +0,0 @@ -package testgenerator; - -import iaik.asn1.CodingException; -import iaik.asn1.ObjectID; -import iaik.asn1.structures.AlgorithmID; -import iaik.asn1.structures.Attribute; -import iaik.asn1.structures.ChoiceOfTime; -import iaik.cms.CMSException; -import iaik.cms.ContentInfoStream; -import iaik.cms.SignedDataStream; -import iaik.cms.SignerInfo; -import iaik.utils.StreamCopier; -import iaik.x509.X509Certificate; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.security.KeyStore; -import java.security.Provider; -import java.security.Security; -import java.security.SignatureException; - - -/** - * @author Administrator - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class TestCMS { - - public static void main(String[] args) - { - try { - iaik.security.provider.IAIK.addAsProvider(true); - - Provider [] list = Security.getProviders(); - for(int counter=0;counter\n"+ - "" - + "" - + "" - + "" - + ""; - - FileOutputStream fos = new FileOutputStream(file); - fos.write(config.getBytes()); - } - - /** - * Method replaceString. - * @param input: String to be changed - * @param oldPart: subString in input to be changed - * @param newPart: new subString instead of the oldPart - * @return String - * @throws Exception - */ - public static String replaceString( - String input, - String oldPart, - String newPart) - throws Exception { - String erg = null; - - //First Part - erg = input.substring(0, input.indexOf(oldPart)); - //Insert new Part - erg += newPart; - - //insert REST - erg - += input.substring( - input.indexOf(oldPart) + oldPart.length(), - input.length()); - - return erg; - } - - public static String replaceStringAll( - String input, - String oldPart, - String newPart) - throws Exception { - - String erg = input; - - while(true) - { - - //First Part - int pos = input.indexOf(oldPart); - if(pos==-1) break; - erg = input.substring(0, pos); - - //Insert new Part - erg += newPart; - - //insert REST - erg - += input.substring( - input.indexOf(oldPart) + oldPart.length(), - input.length()); - - input = erg; - } - return erg; - } - - /** - * Method readFile. - * @param filename - * @return String - * @throws Exception - */ - - 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"); - } - */ - 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); - - } - /** - * Method readBinaryFileAsBase64. - * @param filename - * @return Stringrepresentation as Base64 of the inputfile and saves that file - * @throws Exception - */ - public String readBinaryFileAsBase64_new(String filename) throws Exception { - - 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()]; - //READ the original binary Data - raf.read(result); - - //Convert the data to bas64 and store it in a new file - - ByteArrayOutputStream fos = new ByteArrayOutputStream(); - Base64OutputStream base64os = new Base64OutputStream(fos); - base64os.write(result); - base64os.flush(); - - return fos.toString(); - - } - public String readBinaryFileAsBase64(String filename) throws Exception { - - 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()]; - //READ the original binary Data - raf.read(result); - - //Convert the data to bas64 and store it in a new file - FileOutputStream fos = new FileOutputStream(filename + "base64.enc"); - Base64OutputStream base64os = new Base64OutputStream(fos); - base64os.write(result); - base64os.flush(); - base64os.close(); - - //read the converted data und return it - raf = new RandomAccessFile(filename + "base64.enc", "r"); - if (raf.length() > Integer.MAX_VALUE) - throw new IOException("Converted base64 file too big to fit in byte array."); - result = new byte[(int) raf.length()]; - //READ the original binary Data - raf.read(result); - - return new String(result); - - } - - /** - * Method writeFile. - * @param filename - * @param data - * @throws Exception - */ - public void writeFile(String filename, String data) throws Exception { - BufferedWriter bw = new BufferedWriter(new FileWriter(filename)); - bw.write(data); - bw.close(); - } - - /** - * Method writeFileBinary - * @param filename - * @param data - * @throws Exception - */ - public void writeFileBinary(String filename, byte[] data) throws Exception { - BufferedOutputStream bw = new BufferedOutputStream(new FileOutputStream(filename)); - bw.write(data); - bw.close(); - } - /** - * Method getDate. - * @param changeHours to change the time into the past or future - * @return String - */ - - public String getDate(long changeHours) { - - //Use the XML-Format for the Time - SimpleDateFormat formatter = - new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'+01:00"); - //get the current Time - Date currentTime = new Date(); - //add or substract a few hours - currentTime.setTime( - (currentTime.getTime() + changeHours * 1000 * 60 * 60)); - - return formatter.format(currentTime); - } - - public ASN1Object createSignedCMSData(byte[] message, int mode,boolean two_users) throws Exception { - - System.out.println("Create a new message signed by user 1:"); - - // create a new SignedData object which includes the data - SignedData signed_data = new SignedData(message, mode); - // SignedData shall include the certificate chain for verifying - - PKCS12 pkcs12 = decryptPKCS12( - configuration_.getProperty("PKCS12file"), - configuration_.getProperty("PKCS12password")); - - BufferedInputStream bis = new BufferedInputStream(new FileInputStream(configuration_.getProperty("CERT"))); - iaik.x509.X509Certificate cert = new iaik.x509.X509Certificate(bis); - user1_sign = cert; - X509name = ((Name)(cert.getIssuerDN())).getRFC2253String(); - X509number = cert.getSerialNumber(); - X509hash = new String(cert.getFingerprintSHA()); - X509sub = ((Name)cert.getSubjectDN()).getRFC2253String(); - - iaik.x509.X509Certificate[] certarray = new iaik.x509.X509Certificate[1]; - certarray[0] = cert; - - signed_data.setCertificates(certarray); - - - RSAPrivateKey privateKey = getPrivateKey( pkcs12 ); - - // cert at index 0 is the user certificate - IssuerAndSerialNumber issuer = new IssuerAndSerialNumber((Name)cert.getIssuerDN(),X509number); - - // create a new SignerInfo - SignerInfo signer_info = new SignerInfo(issuer, AlgorithmID.sha1, privateKey); - // create some authenticated attributes - // the message digest attribute is automatically added - Attribute[] attributes = new Attribute[2]; - // content type is data - attributes[0] = new Attribute(ObjectID.contentType, new ASN1Object[] {ObjectID.cms_data}); - // signing time is now - attributes[1] = new Attribute(ObjectID.signingTime, new ASN1Object[] {new ChoiceOfTime().toASN1Object()}); - // set the attributes - signer_info.setSignedAttributes(attributes); - // finish the creation of SignerInfo by calling method addSigner - try { - signed_data.addSignerInfo(signer_info); - - if(two_users) - { - // another SignerInfo without authenticated attributes and MD5 as hash algorithm - signer_info = new SignerInfo(new IssuerAndSerialNumber((Name)cert.getIssuerDN(),X509number), - AlgorithmID.md5, privateKey); - // the message digest itself is protected - signed_data.addSignerInfo(signer_info); - } - - } catch (NoSuchAlgorithmException ex) { - ex.printStackTrace(); - throw new CMSException("No implementation for signature algorithm: "+ex.getMessage()); - } - - ContentInfo ci = new ContentInfo(signed_data); - return ci.toASN1Object(); - } - - public ASN1Object createSignedCMSData(byte[] message, int mode,boolean two_users,String pkcs12file,String pkcs12password,String certname) throws Exception { - - System.out.println("Create a new message signed by user 1:"); - - // create a new SignedData object which includes the data - SignedData signed_data = new SignedData(message, mode); - // SignedData shall include the certificate chain for verifying - - PKCS12 pkcs12 = decryptPKCS12( - configuration_.getProperty(pkcs12file), - configuration_.getProperty(pkcs12password)); - - BufferedInputStream bis = new BufferedInputStream(new FileInputStream(configuration_.getProperty(certname))); - iaik.x509.X509Certificate cert = new iaik.x509.X509Certificate(bis); - X509name = ((Name)(cert.getIssuerDN())).getRFC2253String(); - X509number = cert.getSerialNumber(); - X509hash = new String(cert.getFingerprintSHA()); - X509sub = ((Name)cert.getSubjectDN()).getRFC2253String(); - - iaik.x509.X509Certificate[] certarray = new iaik.x509.X509Certificate[1]; - certarray[0] = cert; - - signed_data.setCertificates(certarray); - - - RSAPrivateKey privateKey = getPrivateKey( pkcs12 ); - - // cert at index 0 is the user certificate - IssuerAndSerialNumber issuer = new IssuerAndSerialNumber((Name)cert.getIssuerDN(),X509number); - - // create a new SignerInfo - SignerInfo signer_info = new SignerInfo(issuer, AlgorithmID.sha1, privateKey); - // create some authenticated attributes - // the message digest attribute is automatically added - Attribute[] attributes = new Attribute[2]; - // content type is data - attributes[0] = new Attribute(ObjectID.contentType, new ASN1Object[] {ObjectID.cms_data}); - // signing time is now - attributes[1] = new Attribute(ObjectID.signingTime, new ASN1Object[] {new ChoiceOfTime().toASN1Object()}); - // set the attributes - signer_info.setSignedAttributes(attributes); - // finish the creation of SignerInfo by calling method addSigner - try { - signed_data.addSignerInfo(signer_info); - - if(two_users) - { - // another SignerInfo without authenticated attributes and MD5 as hash algorithm - signer_info = new SignerInfo(new IssuerAndSerialNumber((Name)cert.getIssuerDN(),X509number), - AlgorithmID.md5, privateKey); - // the message digest itself is protected - signed_data.addSignerInfo(signer_info); - } - - } catch (NoSuchAlgorithmException ex) { - throw new CMSException("No implementation for signature algorithm: "+ex.getMessage()); - } - - ContentInfo ci = new ContentInfo(signed_data); - return ci.toASN1Object(); - } - -public String cutXML(String input) - { - int pos = input.indexOf(">"); - if(pos!=-1) - return input.substring(pos+1); - else - return input; - } - - -} diff --git a/spss.test/src/testgenerator/TestGeneratorCX0.java b/spss.test/src/testgenerator/TestGeneratorCX0.java deleted file mode 100644 index 31778c6a2..000000000 --- a/spss.test/src/testgenerator/TestGeneratorCX0.java +++ /dev/null @@ -1,2940 +0,0 @@ - -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); - - } - -} - diff --git a/spss.test/src/testgenerator/TestGeneratorCX1.java b/spss.test/src/testgenerator/TestGeneratorCX1.java deleted file mode 100644 index 44670742b..000000000 --- a/spss.test/src/testgenerator/TestGeneratorCX1.java +++ /dev/null @@ -1,1054 +0,0 @@ -package testgenerator; - -import iaik.ixsil.algorithms.Transform; -import iaik.ixsil.algorithms.TransformImplBase64Decode; -import iaik.ixsil.algorithms.TransformImplCanonicalXML; -import iaik.ixsil.algorithms.TransformImplCanonicalXMLWithComments; -import iaik.ixsil.algorithms.TransformImplEnvelopedSignature; -import iaik.ixsil.algorithms.TransformImplExclusiveCanonicalXML; -import iaik.ixsil.algorithms.TransformImplExclusiveCanonicalXMLWithComments; -import iaik.ixsil.algorithms.TransformImplXPath; -import iaik.ixsil.algorithms.TransformImplXPath2; -import iaik.ixsil.algorithms.TransformImplXSLT; -import iaik.ixsil.core.Position; -import iaik.ixsil.util.URI; -import java.io.BufferedWriter; -import java.io.ByteArrayInputStream; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.FileWriter; -import java.io.InputStream; -import java.net.URL; -import java.net.URLConnection; -import java.util.ArrayList; -import java.util.HashMap; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.w3c.dom.Document; -import org.w3c.dom.Node; - -import at.gv.egovernment.moa.util.Base64Utils; -import at.gv.egovernment.moa.util.DOMUtils; - -/** - * @author Administrator - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class TestGeneratorCX1 extends TestCases { - - String datadirectory = "data/CX1/"; - - String base64content = "RGllcyBzaW5kIFRlc3RkYXRlbg=="; - - String defaultblock = - ""+ - ""+ - "PKCS12RSAKey1"+ - ""+ - ""+ - ""+ - ""+ - ""+ - "Gesundheitliche Auswirkungen elektronischer Signaturen"+ - "Ellipse"+ - "Kurvenreich"+ - "1951-04-16"+ - "Hinterm Berg"+ - "6-930-21512-12"+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "text/html"+ - "http://www.description.com"+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""; - - private static final int canAlgCanXML = 1; - private static final int canAlgCanXMLwithCom = 2; - private static final int canAlgExcXML = 3; - private static final int canAlgExcXMLwithCom = 4; - - - public String fileprefix = null; - public String filesuffix = null; - - public TestGeneratorCX1() throws Exception { - - super(); - - // Set config properties - configuration_.setProperty("TestClass", "TestGeneratorCX1"); -// configuration_.setProperty("privateKeyFile", baseDir + "additionalFiles/keys/RSAPrivateKey.der"); -// configuration_.setProperty("publicKeyFile", baseDir + "additionalFiles/keys/RSAPublicKey.der"); -// configuration_.setProperty("signatureFile", baseDir + "additionalFiles/signatures/Signature.unit1.xml"); - - iaik.security.provider.IAIK.addAsProvider(); - iaik.security.ecc.provider.ECCProvider.addAsProvider(); - } - - public static void main(String[] args) throws Exception { - TestGeneratorCX1 testcase = new TestGeneratorCX1(); - - testcase.createConfig(); - testcase.create001(); - testcase.create002(); - testcase.create003(); - testcase.create004(); - testcase.create005(); - testcase.create006(); - testcase.create007(); - testcase.create008(); - testcase.create009(); - testcase.create010(); - testcase.create011(); - testcase.create012(); - testcase.create013(); - testcase.create014(); - - testcase.create051(); - testcase.create052(); - testcase.create053(); - testcase.create054(); - testcase.create055(); - - } - - public void createConfig() throws Exception { - - String file = configuration_.getProperty("baseDir") + datadirectory + - configuration_.getProperty("TestClass") + - ".Config.xml"; - String config = - - ""+ - " "+ - " "+ - - " "+ - " "+ - " "+ - " "+ - " "+ - " "+ - " "+ - ""; - - - /*""+ - " "+ - ""+ - "" + - "";*/ - - FileOutputStream fos = new FileOutputStream(file); - fos.write(config.getBytes()); - fos.flush(); - fos.close(); - - fileprefix = configuration_.getProperty("baseDir")+ datadirectory + configuration_.getProperty("TestClass") + "."; - filesuffix = ".xml"; - } - - public void create001() throws Exception { - - String TestNumber = "001"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - "

Buch:

"+ - "
"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); - trans.setInput(s,null); - trans.setStyleSheet(s,null); - tr[0] = trans; - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); - - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc); - - writeFile(resFile, output); - - } - - public void create002() throws Exception { - - String TestNumber = "002"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "

Buch: "+ - "

"+ - ""+ - ""+ - "
"+ - "
"+ - "
"); - - req = replaceString(req,"SecurityLayerConformity=\"false\"","SecurityLayerConformity=\"true\""); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); - trans.setInput(s,null); - trans.setStyleSheet(s,null); - tr[0] = trans; - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); - //cpkcs.createReferenceWithManifest(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),"manifestObject"); - cpkcs.createETSIObjects("file:/"+configuration_.getProperty("webbaseDir")+"resources/BookData.xml"); - cpkcs.setKeyInformation(1); - - cpkcs.signer.getSignature().setId("signature-1-1"); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc); - - writeFile(resFile, output); - - } - - public void create003() throws Exception { - - String TestNumber = "003"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - "//data:book/data:first-name"+ - ""); - - req = replaceString(req,"text/html","text/plain"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - Transform[] tr = new Transform[1]; - TransformImplXPath trans = new TransformImplXPath(); - InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/BookData.xml"); - trans.setInput(s,null); - trans.addNSDeclaration("data",new URI("http://uri.data.org")); - trans.setXPath("//data:book/data:first-name"); - //trans.setXPath("ancestor-or-self::data:first-name"); - - tr[0] = trans; - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc); - - output = replaceString(output,"",""); // workaround - - writeFile(resFile, output); - - } - - public void create004() throws Exception { - - String TestNumber = "004"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - "//data:book/data:first-name"+ - ""); - - req = replaceString(req,"text/html","text/xml"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - Transform[] tr = new Transform[1]; - TransformImplXPath2 trans = new TransformImplXPath2(); - InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/BookData.xml"); - trans.setInput(s,null); - //trans.addNSDeclaration("data",new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml")); - //trans.setXPath("/data:book/data:first-name/node()"); - HashMap temp = new HashMap(); - temp.put("data",new URI("http://uri.data.org")); - trans.addXPathFilter("//data:book/data:first-name",TransformImplXPath2.FILTER_MODE_SUBTRACT_,temp); - tr[0] = trans; - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc); - - output = replaceString(output,"", - ""); - - req = replaceString(req,"text/html","text/xml"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - Transform[] tr = new Transform[1]; - TransformImplCanonicalXML trans = new TransformImplCanonicalXML(); - InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); - trans.setInput(s,null); - /*trans.addNSDeclaration("data",new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml")); - trans.setXPath("/data:book/data:first-name/node()"); - trans.*/ - tr[0] = trans; - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc); - - writeFile(resFile, output); - - } - - public void create006() throws Exception { - - String TestNumber = "006"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""); - - req = replaceString(req,"text/html","text/xml"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - Transform[] tr = new Transform[1]; - TransformImplCanonicalXMLWithComments trans = new TransformImplCanonicalXMLWithComments(); - InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); - trans.setInput(s,null); - /*trans.addNSDeclaration("data",new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml")); - trans.setXPath("/data:book/data:first-name/node()"); - trans.*/ - tr[0] = trans; - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc); - - writeFile(resFile, output); - - } - - public void create007() throws Exception { - - String TestNumber = "007"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""); - - req = replaceString(req,"text/html","text/xml"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - Transform[] tr = new Transform[1]; - TransformImplExclusiveCanonicalXML trans = new TransformImplExclusiveCanonicalXML(); - InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); - trans.setInput(s,null); - trans.setInclusiveNamespacePrefixes("dsig"); - /*trans.addNSDeclaration("data",new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml")); - trans.setXPath("/data:book/data:first-name/node()"); - trans.*/ - tr[0] = trans; - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc); - - writeFile(resFile, output); - - } - - public void create008() throws Exception { - - String TestNumber = "008"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""); - - req = replaceString(req,"text/html","text/xml"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - Transform[] tr = new Transform[1]; - TransformImplExclusiveCanonicalXMLWithComments trans = new TransformImplExclusiveCanonicalXMLWithComments(); - InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); - trans.setInput(s,null); - trans.setInclusiveNamespacePrefixes("dsig"); - /*trans.addNSDeclaration("data",new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml")); - trans.setXPath("/data:book/data:first-name/node()"); - trans.*/ - tr[0] = trans; - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc); - - writeFile(resFile, output); - - } - - public void create009() throws Exception { - - String TestNumber = "009"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""); - - req = replaceString(req,""+ - ""+ - "Gesundheitliche Auswirkungen elektronischer Signaturen"+ - "Ellipse"+ - "Kurvenreich"+ - "1951-04-16"+ - "Hinterm Berg"+ - "6-930-21512-12"+ - ""+ - "",""); - - req = replaceString(req, - "", - ""); - - //req = replaceString(req,"Structure=\"detached\"","Structure=\"enveloping\""); - - - req = replaceString(req,"", - "Text//env:Document"); - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - InputStream bis = new ByteArrayInputStream(("Text").getBytes()); - //Document-Builder holen - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - //Dokument Parsen - Document reqDoc = builder.parse(bis); - - System.out.println(DOMUtils.serializeNode(reqDoc.getDocumentElement())); - //Position für die Signatur angeben - String xPath_Pos = "/node()"; - //XPAth-Prefixe deklarieren - String xPath_Prefix = "env xmlns:env=\"http://uri.env.org\""; - Position pos = new Position(xPath_Pos, xPath_Prefix,0); - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(reqDoc,pos,"signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - Transform[] tr = new Transform[1]; - TransformImplEnvelopedSignature trans = new TransformImplEnvelopedSignature(); - - /*trans.addNSDeclaration("data",new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml")); - trans.setXPath("/data:book/data:first-name/node()"); - trans.*/ - tr[0] = trans; - - cpkcs.createReferenceWithTransforms(new URI(""),tr,"reference-1-1"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc); - - output = replaceString(output,"Text",""); - - - - writeFile(resFile, output); - - } - - public void create010() throws Exception { - - String TestNumber = "010"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "

Buch: "+ - "

"+ - ""+ - ""+ - "
"+ - "
"+ - "
"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - Transform[] tr = new Transform[2]; - TransformImplCanonicalXML trans = new TransformImplCanonicalXML(); - InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); - trans.setInput(s,null); - /*trans.addNSDeclaration("data",new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml")); - trans.setXPath("/data:book/data:first-name/node()"); - trans.*/ - tr[0] = trans; - - TransformImplXSLT tr2 = new TransformImplXSLT(); - InputStream s2 = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); - tr2.setInput(s2,null); - tr2.setStyleSheet(s2,null); - tr[1] = tr2; - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc); - - writeFile(resFile, output); - - } - - public void create011() throws Exception { - - String TestNumber = "011"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - ""+ - ""+ - ""+ - ""); - - req = replaceString(req,"", - ""+ - ""+ - ""+ - Base64Utils.encode((""+ - ""+ - ""+ - ""+ - ""+ - "

Buch: "+ - "

"+ - ""+ - ""+ - "
"+ - "
").getBytes())+ - "
"+ - "
"+ - "
"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - URL u = new URL(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref_not_here.xsl"); - URLConnection hu = u.openConnection(); - //trans.setInput(s,null); - trans.setStyleSheet(hu.getInputStream(),new URI(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref_not_here.xsl")); - tr[0] = trans; - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); - //cpkcs.createReferenceWithManifest(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),"manifestObject"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc); - - writeFile(resFile, output); - } - - public void create012() throws Exception { - - String TestNumber = "012"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - ""+ - ""+ - ""+ - ""); - - req = replaceString(req,"", - ""+ - ""+ - ""+ - ""+ - "Gesundheitliche Auswirkungen elektronischer Signaturen"+ - "Ellipse"+ - "Kurvenreich"+ - "1951-04-16"+ - "Hinterm Berg"+ - "6-930-21512-12"+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "text/html"+ - ""+ - ""+ - ""+ - ""+ - ""+ - Base64Utils.encode((""+ - ""+ - ""+ - ""+ - ""+ - "

Buch: "+ - "

"+ - ""+ - ""+ - "
"+ - "
").getBytes())+ - "
"+ - "
"+ - "
"+ - "
"+ - "
"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - URL u = new URL(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref_not_here.xsl"); - URLConnection hu = u.openConnection(); - //trans.setInput(s,null); - trans.setStyleSheet(hu.getInputStream(),new URI(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref_not_here.xsl")); - - tr[0] = trans; - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-2"); - //cpkcs.createReferenceWithManifest(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),"manifestObject"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc); - - writeFile(resFile, output); - - } - - public void create013() throws Exception { - - String TestNumber = "013"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock, - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "text/html"+ - "http://www.description.com"+ - ""+ - ""+ - ""+ - "", - "CreateTransformsInfoProfile1"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); - trans.setInput(s,null); - trans.setStyleSheet(s,null); - tr[0] = trans; - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1-1"); - //cpkcs.createReferenceWithManifest(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),"manifestObject"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc); - - writeFile(resFile, output); - - } - - public void create014() throws Exception { - - String TestNumber = "014"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""); - - req = replaceString(req, - "", - ""); - - req = replaceString(req, - ""+ - ""+ - "Gesundheitliche Auswirkungen elektronischer Signaturen"+ - "Ellipse"+ - "Kurvenreich"+ - "1951-04-16"+ - "Hinterm Berg"+ - "6-930-21512-12"+ - ""+ - "", - /*"RGllcyBzaW5kIFRlc3RkYXRlbg=="*/""); - - req = replaceString(req,"text/html","text/plain"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - Transform[] tr = new Transform[1]; - TransformImplBase64Decode trans = new TransformImplBase64Decode(); - InputStream s = new FileInputStream(configuration_.getProperty("baseDir")+"resources/testBase64.txt"); - trans.setInput(s,null); - /*trans.addNSDeclaration("data",new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml")); - trans.setXPath("/data:book/data:first-name/node()"); - trans.*/ - tr[0] = trans; - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/testBase64.txt"),tr,"reference-1-1"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc); - - writeFile(resFile, output); - - } - - public void create051() throws Exception { - - String TestNumber = "051"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "

Buch: "+ - "

"+ - ""+ - ""+ - "
"+ - "
"+ - "
"); - - req = replaceString(req,"SecurityLayerConformity=\"false\"","SecurityLayerConformity=\"true\""); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"2202"); - } - - public void create052() throws Exception { - - String TestNumber = "052"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - "/data:book/data:first-name/node()"+ - ""); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"2215"); - - - } - - public void create053() throws Exception { - - String TestNumber = "053"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - " "+ - " "+ - " "+ - " "+ - " "); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"2220"); - - } - - public void create054() throws Exception { - - String TestNumber = "054"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock, - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "text/html"+ - "http://www.description.com"+ - ""+ - ""+ - ""+ - "", - "CreateTransformsInfoProfileNonValid"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"2234"); - - } - - public void create055() throws Exception { - - String TestNumber = "055"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "

Buch: "+ - "

"+ - ""+ - ""+ - "
"+ - "
"+ - "
"); - - req = replaceString(req,"SecurityLayerConformity=\"false\"","SecurityLayerConformity=\"true\""); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"2216"); - } - - public void writeFile(String filename,String data) throws Exception - { - BufferedWriter bw = new BufferedWriter(new FileWriter(filename)); - bw.write(data); - bw.close(); - } - - public String makeOutputFile(Document signatureDoc) throws Exception - { - ArrayList foundNodes = new ArrayList(); - findNode(signatureDoc.getDocumentElement(),"dsig:Signature",foundNodes); - - Node outputNode = null; - - if(foundNodes.size()>0) - { - outputNode = (Node)foundNodes.get(0); - } - - String erg = Node2String(outputNode); - - // remove the Prologue - int pos = erg.indexOf(""+ - ""+ - //" xmlns:etsi=\"http://uri.etsi.org/01903/v1.1.1#\">"+ - "" + - erg + " "; - - return erg; - } -} diff --git a/spss.test/src/testgenerator/TestGeneratorCX2.java b/spss.test/src/testgenerator/TestGeneratorCX2.java deleted file mode 100644 index ed5c5194a..000000000 --- a/spss.test/src/testgenerator/TestGeneratorCX2.java +++ /dev/null @@ -1,1050 +0,0 @@ -package testgenerator; - -import iaik.ixsil.algorithms.Transform; -import iaik.ixsil.algorithms.TransformImplEnvelopedSignature; -import iaik.ixsil.core.Position; -import iaik.ixsil.util.URI; - -import java.io.BufferedWriter; -import java.io.ByteArrayInputStream; -import java.io.FileOutputStream; -import java.io.FileWriter; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.w3c.dom.Document; -import org.w3c.dom.Node; - -import at.gv.egovernment.moa.util.Base64Utils; -import at.gv.egovernment.moa.util.Constants; -import at.gv.egovernment.moa.util.DOMUtils; -import at.gv.egovernment.moa.util.EntityResolverChain; -import at.gv.egovernment.moa.util.MOAEntityResolver; -import at.gv.egovernment.moa.util.MOAErrorHandler; -import at.gv.egovernment.moa.util.StreamEntityResolver; - -/** - * @author Administrator - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class TestGeneratorCX2 extends TestCases { - - String datadirectory = "data/CX2/"; - - String defaultblock = - ""+ - ""+ - "PKCS12RSAKey1"+ - ""+ - ""+ - ""+ - "Dies sind Testdaten"+ - ""+ - ""+ - ""+ - ""+ - "text/plain"+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "//data:Document"+ - ""+ - ""+ - ""+ - ""+ - ""; - - public String fileprefix = null; - public String filesuffix = null; - - private static final int canAlgCanXML = 1; - private static final int canAlgCanXMLwithCom = 2; - private static final int canAlgExcXML = 3; - private static final int canAlgExcXMLwithCom = 4; - - public TestGeneratorCX2() throws Exception { - - super(); - - // Set config properties - configuration_.setProperty("TestClass", "TestGeneratorCX2"); -// configuration_.setProperty("privateKeyFile", baseDir + "additionalFiles/keys/RSAPrivateKey.der"); -// configuration_.setProperty("publicKeyFile", baseDir + "additionalFiles/keys/RSAPublicKey.der"); -// configuration_.setProperty("signatureFile", baseDir + "additionalFiles/signatures/Signature.unit1.xml"); - - iaik.security.provider.IAIK.addAsProvider(); - iaik.security.ecc.provider.ECCProvider.addAsProvider(); - } - - public static void main(String[] args) throws Exception { - TestGeneratorCX2 testcase = new TestGeneratorCX2(); - - testcase.createConfig(); - testcase.create001(); - testcase.create002(); - testcase.create003(); - testcase.create004(); - testcase.create005(); - testcase.create006(); - testcase.create007(); - testcase.create008(); - testcase.create009(); - - testcase.create051(); - testcase.create052(); - testcase.create053(); - testcase.create054(); - testcase.create055(); - testcase.create056(); - testcase.create057(); - - } - - public void createConfig() throws Exception { - - String file = configuration_.getProperty("baseDir") + datadirectory + - configuration_.getProperty("TestClass") + - ".Config.xml"; - String config = - - ""+ - " "+ - " "+ - " "+ - " "+ - " "+ - " "+ - " "+ - " "+ - " "+ - ""; - - FileOutputStream fos = new FileOutputStream(file); - fos.write(config.getBytes()); - fos.flush(); - fos.close(); - - fileprefix = configuration_.getProperty("baseDir")+ datadirectory + configuration_.getProperty("TestClass") + "."; - filesuffix = ".xml"; - } - - public void create001() throws Exception { - - String TestNumber = "001"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - ""+ - ""+readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+""+ - //readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+ - ""+ - ""); - - writeFile(reqFile,req); - - InputStream bis = new ByteArrayInputStream((""+readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+"").getBytes()); - //Document-Builder holen - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - //Dokument Parsen - Document reqDoc = builder.parse(bis); - - System.out.println(DOMUtils.serializeNode(reqDoc.getDocumentElement())); - //Position für die Signatur angeben - String xPath_Pos = "/node()"; - //XPAth-Prefixe deklarieren - String xPath_Prefix = "data xmlns:data=\"http://uri.data.org\""; - Position pos = new Position(xPath_Pos, xPath_Prefix,0); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - //Signer erzeugen, der das obige Doc als Basis nimmt, und die Signatur an der besagten stelle einfügt - cpkcs.init(reqDoc,pos,"signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testSimple.txt","reference-1-1"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc,"",readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+""); - - writeFile(resFile, output); - - } - - public void create002() throws Exception { - - String TestNumber = "002"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - InputStream bis = new ByteArrayInputStream((""+readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+"").getBytes()); - //Document-Builder holen - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - //Dokument Parsen - Document reqDoc = builder.parse(bis); - - System.out.println(DOMUtils.serializeNode(reqDoc.getDocumentElement())); - //Position für die Signatur angeben - String xPath_Pos = "/node()"; - //XPAth-Prefixe deklarieren - String xPath_Prefix = "data xmlns:data=\"http://uri.data.org\""; - Position pos = new Position(xPath_Pos, xPath_Prefix,0); - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - //Signer erzeugen, der das obige Doc als Basis nimmt, und die Signatur an der besagten stelle einfügt - cpkcs.init(reqDoc,pos,"signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testSimple.txt","reference-1-1"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc,"",readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+""); - - writeFile(resFile, output); - - } - - public void create003() throws Exception { - - String TestNumber = "003"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - ""+readBinaryFileAsBase64(configuration_.getProperty("baseDir")+"resources/testDocument.xml")+""+ - ""); - - //req = replaceString(req,"Index=\"0\">//data:Document","Index=\"0\">//Hugo"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - InputStream bis = new ByteArrayInputStream((""+readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+"").getBytes()); - //Document-Builder holen - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - //Dokument Parsen - Document reqDoc = builder.parse(bis); - - System.out.println(DOMUtils.serializeNode(reqDoc.getDocumentElement())); - //Position für die Signatur angeben - String xPath_Pos = "/node()"; - //XPAth-Prefixe deklarieren - String xPath_Prefix = "data xmlns:data=\"http://uri.data.org\""; - Position pos = new Position(xPath_Pos, xPath_Prefix,0); - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - //Signer erzeugen, der das obige Doc als Basis nimmt, und die Signatur an der besagten stelle einfügt - cpkcs.init(reqDoc,pos,"signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testSimple.txt","reference-1-1"); - cpkcs.setKeyInformation(1); - - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc,"",cutXML(readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt"))+""); - - writeFile(resFile, output); - - } - - public void create004() throws Exception { - - String TestNumber = "004"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - ""+ - ""+readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+""+ - ""+ - ""); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - InputStream bis = new ByteArrayInputStream((""+readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+"").getBytes()); - //Document-Builder holen - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - //Dokument Parsen - Document reqDoc = builder.parse(bis); - - System.out.println(DOMUtils.serializeNode(reqDoc.getDocumentElement())); - //Position für die Signatur angeben - String xPath_Pos = "/node()"; - //XPAth-Prefixe deklarieren - String xPath_Prefix = "data xmlns:data=\"http://uri.data.org\""; - Position pos = new Position(xPath_Pos, xPath_Prefix,0); - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - //Signer erzeugen, der das obige Doc als Basis nimmt, und die Signatur an der besagten stelle einfügt - cpkcs.init(reqDoc,pos,"signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testSimple.txt","reference-1-1"); - cpkcs.setKeyInformation(1); - - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc,"",readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+""); - - writeFile(resFile, output); - } - - public void create005() throws Exception { - - String TestNumber = "005"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - ""+ - "Dies sind Testdaten"+ - ""+ - ""); - - req = replaceString(req,"", - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""); - - req = replaceString(req,"", - ""+ - ""); - - - - //req = replaceString(req,"Index=\"0\">//data:Document","Index=\"0\">//data:Document"); - System.out.println("!!!"); - System.out.println(req); - - req = replaceString(req, - ""+ - "Dies sind Testdaten"+ - "", - ""+ - "" - ); - - System.out.println(req); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - //InputStream bis = new ByteArrayInputStream(("Dies sind Testdaten").getBytes()); - InputStream bis = new ByteArrayInputStream(("Dies sind Testdaten").getBytes()); - //Document-Builder holen - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - factory.setValidating(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - - Map m = new HashMap(); - m.put("http://tollesSchema.org/test.xsd",new ByteArrayInputStream(( - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "").getBytes())); - - EntityResolverChain chain = new EntityResolverChain(); - chain.addEntityResolver(new StreamEntityResolver(m)); - chain.addEntityResolver(new MOAEntityResolver()); - builder.setEntityResolver(chain); - - //Dokument Parsen - Document reqDoc = DOMUtils.parseDocument(bis,true,Constants.ALL_SCHEMA_LOCATIONS, null,chain,new MOAErrorHandler()); - - System.out.println(DOMUtils.serializeNode(reqDoc.getDocumentElement())); - //Position für die Signatur angeben - //String xPath_Pos = "/node()"; - String xPath_Pos = "//data:Document"; - //XPAth-Prefixe deklarieren - //String xPath_Prefix = "data xmlns:data=\"http://uri.data.org\""; - String xPath_Prefix = "data http://uri.data.org"; - - Position pos = new Position(xPath_Pos, xPath_Prefix,0); - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - //Signer erzeugen, der das obige Doc als Basis nimmt, und die Signatur an der besagten stelle einfügt - cpkcs.init(reqDoc,pos,"signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testSimple.txt","reference-1-1"); - Transform[] tr = new Transform[1]; - TransformImplEnvelopedSignature trans = new TransformImplEnvelopedSignature(); - tr[0] = trans; - //Enveloped Transformation - cpkcs.createReferenceWithTransforms(new URI("#document"),tr,"reference-1-1"); - cpkcs.setKeyInformation(1); - - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc,"",readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+""); - - writeFile(resFile, output); - - } - - public void create006() throws Exception { - - String TestNumber = "006"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - ""+ - "Dies sind Testdaten"+ - ""+ - ""); - - req = replaceString(req, - ""+ - "//data:Document"+ - ""+ - "", - "CreateSignatureEnvironmentProfile1"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - InputStream bis = new ByteArrayInputStream((""+readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+"").getBytes()); - //Document-Builder holen - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - //Dokument Parsen - - - Document reqDoc = builder.parse(bis); - - System.out.println(DOMUtils.serializeNode(reqDoc.getDocumentElement())); - //Position für die Signatur angeben - String xPath_Pos = "/node()"; - //XPAth-Prefixe deklarieren - String xPath_Prefix = "data xmlns:data=\"http://uri.data.org\""; - Position pos = new Position(xPath_Pos, xPath_Prefix,0); - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - //Signer erzeugen, der das obige Doc als Basis nimmt, und die Signatur an der besagten stelle einfügt - cpkcs.init(reqDoc,pos,"signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testSimple.txt","reference-1-1"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc,"",readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+""); - - writeFile(resFile, output); - - } - - public void create007() throws Exception { - - String TestNumber = "007"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - ""+ - ""+Base64Utils.encode(("Dies sind Testdaten").getBytes())+""+ - ""+ - ""); - - req = replaceString(req, - ""+ - "Dies sind Testdaten"+ - "", - ""+ - "" - ); - - req = replaceString(req,"", - ""+ - ""+ - ""+ - ""+Base64Utils.encode(("").getBytes())+""+ - ""+ - ""+ - ""); - - req = replaceString(req," xmlns:data=\"http://uri.data.org\"",""); - req = replaceString(req,"//data:Document","//Document"); - - - req = replaceString(req,"", - ""+ - ""); - - //req = replaceString(req,"Index=\"0\">//data:Document","Index=\"0\">//Hugo"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - InputStream bis = new ByteArrayInputStream((""+readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+"").getBytes()); - //Document-Builder holen - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - factory.setValidating(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - //Dokument Parsen - Map m = new HashMap(); - m.put("http://dtd.org/tollesDTD.dtd",new ByteArrayInputStream(( - "").getBytes())); - - EntityResolverChain chain = new EntityResolverChain(); - chain.addEntityResolver(new StreamEntityResolver(m)); - chain.addEntityResolver(new MOAEntityResolver()); - builder.setEntityResolver(chain); - - Document reqDoc = DOMUtils.parseDocument(bis,true,Constants.ALL_SCHEMA_LOCATIONS, null,chain,new MOAErrorHandler()); - - System.out.println(DOMUtils.serializeNode(reqDoc.getDocumentElement())); - //Position für die Signatur angeben - String xPath_Pos = "/Document"; - //XPAth-Prefixe deklarieren - String xPath_Prefix = ""; - Position pos = new Position(xPath_Pos, xPath_Prefix,0); - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - //Signer erzeugen, der das obige Doc als Basis nimmt, und die Signatur an der besagten stelle einfügt - cpkcs.init(reqDoc,pos,"signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testSimple.txt","reference-1-1"); - Transform[] tr = new Transform[1]; - TransformImplEnvelopedSignature trans = new TransformImplEnvelopedSignature(); - tr[0] = trans; - //Enveloped Transformation - cpkcs.createReferenceWithTransforms(new URI("#document"),tr,"reference-1-1"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc,"",readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+""); - - writeFile(resFile, output); - - } - - public void create008() throws Exception { - - String TestNumber = "008"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - ""+ - "Dies sind Testdaten"+ - ""+ - ""); - - req = replaceString(req,"", - ""+ - ""+ - ""+ - - Base64Utils.encode((""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "").getBytes())+ - - ""+ - ""+ - ""); - - req = replaceString(req,"", - ""+ - ""); - - - //req = replaceString(req,"Index=\"0\">//data:Document","Index=\"0\">//data:Document"); - System.out.println("!!!"); - System.out.println(req); - - req = replaceString(req, - ""+ - "Dies sind Testdaten"+ - "", - ""+ - "" - ); - - System.out.println(req); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - InputStream bis = new ByteArrayInputStream(("Dies sind Testdaten").getBytes()); - //Document-Builder holen - //Document-Builder holen - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - factory.setValidating(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - - Map m = new HashMap(); - m.put("http://tollesSchema.org/test.xsd",new ByteArrayInputStream(( - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "").getBytes())); - - EntityResolverChain chain = new EntityResolverChain(); - chain.addEntityResolver(new StreamEntityResolver(m)); - chain.addEntityResolver(new MOAEntityResolver()); - builder.setEntityResolver(chain); - - //Dokument Parsen - Document reqDoc = DOMUtils.parseDocument(bis,true,Constants.ALL_SCHEMA_LOCATIONS, null,chain,new MOAErrorHandler()); - - System.out.println(DOMUtils.serializeNode(reqDoc.getDocumentElement())); - //Position für die Signatur angeben - String xPath_Pos = "//data:Document"; - //XPAth-Prefixe deklarieren - //String xPath_Prefix = "data xmlns:data=\"http://uri.data.org\""; - String xPath_Prefix = "data http://uri.data.org"; - Position pos = new Position(xPath_Pos, xPath_Prefix,0); - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - //Signer erzeugen, der das obige Doc als Basis nimmt, und die Signatur an der besagten stelle einfügt - cpkcs.init(reqDoc,pos,"signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testSimple.txt","reference-1-1"); - Transform[] tr = new Transform[1]; - TransformImplEnvelopedSignature trans = new TransformImplEnvelopedSignature(); - tr[0] = trans; - //Enveloped Transformation - cpkcs.createReferenceWithTransforms(new URI("#document"),tr,"reference-1-1"); - cpkcs.setKeyInformation(1); - - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc,"",readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+""); - - writeFile(resFile, output); - - } - - public void create009() throws Exception { - - String TestNumber = "009"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - ""+ - "Dies sind Testdaten"+ - ""+ - ""); - - req = replaceString(req,"", - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""); - - req = replaceString(req,"", - ""+ - ""); - - - - //req = replaceString(req,"Index=\"0\">//data:Document","Index=\"0\">//data:Document"); - System.out.println("!!!"); - System.out.println(req); - - req = replaceString(req, - ""+ - "Dies sind Testdaten"+ - "", - ""+ - "" - ); - - System.out.println(req); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - //InputStream bis = new ByteArrayInputStream(("Dies sind Testdaten").getBytes()); - InputStream bis = new ByteArrayInputStream(("Dies sind Testdaten").getBytes()); - //Document-Builder holen - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - factory.setValidating(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - - Map m = new HashMap(); - m.put("http://tollesSchema.org/test.xsd",new ByteArrayInputStream(( - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "").getBytes())); - - EntityResolverChain chain = new EntityResolverChain(); - chain.addEntityResolver(new StreamEntityResolver(m)); - chain.addEntityResolver(new MOAEntityResolver()); - builder.setEntityResolver(chain); - - //Dokument Parsen - Document reqDoc = DOMUtils.parseDocument(bis,true,Constants.ALL_SCHEMA_LOCATIONS, null,chain,new MOAErrorHandler()); - - System.out.println(DOMUtils.serializeNode(reqDoc.getDocumentElement())); - //Position für die Signatur angeben - //String xPath_Pos = "/node()"; - String xPath_Pos = "//data:Document"; - //XPAth-Prefixe deklarieren - //String xPath_Prefix = "data xmlns:data=\"http://uri.data.org\""; - String xPath_Prefix = "data http://uri.data.org"; - - Position pos = new Position(xPath_Pos, xPath_Prefix,0); - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - //Signer erzeugen, der das obige Doc als Basis nimmt, und die Signatur an der besagten stelle einfügt - cpkcs.init(reqDoc,pos,"signature-1-1"); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testSimple.txt","reference-1-1"); - Transform[] tr = new Transform[1]; - TransformImplEnvelopedSignature trans = new TransformImplEnvelopedSignature(); - tr[0] = trans; - //Enveloped Transformation - cpkcs.createReferenceWithTransforms(new URI("#xpointer(id(document))"),tr,"reference-1-1"); - cpkcs.setKeyInformation(1); - - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc,"",readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+""); - - writeFile(resFile, output); - - } - - public void create051() throws Exception { - - String TestNumber = "051"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",""); - - req = replaceString(req,"", - ""+ - ""+ - "datentoller Text"+ - ""+ - ""); - - req = replaceString(req,"",""); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"1109"); - - } - - public void create052() throws Exception { - - String TestNumber = "052"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - "PFRhZzE+PC9UYWcxPjxUYWcyPjwvVGFnMj4NCg0K"+ - ""); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"2218"); - - } - - public void create053() throws Exception { - - String TestNumber = "053"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"1110"); - - } - - public void create054() throws Exception { - - String TestNumber = "054"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - "Dies sind Testdaten"+ - ""); - - req = replaceString(req, - ""+ - ""+ - "text/plain"+ - ""+ - "", - ""+ - ""+ - ""+ - "/data:book/data:first-name/node()"+ - ""+ - ""+ - ""+ - "text/xml"+ - ""+ - ""); - - req = replaceString(req, - "//data:Document", - "//data:Document1"); - - req = replaceString(req, - ""+ - ""+readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+""+ - "", - ""); - - //req = replaceString(req,"/data:Document","/data:nonExistingElement"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"2212"); - - } - - public void create056() throws Exception { - - String TestNumber = "056"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - ""+ - "andereDaten als in "+configuration_.getProperty("webbaseDir")+"resources/CSEP.xml"+ - ""+ - ""); - - req = replaceString(req, - ""+ - "//data:Document"+ - ""+ - "", - "wrongCreateSignatureEnvironmentProfile"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"2236"); - - } - - public void create057() throws Exception { - - String TestNumber = "057"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - "Dies sind Testdaten"+ - ""); - - req = replaceString(req, - ""+ - ""+ - "text/plain"+ - ""+ - "", - ""+ - ""+ - ""+ - "/data:book/data:first-name/node()"+ - ""+ - ""+ - ""+ - "text/xml"+ - ""+ - ""); - - req = replaceString(req, - "//data:Document", - "]]'_'[[//data:Document"); - - req = replaceString(req, - ""+ - ""+readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")+""+ - "", - ""); - - //req = replaceString(req,"/data:Document","/data:nonExistingElement"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"2212"); - - } - - public void create055() throws Exception { - - String TestNumber = "055"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"", - ""+ - ""+ - "andereDaten als in "+configuration_.getProperty("webbaseDir")+"resources/CSEP.xml"+ - ""+ - ""); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"1110"); - - } - - - public void writeFile(String filename,String data) throws Exception - { - BufferedWriter bw = new BufferedWriter(new FileWriter(filename)); - bw.write(data); - bw.close(); - } - - public String makeOutputFile(Document signatureDoc,String prefix,String suffix) 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#\">"+ - "" +prefix+ - erg +suffix+ " "; - - return erg; - } - - public String makeOutputFile(Document signatureDoc) throws Exception - { - return this.makeOutputFile(signatureDoc,"",""); - } -} diff --git a/spss.test/src/testgenerator/TestGeneratorFeature41.java b/spss.test/src/testgenerator/TestGeneratorFeature41.java deleted file mode 100644 index 7ecb28449..000000000 --- a/spss.test/src/testgenerator/TestGeneratorFeature41.java +++ /dev/null @@ -1,1167 +0,0 @@ -package testgenerator; - -import iaik.ixsil.algorithms.CanonicalizationAlgorithmImplCanonicalXML; -import iaik.ixsil.algorithms.DigestAlgorithmImplSHA1; -import iaik.ixsil.algorithms.SignatureAlgorithmImplRSA; -import iaik.ixsil.algorithms.Transform; -import iaik.ixsil.algorithms.TransformImplBase64Decode; -import iaik.ixsil.algorithms.TransformImplEnvelopedSignature; -import iaik.ixsil.algorithms.TransformImplXSLT; -import iaik.ixsil.core.Position; -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.keyinfo.KeyManagerImpl; -import iaik.ixsil.keyinfo.x509.KeyProviderImplX509Data; -import iaik.ixsil.keyinfo.x509.X509Data; -import iaik.ixsil.util.URI; - -import iaik.pkcs.pkcs12.PKCS12; -import iaik.utils.Base64OutputStream; - -import java.io.BufferedWriter; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.FileInputStream; -import java.io.FileWriter; -import java.io.InputStream; -import java.net.URL; -import java.net.URLConnection; -import java.security.cert.X509Certificate; -import java.security.interfaces.RSAPrivateKey; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -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.Constants; -import at.gv.egovernment.moa.util.DOMUtils; -import at.gv.egovernment.moa.util.EntityResolverChain; -import at.gv.egovernment.moa.util.MOAEntityResolver; -import at.gv.egovernment.moa.util.MOAErrorHandler; -import at.gv.egovernment.moa.util.StreamEntityResolver; - -/** - * @author Gregor Karlinger - */ -public class TestGeneratorFeature41 extends TestCases -{ - - String datadirectory = "data/feature41/"; - - public static void main(String[] args) throws Exception - { - TestGeneratorFeature41 testcase = new TestGeneratorFeature41(); - - testcase.create001(); - testcase.create002(); - testcase.create003(); - testcase.create004(); - testcase.create005(); - } - - /* ==================================================================================================== */ - - public TestGeneratorFeature41() throws Exception - { - - super(); - - // Set config properties - configuration_.setProperty("TestClass", "TestGeneratorFeature41"); - - iaik.security.provider.IAIK.addAsJDK14Provider(); - iaik.security.ecc.provider.ECCProvider.addAsProvider(); - } - - /* ---------------------------------------------------------------------------------------------------- */ - - 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 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 create001() throws Exception - { - - String testNumber = "001"; - - 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); - - // Create and configure reference - String baseDir = configuration_.getProperty("baseDir"); - InputStream dataIS = new FileInputStream(baseDir + "resources/documents/testDaten.txt"); - - SignerReference reference = signedInfo.createReference(); - reference.setURI(new URI("testDaten.txt")); - reference.setExplicitData(dataIS, SignerReference.EXPLICITDATATYPE_RAW_); - DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); - reference.setDigestAlgorithm(digestAlg); - reference.setId("reference-1-1"); - 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); - 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(); - - String erg = makeOutputFile(signer.toDocument()); - writeFile(resFile, erg); - } - - /* ---------------------------------------------------------------------------------------------------- */ - - public void create002() throws Exception - { - - String testNumber = "002"; - - String resFile = - configuration_.getProperty("baseDir") - + datadirectory - + configuration_.getProperty("TestClass") - + "." - + testNumber - + ".Res.xml"; - - Document signatureDoc = createPKCS12Sig(testNumber, "b64:Dies sind Testdaten", true, false, null, false); - String erg = makeOutputFile(signatureDoc); - writeFile(resFile, erg); - } - - /* ---------------------------------------------------------------------------------------------------- */ - - public void create003() throws Exception - { - - String testNumber = "003"; - - String resFile = - configuration_.getProperty("baseDir") - + datadirectory - + configuration_.getProperty("TestClass") - + "." - + testNumber - + ".Res.xml"; - - InputStream bis = - new ByteArrayInputStream( - ("" - + readFile(configuration_.getProperty("baseDir") + "resources/documents/testSimple.txt") - + "") - .getBytes()); - - //Document-Builder holen - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - //Dokument Parsen - Document reqDoc = builder.parse(bis); - - System.out.println(DOMUtils.serializeNode(reqDoc.getDocumentElement())); - //Position für die Signatur angeben - String xPath_Pos = "/node()"; - //XPAth-Präfixe deklarieren - String xPath_Prefix = "data xmlns:data=\"http://uri.data.org\""; - Position pos = new Position(xPath_Pos, xPath_Prefix, 0); - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - //Signer erzeugen, der das obige Doc als Basis nimmt, und die Signatur an der besagten stelle einfügt - cpkcs.init(reqDoc, pos, "signature-1-1"); - cpkcs.setCanoncialization(1); - cpkcs.createReference( - false, - configuration_.getProperty("webbaseDir") + "resources/documents/testSimple.txt", - "reference-1-1"); - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = - makeOutputFile( - doc, - "", - cutXML(readFile(configuration_.getProperty("baseDir") + "resources/documents/testSimple.txt")) - + ""); - - writeFile(resFile, output); - } - - /* ---------------------------------------------------------------------------------------------------- */ - - public void create004() throws Exception - { - - String testNumber = "004"; - - String resFile = - configuration_.getProperty("baseDir") - + datadirectory - + configuration_.getProperty("TestClass") - + "." - + testNumber - + ".Res.xml"; - - InputStream bis = - new ByteArrayInputStream( - ("Dies sind Testdaten") - .getBytes()); - - //Document-Builder holen - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - factory.setValidating(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - - Map m = new HashMap(); - m.put( - "http://anywhere.org/testDocument.schema.xsd", - new ByteArrayInputStream( - ("" - + "" - + "" - + "" - + "" - + "" - + "" - + "" - + "") - .getBytes())); - - EntityResolverChain chain = new EntityResolverChain(); - chain.addEntityResolver(new StreamEntityResolver(m)); - chain.addEntityResolver(new MOAEntityResolver()); - builder.setEntityResolver(chain); - - //Dokument Parsen - Document reqDoc = - DOMUtils.parseDocument(bis, true, Constants.ALL_SCHEMA_LOCATIONS, null, chain, new MOAErrorHandler()); - - System.out.println(DOMUtils.serializeNode(reqDoc.getDocumentElement())); - - //Position für die Signatur angeben - String xPath_Pos = "//data:Document"; - - //XPAth-Prefixe deklarieren - String xPath_Prefix = "data http://uri.data.org"; - - Position pos = new Position(xPath_Pos, xPath_Prefix, 0); - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - //Signer erzeugen, der das obige Doc als Basis nimmt, und die Signatur an der besagten stelle einfügt - cpkcs.init(reqDoc, pos, "signature-1-1"); - cpkcs.setCanoncialization(1); - - //Enveloped Transformation - Transform[] tr = new Transform[1]; - TransformImplEnvelopedSignature trans = new TransformImplEnvelopedSignature(); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI("#document"), tr, "reference-1-1"); - - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - - String output = - makeOutputFile( - doc, - "", - readFile(configuration_.getProperty("baseDir") + "resources/documents/testSimple.txt") - + ""); - - writeFile(resFile, output); - } - - /* ---------------------------------------------------------------------------------------------------- */ - - public void create005() throws Exception - { - - String testNumber = "005"; - String resFile = - configuration_.getProperty("baseDir") - + datadirectory - + configuration_.getProperty("TestClass") - + "." - + testNumber - + ".Res.xml"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature-1-1"); - cpkcs.setCanoncialization(1); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - URL u = new URL(configuration_.getProperty("webbaseDir") + "resources/stylesheets/ref.book.notavailable.xsl"); - URLConnection hu = u.openConnection(); - - trans.setStyleSheet( - hu.getInputStream(), - new URI(configuration_.getProperty("webbaseDir") + "resources/stylesheets/ref.book.notavailable.xsl")); - tr[0] = trans; - - cpkcs.createReferenceWithTransforms( - new URI(configuration_.getProperty("webbaseDir") + "resources/documents/bookData.xml"), - tr, - "reference-1-1"); - - cpkcs.setKeyInformation(1); - - Document doc = cpkcs.returnSig(); - String output = makeOutputFile(doc); - writeFile(resFile, output); - } - - /* ---------------------------------------------------------------------------------------------------- */ - - public void writeFile(String filename, String data) throws Exception - { - BufferedWriter bw = new BufferedWriter(new FileWriter(filename)); - bw.write(data); - bw.close(); - } - - /* ---------------------------------------------------------------------------------------------------- */ - - private 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; - } - - /* ---------------------------------------------------------------------------------------------------- */ - - private 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 makeOutputFile(Document signatureDoc, String prefix, String suffix) 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#\">"+ - "" - + prefix - + erg - + suffix - + " "; - - return erg; - } - -} diff --git a/spss.test/src/testgenerator/TestGeneratorVC0.java b/spss.test/src/testgenerator/TestGeneratorVC0.java deleted file mode 100644 index f54689875..000000000 --- a/spss.test/src/testgenerator/TestGeneratorVC0.java +++ /dev/null @@ -1,1057 +0,0 @@ -package testgenerator; - -import iaik.asn1.ASN1Object; -import iaik.asn1.CodingException; -import iaik.asn1.DerCoder; -import iaik.asn1.ObjectID; -import iaik.asn1.structures.AlgorithmID; -import iaik.asn1.structures.Attribute; -import iaik.asn1.structures.ChoiceOfTime; -import iaik.asn1.structures.Name; -import iaik.cms.CMSException; -import iaik.cms.ContentInfoStream; -import iaik.cms.SignedDataStream; -import iaik.cms.SignerInfo; -import iaik.security.random.SecRandom; -import iaik.utils.StreamCopier; -import iaik.x509.X509Certificate; - -import java.io.BufferedInputStream; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.security.PrivateKey; -import java.security.Provider; -import java.security.SecureRandom; -import java.security.Security; -import java.security.SignatureException; - -import sun.misc.BASE64Encoder; - - -/** - * @author Administrator - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class TestGeneratorVC0 extends TestCases { - - String datadirectory = "data/VC0/"; - String datadirectory_l = "data/LVC"; - - public String defaultblock = - ""+ - ""+ - "2003-04-04T09:30:47-05:00"+ - ""+ - ""+ - ""+ - "text/plain"+ - "anyURI"+ - ""+ - ""+ - "RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM="+ - ""+ - ""+ - "TrustProfile1"+ - ""; - - public String defaultresponse = - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""; - - public String defaultresponse2 = - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""; - - /* - - - - - - */ - - public String b64_der_data = null; - public String b64_der_data_two = null; - public String b64_der_data_exp = null; - public String b64_der_data_exp_two = null; - public String b64_der_data_max = null; - - public String b64_der_data_1kb = null; - public String b64_der_data_10kb = null; - public String b64_der_data_100kb = null; - public String b64_der_data_1mb = null; - public String b64_der_data_10mb = null; - - public String cert_file_data = null; - public String cert_max_file_data = null; - public String cert_root_file_data = null; - - - public String fileprefix = null; - public String filesuffix = null; - - // signing certificate of user 2 - X509Certificate user2_sign; - // signing private key of user 2 - PrivateKey user2_sign_pk; - - // encryption certificate of user 2 - X509Certificate user2_crypt; - // encryption private key of user 2 - PrivateKey user2_crypt_pk; - // a certificate chain containing the user certs + CA - - X509Certificate[] certificates; - // secure random number generator - SecureRandom random; - - public TestGeneratorVC0() throws Exception - { - super(); - // Set config properties - configuration_.setProperty("TestClass", "TestGeneratorVC0"); - - - configuration_.setProperty( - "PKCS12file_maxmustermann", - (configuration_.getProperty("baseDir") + "/resources/Max_Mustermann (max).p12")); - - configuration_.setProperty("PKCS12password_maxmustermann", "max"); - - configuration_.setProperty( - "CERT_maxmustermann", - (configuration_.getProperty("baseDir") + "resources/Max_Mustermann.cer")); - - configuration_.setProperty( - "CERT_ROOT", - (configuration_.getProperty("baseDir") + "resources/IAIKRootMusterbehoerde.cer")); - - Provider [] list = Security.getProviders(); - for(int counter=0;counter"+ - " "+ - " "+ - " "+ - " "+ - " "+ - " "+ - " "+ - " "+ - " "+ - " "+ - ""; - - FileOutputStream fos = new FileOutputStream(file); - fos.write(config.getBytes()); - fos.flush(); - fos.close(); - - fileprefix = configuration_.getProperty("baseDir")+ datadirectory + configuration_.getProperty("TestClass") + "."; - filesuffix = ".xml"; - - } - - public static void main(String[] args) throws Exception { - TestGeneratorVC0 testcase = new TestGeneratorVC0(); - - 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.create051(); - testcase.create052(); - //testcase.create053(); - testcase.create054(); - testcase.create055(); - testcase.create056(); - testcase.create057(); - testcase.create058(); - - //testcase.createL00(); - - } - - 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 = replaceString(defaultblock,"",getCMSData(filename)); - req = replaceString(req,"",""); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/"+filename+".txt"); - req = replaceString(req, - "RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=", - ""); - - writeFile(reqFile,req); - - String resFile = configuration_.getProperty("baseDir")+ datadirectory_l+filename+"/" + configuration_.getProperty("TestClass") + "." + TestNumber + ".Res.xml"; - - String res = replaceString(defaultresponse,"",this.X509name); - res = replaceString(res,"",this.X509number.toString()); - res = replaceString(res,"",this.X509sub); - res = replaceString(res,"","0"); - res = replaceString(res,"","0"); - res = replaceString(res,"",cert_file_data); - res = replaceString(res,"",""); - //res = replaceString(res,"",""); - - - writeFile(resFile,res); - - - } - - public void create001() throws Exception - { - String TestNumber = "001"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",b64_der_data_exp); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - /*CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,"file:/"+configuration_.getProperty("baseDir")+"resources/testDaten.txt"); - cpkcs.setKeyInformation(); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc,"",readFile(configuration_.getProperty("baseDir")+"resources/testDaten.txt")+""); - - writeFile(resFile, output);*/ - - String res = replaceString(defaultresponse,"",this.X509name); - res = replaceString(res,"",this.X509number.toString()); - res = replaceString(res,"",this.X509sub); - res = replaceString(res,"","0"); - res = replaceString(res,"","0"); - res = replaceString(res,"",cert_file_data); - res = replaceString(res,"",""); - //res = replaceString(res,"",""); - - - writeFile(resFile,res); - - - } - - public void create002() throws Exception - { - String TestNumber = "002"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",b64_der_data_exp_two); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - req = replaceString(req, - "Signatories=\"1\"", - "Signatories=\"1 2\""); - - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - String res = replaceStringAll(defaultresponse2,"",this.X509name); - res = replaceStringAll(res,"",this.X509number.toString()); - res = replaceStringAll(res,"",this.X509sub); - res = replaceStringAll(res,"","0"); - res = replaceStringAll(res,"","0"); - res = replaceStringAll(res,"",cert_file_data); - //res = replaceString(res,"",""); - writeFile(resFile,res); - } - - public void create003() throws Exception - { - String TestNumber = "003"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",b64_der_data_exp); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - req = replaceString(req, - "Signatories=\"1\"", - "Signatories=\"all\""); - - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - String res = replaceString(defaultresponse,"",this.X509name); - res = replaceString(res,"",this.X509number.toString()); - res = replaceString(res,"",this.X509sub); - res = replaceString(res,"","0"); - res = replaceString(res,"","0"); - res = replaceString(res,"",cert_file_data); - res = replaceString(res,"",""); - writeFile(resFile,res); - } - - public void create004() throws Exception - { - String TestNumber = "004"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",b64_der_data_exp); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - req = replaceString(req, - "2003-04-04T09:30:47-05:00", - ""); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - String res = replaceString(defaultresponse,"",this.X509name); - res = replaceString(res,"",this.X509number.toString()); - res = replaceString(res,"",this.X509sub); - res = replaceString(res,"","0"); - res = replaceString(res,"","0"); - res = replaceString(res,"",cert_file_data); - res = replaceString(res,"",""); - writeFile(resFile,res); - } - - public void create005() throws Exception - { - String TestNumber = "005"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",b64_der_data_exp); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - req = replaceString(req, - "2003-04-04T09:30:47-05:00", - "2003-04-04T09:30:47-05:00"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - String res = replaceString(defaultresponse,"",this.X509name); - res = replaceString(res,"",this.X509number.toString()); - res = replaceString(res,"",this.X509sub); - res = replaceString(res,"","0"); - res = replaceString(res,"","0"); - res = replaceString(res,"",cert_file_data); - res = replaceString(res,"",""); - writeFile(resFile,res); - } - - public void create006() throws Exception - { - String TestNumber = "006"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",b64_der_data); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - req = replaceString(req, - ""+ - ""+ - "text/plain"+ - ""+configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"+ - ""+ - ""+ - "RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM="+ - ""+ - "", - ""); - - //req = replaceString(defaultblock, - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - String res = replaceString(defaultresponse,"",this.X509name); - res = replaceString(res,"",this.X509number.toString()); - res = replaceString(res,"",this.X509sub); - res = replaceString(res,"","0"); - res = replaceString(res,"","0"); - res = replaceString(res,"",cert_file_data); - res = replaceString(res,"",""); - writeFile(resFile,res); - } - - public void create007() throws Exception - { - String TestNumber = "007"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",b64_der_data_exp); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - req = replaceString(req, - ""+ - "text/plain"+ - ""+configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"+ - "", - ""); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - String res = replaceString(defaultresponse,"",this.X509name); - res = replaceString(res,"",this.X509number.toString()); - res = replaceString(res,"",this.X509sub); - res = replaceString(res,"","0"); - res = replaceString(res,"","0"); - res = replaceString(res,"",cert_file_data); - res = replaceString(res,"",""); - writeFile(resFile,res); - } - - public void create008() throws Exception - { - String TestNumber = "008"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",b64_der_data_exp); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - String res = replaceString(defaultresponse,"",this.X509name); - res = replaceString(res,"",this.X509number.toString()); - res = replaceString(res,"",this.X509sub); - res = replaceString(res,"","0"); - res = replaceString(res,"","0"); - res = replaceString(res,"",cert_file_data); - res = replaceString(res,"",""); - writeFile(resFile,res); - } - - public void create009() throws Exception - { - String TestNumber = "009"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",b64_der_data_exp); - req = replaceString(req,"",""); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - req = replaceString(req, - "RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=", - ""); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - String res = replaceString(defaultresponse,"",this.X509name); - res = replaceString(res,"",this.X509number.toString()); - res = replaceString(res,"",this.X509sub); - res = replaceString(res,"","0"); - res = replaceString(res,"","0"); - res = replaceString(res,"",cert_file_data); - res = replaceString(res,"",""); - writeFile(resFile,res); - } - - public void create011() throws Exception - { - String TestNumber = "011"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",readFile(configuration_.getProperty("baseDir") + "resources/VC0.011.cms.ber.b64.txt")); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - req = replaceString(req, - ""+ - ""+ - "text/plain"+ - ""+configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"+ - ""+ - ""+ - "RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM="+ - ""+ - "", - ""); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - String res = replaceString(defaultresponse,"","CN=a-sign-TEST-Premium-Enc-01,OU=a-sign-TEST-Premium-Enc-01,O=A-Trust Ges. f. Sicherheitssysteme im elektr. Datenverkehr GmbH,C=AT"); - res = replaceString(res,"","6455"); - res = replaceString(res,"","Seriennummer=790187461633,G=Testperson MOA4,SN=BRZ,CN=Testperson MOA4 BRZ,C=AT"); - res = replaceString(res,"","0"); - res = replaceString(res,"","0"); - res = replaceString(res,"",cert_file_data); - res = replaceString(res,"",""); - res = replaceString(res, - "", - ""+ - ""); - - - writeFile(resFile,res); - } - - public void create012() throws Exception - { - String TestNumber = "012"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - BufferedInputStream bis = new BufferedInputStream(new FileInputStream(configuration_.getProperty("CERT_maxmustermann"))); - iaik.x509.X509Certificate cert = new iaik.x509.X509Certificate(bis); - X509name = ((Name)(cert.getIssuerDN())).getRFC2253String(); - X509number = cert.getSerialNumber(); - X509hash = new String(cert.getFingerprintSHA()); - X509sub = ((Name)(cert.getSubjectDN())).getRFC2253String(); - - String m = "This is a message"; - System.out.println("*"+m+"*"); - byte[] message = m.getBytes(); - - ASN1Object obj = null; - obj = createSignedCMSData(message, SignedDataStream.IMPLICIT,false,"PKCS12file_maxmustermann","PKCS12password_maxmustermann","CERT_maxmustermann"); - byte[] sig = DerCoder.encode(obj); - writeFileBinary("testimplmax.ber",sig); - b64_der_data_max = (new BASE64Encoder()).encode(sig); - - - String req = replaceString(defaultblock,"",b64_der_data_max); - - req = replaceString(req, - ""+ - ""+ - "text/plain"+ - "anyURI"+ - ""+ - ""+ - "RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM="+ - ""+ - "", - ""); - - //req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - /*CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,"file:/"+configuration_.getProperty("baseDir")+"resources/testDaten.txt"); - cpkcs.setKeyInformation(); - - Document doc = cpkcs.returnSig(); - - String output = makeOutputFile(doc,"",readFile(configuration_.getProperty("baseDir")+"resources/testDaten.txt")+""); - - writeFile(resFile, output);*/ - - - String res = replaceString(defaultresponse,"",X509name); - res = replaceString(res,"",X509number.toString()); - res = replaceString(res,"",X509sub); - res = replaceString(res,"","0"); - res = replaceString(res,"","0"); - res = replaceString(res,"",cert_max_file_data); - res = replaceString(res,"",""); - res = replaceString(res, - "", - ""+ - "Musterbehörde"+ - //"Musterbehörde"+ - ""+ - ""); - - - writeFile(resFile,res); - - - } - - public void create051() throws Exception - { - String TestNumber = "051"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",b64_der_data_exp); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - req = replaceString(req, - "Signatories=\"1\"", - "Signatories=\"0\""); - - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"1100"); - } - - public void create052() throws Exception - { - String TestNumber = "052"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",b64_der_data_exp); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - req = replaceString(req, - "Signatories=\"1\"", - "Signatories=\"10\""); - - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"2249"); - } - - public void create053() throws Exception - { - String TestNumber = "053"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",b64_der_data_exp); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - req = replaceString(req, - "2003-04-04T09:30:47-05:00", - ""+getDate(1*34*24)+""); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"0000"); - } - - public void create054() throws Exception - { - String TestNumber = "054"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock, - "", - "this is no Base64 Data"); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"1100"); - - } - - public void create055() throws Exception - { - String TestNumber = "055"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",b64_der_data_exp); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - req = replaceString(req, - ""+ - ""+ - "text/plain"+ - ""+configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"+ - ""+ - ""+ - "RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM="+ - ""+ - "", - ""); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"2248"); - - } - - - - public void create010() throws Exception - { - String TestNumber = "010"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",b64_der_data_exp); - req = replaceString(req,"",""); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - req = replaceString(req, - "RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=", - ""); - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".Res"+filesuffix; - - String res = replaceString(defaultresponse,"",this.X509name); - res = replaceString(res,"",this.X509number.toString()); - res = replaceString(res,"",this.X509sub); - res = replaceString(res,"","0"); - res = replaceString(res,"","0"); - res = replaceString(res,"",cert_file_data); - res = replaceString(res,"",""); - - writeFile(resFile,res); - - } - - public void create056() throws Exception - { - String TestNumber = "056"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",b64_der_data_exp); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - req = replaceString(req, - "TrustProfile1", - "notvalidTrustProfileID"); - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"2203"); - - } - - - public void create057() throws Exception - { - String TestNumber = "057"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - - configuration_.setProperty( - "PKCS12file_maxmustermann", - (configuration_.getProperty("baseDir") + "/resources/Max_Mustermann (max).p12")); - - configuration_.setProperty("PKCS12password_maxmustermann", "max"); - - configuration_.setProperty( - "CERT_maxmustermann", - (configuration_.getProperty("baseDir") + "resources/Max_Mustermann.cer")); - - BufferedInputStream bis = new BufferedInputStream(new FileInputStream(configuration_.getProperty("CERT_maxmustermann"))); - iaik.x509.X509Certificate cert = new iaik.x509.X509Certificate(bis); - X509name = ((Name)(cert.getIssuerDN())).getRFC2253String(); - X509number = cert.getSerialNumber(); - X509hash = new String(cert.getFingerprintSHA()); - X509sub = ((Name)(cert.getSubjectDN())).getRFC2253String(); - - String m = "This is a message"; - System.out.println("*"+m+"*"); - byte[] message = m.getBytes(); - - ASN1Object obj = null; - obj = createSignedCMSData(message, SignedDataStream.IMPLICIT,false,"PKCS12file_maxmustermann","PKCS12password_maxmustermann","CERT_maxmustermann"); - byte[] sig = DerCoder.encode(obj); - writeFileBinary("testimplmax.ber",sig); - b64_der_data_max = (new BASE64Encoder()).encode(sig); - - - String req = replaceString(defaultblock,"",b64_der_data_max); - - /*req = replaceString(req, - " "+ - " "+ - " text/plain"+ - " anyURI"+ - " "+ - " "+ - " RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM="+ - " "+ - " ", - "");*/ - - //req = replaceString(req,"Reference=\"anyURI\"",""); - - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - - - - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"2248"); - - - } - - public void create058() throws Exception - { - String TestNumber = "058"; - String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; - - String req = replaceString(defaultblock,"",b64_der_data_exp); - req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - - req = replaceString(req,"RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=","RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=()"); - writeFile(reqFile,req); - - String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; - - writeFile(resFile,"1100"); - - } - - - - - - - -} diff --git a/spss.test/src/testgenerator/TestGeneratorVX.java b/spss.test/src/testgenerator/TestGeneratorVX.java deleted file mode 100644 index 20ff44a22..000000000 --- a/spss.test/src/testgenerator/TestGeneratorVX.java +++ /dev/null @@ -1,2793 +0,0 @@ -package testgenerator; -import iaik.ixsil.algorithms.Transform; -import iaik.ixsil.algorithms.TransformImplBase64Decode; -import iaik.ixsil.algorithms.TransformImplCanonicalXML; -import iaik.ixsil.algorithms.TransformImplCanonicalXMLWithComments; -import iaik.ixsil.algorithms.TransformImplEnvelopedSignature; -import iaik.ixsil.algorithms.TransformImplExclusiveCanonicalXML; -import iaik.ixsil.algorithms.TransformImplExclusiveCanonicalXMLWithComments; -import iaik.ixsil.algorithms.TransformImplXPath; -import iaik.ixsil.algorithms.TransformImplXPath2; -import iaik.ixsil.algorithms.TransformImplXSLT; -import iaik.ixsil.core.Position; -import iaik.ixsil.util.URI; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.RandomAccessFile; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.apache.xml.serialize.DOMWriterImpl; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -import at.gv.egovernment.moa.util.Base64Utils; -import at.gv.egovernment.moa.util.Constants; -import at.gv.egovernment.moa.util.DOMUtils; -import at.gv.egovernment.moa.util.EntityResolverChain; -import at.gv.egovernment.moa.util.MOAEntityResolver; -import at.gv.egovernment.moa.util.MOAErrorHandler; -import at.gv.egovernment.moa.util.StreamEntityResolver; - -/** - * @author stephan - */ -public class TestGeneratorVX extends TestCases { - - private static final int canAlgCanXML = 1; - private static final int canAlgCanXMLwithCom = 2; - private static final int canAlgExcXML = 3; - private static final int canAlgExcXMLwithCom = 4; - private static VXResponseBean vxBean = null; - - public static void main(String[] args) throws Exception { - - vxBean = new VXResponseBean(); - - TestGeneratorVX testcase = new TestGeneratorVX(); - testcase.createVXConfig(); - - testcase.create001(); - testcase.create002(); - testcase.create003(); - testcase.create004(); - testcase.create005(); - testcase.create006(); - testcase.create007(); - testcase.create009(); - testcase.create008(); - - testcase.create101(); - testcase.create102(); - testcase.create103(); - testcase.create104(); - testcase.create105(); - testcase.create106(); - - testcase.create301(); - testcase.create302(); - testcase.create303(); - testcase.create304(); - testcase.create305(); - - testcase.create307(); - testcase.create308(); - - testcase.create310(); - testcase.create311(); - testcase.create312(); - testcase.create313(); - testcase.create314(); - testcase.create314_2(); - testcase.create315(); - testcase.create316(); - testcase.create317(); - testcase.create318(); - testcase.create318_2(); - testcase.create319(); - testcase.create320(); - testcase.create320_2(); - testcase.create321(); - testcase.create322(); - testcase.create323(); - testcase.create324(); - testcase.create325(); - testcase.create326(); - testcase.create327(); - - //testcase.createL00(); - - } - - /* ==================================================================================================== */ - - public TestGeneratorVX() throws Exception { - - super(); - - // Set config properties - configuration_.setProperty("TestClass", "TestGeneratorVX"); - - // configuration_.setProperty("privateKeyFile", baseDir + "additionalFiles/keys/RSAPrivateKey.der"); - // configuration_.setProperty("publicKeyFile", baseDir + "additionalFiles/keys/RSAPublicKey.der"); - // configuration_.setProperty("signatureFile", baseDir + "additionalFiles/signatures/Signature.unit1.xml"); - - iaik.security.provider.IAIK.addAsProvider(); - iaik.security.ecc.provider.ECCProvider.addAsProvider(); - } - - /* ==================================================================================================== */ - - public void testEcc() throws Exception - { - Date d = new Date(); - long start = d.getTime(); - long initEcc = 0; - long timeEcc = 0; - long initRSA = 0; - long timeRSA = 0; - - - TestGeneratorVX testcase = new TestGeneratorVX(); - testcase.ecccreate319(); - initEcc = (new Date()).getTime() - start; - testcase.ecccreate320(); - testcase.ecccreate321(); - testcase.ecccreate322(); - testcase.ecccreate323(); - testcase.ecccreate324(); - - timeEcc = (new Date()).getTime() - start; - - start = (new Date()).getTime(); - - testcase = new TestGeneratorVX(); - testcase.create319(); - initRSA = (new Date()).getTime() - start; - testcase.create320(); - testcase.create321(); - testcase.create322(); - testcase.create323(); - testcase.create324(); - timeRSA =(new Date()).getTime() - start; - - System.out.println("========================================================="); - System.out.println("========================================================="); - - System.out.println("Init ECC (inkl. 1st Test): "+ (initEcc)+ "ms" ); - System.out.println("ECC-Tests gesamt: "+ (timeEcc)+ "ms" ); - System.out.println("ECC-Tests 2-5: "+ (timeEcc-initEcc)+ "ms" ); - System.out.println("========================================================="); - System.out.println("Init RSA (inkl. 1st Test): "+ (initRSA)+ "ms" ); - System.out.println("RSA-Tests gesamt: "+ (timeRSA)+ "ms" ); - System.out.println("RSA-Tests 2-5: "+ (timeRSA-initRSA)+ "ms" ); - System.out.println("========================================================="); - } - -public void ecccreate319() throws Exception { - String testNumber = "ecc319"; - - - // Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); // Create from whole cloth -// - // Element root = (Element) document.createElement("Data"); - // root.appendChild(document.createTextNode(readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")) ); -// Element root2 = (Element) document.createElement("Element2"); - // root2.appendChild(document.createTextNode("Some other text") ); - - // root.appendChild(root2); - - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - //cpkcs.init(); - long start = (new Date()).getTime(); - cpkcs.initECDSA(); - System.out.println("Init-Dauer für " +testNumber + ":" + ((new Date()).getTime()-start)); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(true,"Dies sind Testdaten"); - //cpkcs.createReferenceEnvElement(root); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testSimple.txt"); - cpkcs.setKeyInformation(); - - start = (new Date()).getTime(); - Document sign = cpkcs.returnSig(); - System.out.println("Sign-Dauer für " +testNumber + ":" + ((new Date()).getTime()-start)); - - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - sign, - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(), testNumber,"0")); - } - - /** - * Method create320: - * The element KeyInfo does NOT contain the X509-certificate but - * an URI pointing to an external xml-encoded X509-file - * @throws Exception - */ - public void ecccreate320() throws Exception { - String testNumber = "ecc320"; - - //RetrievalMethdos instead of the integratede Keys - - //URI fileURI = new URI(configuration_.getProperty("baseDir") + "resources/test-ee2003_normal.der"); - URI fileURI = new URI("file:/"+configuration_.getProperty("baseDir") + "resources/X509Data.xml"); - URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data"); - //URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#rawX509Certificate"); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); -// cpkcs.init(); - - cpkcs.initECDSA(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(false, fileURI, typeURI, null); - - long start = (new Date()).getTime(); - Document sign = cpkcs.returnSig(); - System.out.println("Sign-Dauer für " +testNumber + ":" + ((new Date()).getTime()-start)); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - sign, - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(), testNumber,"0")); - } - - - public void ecccreate321() throws Exception { - String testNumber = "ecc321"; - - //RetrievalMethdos instead of the integratede Keys - - URI fileURI = new URI("file:/"+configuration_.getProperty("baseDir") + "resources/test-ee2003_normal.der"); - URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#rawX509Certificate"); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - // cpkcs.init(); - cpkcs.initECDSA(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(false, fileURI, typeURI, null); - - long start = (new Date()).getTime(); - Document sign = cpkcs.returnSig(); - System.out.println("Sign-Dauer für " +testNumber + ":" + ((new Date()).getTime()-start)); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - sign, - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(), testNumber,"0")); - } - - - /** - * Method create322. - * The reference in the signature points with an xpointer - * to the ID of an embedded valid manifest dsig:object - * @throws Exception - */ - public void ecccreate322() throws Exception { - String testNumber = "ecc322"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - // cpkcs.init(); - cpkcs.initECDSA(); - cpkcs.setCanoncialization(canAlgCanXML); - URI fileURI1 = new URI(configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.createReferenceWithManifest(fileURI1,"manifestObject"); - - cpkcs.setKeyInformation(); - long start = (new Date()).getTime(); - Document sign = cpkcs.returnSig(); - System.out.println("Sign-Dauer für " +testNumber + ":" + ((new Date()).getTime()-start)); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - sign, - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - - } - /** - * Method create323: - * There are two references in the signature pointing - * with xpointer to two embedded valid manifest dsig:objects - * @throws Exception - */ - public void ecccreate323() throws Exception { - String testNumber = "ecc323"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - // cpkcs.init(); - cpkcs.initECDSA(); - cpkcs.setCanoncialization(canAlgCanXML); - URI fileURI1 = new URI(configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - URI fileURI2 = new URI(configuration_.getProperty("webbaseDir") + "resources/testXML.txt"); - cpkcs.createReferenceWithManifest(fileURI1,"manifestObject"); - - //HINWEIS: Durch das 2malige Aufrufen wird ein WEITERES dsig:Object ELEMENT erzeugt... darf das so sein...??? - - cpkcs.createReferenceWithManifest(fileURI2,"manifestObject2"); - cpkcs.setKeyInformation(); - long start = (new Date()).getTime(); - Document sign = cpkcs.returnSig(); - System.out.println("Sign-Dauer für " +testNumber + ":" + ((new Date()).getTime()-start)); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - sign, - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - - } - public void ecccreate324() throws Exception { - String testNumber = "ecc324"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - // cpkcs.init(); - cpkcs.initECDSA(); - cpkcs.setCanoncialization(canAlgCanXML); - URI fileURI1 = new URI(configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - URI fileURI2 = new URI(configuration_.getProperty("webbaseDir") + "resources/testXML.txt"); - cpkcs.createReferencesWithManifest(fileURI1,"manifestObject",fileURI2); - - //HINWEIS: Durch das 2malige Aufrufen wird ein WEITERES dsig:Object ELEMENT erzeugt... darf das so sein...??? - cpkcs.setKeyInformation(); - long start = (new Date()).getTime(); - Document sign = cpkcs.returnSig(); - System.out.println("Sign-Dauer für " +testNumber + ":" + ((new Date()).getTime()-start)); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - sign, - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - - } - - 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"; - - //Create a Request with number 001, the current Time (+0 hours) - // and with the Date and ReturnHashInputDate Elements present - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/"+filename+".txt"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(false,false,null)); - - writeFile(vxReqFileL(testNumber,filename),request); - - - - writeFile(vxResFileL(testNumber,filename), createResponseL(cpkcs.getX509CertString(), testNumber,"0",filename)); - } - - /** - * Method create001. - * @throws Exception - */ - /* ===================================================================================================================== */ - /* ===================================================================================================================== */ - /* ===================================================================================================================== */ - - public void create001() throws Exception { - - String testNumber = "001"; - - //Create a Request with number 001, the current Time (+0 hours) - // and with the Date and ReturnHashInputDate Elements present - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(), testNumber,"0")); - } - - /** - * Method create002. - * @throws Exception - */ - public void create002() throws Exception { - String testNumber = "002"; - //Create a Request with number 002, the current Time (+0 hours) - // and without the Date and with ReturnHashInputDate Elements present - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,false,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(), testNumber,"0")); - } - - /** - * Method create003. - * @throws Exception - */ - public void create003() throws Exception { - String testNumber = "003"; - //Create a Request with number 003, the Time one Day in the past (-24 hours) - // and with the Date and with ReturnHashInputDate Elements present - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,-24), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(), testNumber,"0")); - } - - /** - * Method create004. - * @throws Exception - */ - public void create004() throws Exception { - String testNumber = "004"; - //Create a Request with number 004, the current Time (+0 hours) - // and with the Date and without ReturnHashInputDate Elements present - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(false,false,null)); - - writeFile(vxReqFile(testNumber),request); - - - writeFile(vxResFile(testNumber), createResponseWithoutHashInputData(cpkcs.getX509CertString(), testNumber,"0")); - } - public void create005() throws Exception { - String testNumber = "005"; - - String request = - createRequestStart(testNumber,true,0, "Reference=\"" + configuration_.getProperty("webbaseDir") + "resources/SignatureVX005.xml\" ")+ - createRequestEnd(false,false,null); - - request = replaceString(request,"",""); - request = replaceString(request,"",""); - writeFile(vxReqFile(testNumber),request); - - String response = createResponsePart(readFileCR(configuration_.getProperty("webbaseDir") + "resources/SignatureVX005Cert.xml")) + - vxBean.createSignatureCheck("0")+ - vxBean.createXMLDSIGManifestCheck("1","1","1")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - /** - * Method create051. - * @throws Exception - */ - -public void create006() throws Exception { - - String testNumber = "006"; - // ERST MAL DAS DOKUMENT ALS STRING AUFBAUEN - Supplement supp = new Supplement(); - supp.addXMLContent("http://MyServer.com/resources/something.xsd", - ""); - supp.closeSupplement(); - - String requestEnd = createSignatureInfoEnd()+ - supp.getSupplement() + createRequestShortEnd(false); - - String requestStart = createRequestStart(testNumber,true,0); - - - String reqDocString = - "" - + "daten" ; - - InputStream bis = new ByteArrayInputStream(reqDocString.getBytes()); - //Document-Builder holen - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - factory.setValidating(true); - //factory.setValidating(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - - Map m = new HashMap(); - m.put("http://MyServer.com/resources/something.xsd",new ByteArrayInputStream(("").getBytes())); - - EntityResolverChain chain = new EntityResolverChain(); - chain.addEntityResolver(new StreamEntityResolver(m)); - chain.addEntityResolver(new MOAEntityResolver()); - builder.setEntityResolver(chain); - - - //Dokument Parsen - System.out.println(reqDocString); - //Document reqDoc = builder.parse(bis); - Document reqDoc = DOMUtils.parseDocument(bis,true,Constants.ALL_SCHEMA_LOCATIONS, null,chain,new MOAErrorHandler()); - //Position für die Signatur angeben - //String xPath_Pos = "/moa:VerifyXMLSignatureRequest/moa:VerifySignatureInfo/moa:VerifySignatureEnvironment/moa:XMLContent - String xPath_Pos = "//daten:Document"; - //XPAth-Prefixe deklarieren - String xPath_Prefix = "daten http://uri2.data.org"; - Position pos = new Position(xPath_Pos, xPath_Prefix,0); - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - //Signer erzeugen, der das obige Doc als Basis nimmt, und die Signatur an der besagten stelle einfügt - System.out.println("REQDOC:"+DOMUtils.serializeNode(reqDoc)); - cpkcs.init(reqDoc,pos); - cpkcs.setCanoncialization(canAlgCanXML); - - cpkcs.setKeyInformation(); - /*cpkcs.createEnvelopedDataObject("envelopedData",readFileCR(configuration_.getProperty("webbaseDir")+"resources/testSimple.txt")); - cpkcs.createReferenceWithManifest(new URI("#xpointer(id('envelopedData')/node())"),"manifestObject");*/ - - Transform[] tr = new Transform[1]; - TransformImplEnvelopedSignature trans = new TransformImplEnvelopedSignature(); - tr[0] = trans; - //Enveloped Transformation - cpkcs.createReferenceWithTransforms(new URI("#myDocument"),tr); -//Signieren - - cpkcs.returnSig(); - //Serialisieren - String request = requestStart + replaceString(Node2String(reqDoc.getDocumentElement()),"","") + requestEnd; - - writeFile(vxReqFile(testNumber),request); - - String response = createResponsePart(cpkcs.getX509CertString()) + - vxBean.createSignatureCheck("0")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - - public void create007() throws Exception { - - String testNumber = "007"; - - String dtdLocation = configuration_.getProperty("webbaseDir") + "resources/VX.007DTD.dtd"; - - // ERST MAL DAS DOKUMENT ALS STRING AUFBAUEN - Supplement supp = new Supplement(); - supp.addBase64Content(dtdLocation, - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/VX.007DTD.dtd")); - supp.closeSupplement(); - - String requestEnd = createSignatureInfoEnd()+ - createRequestShortEnd(false); - - //String reqDocString = createRequestStart(testNumber,true,0,"","") + - String reqDocString = /*createRequestStart(testNumber,true,0) +*/ - "" - + "\ndaten\n" /*+ requestEnd*/; - - InputStream bis = new ByteArrayInputStream(reqDocString.getBytes()); - //Document-Builder holen - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - factory.setValidating(false); - - System.out.println(reqDocString); - - DocumentBuilder builder = factory.newDocumentBuilder(); - //Dokument Parsen - Document reqDoc = builder.parse(bis); - //Position für die Signatur angeben - String xPath_Pos = "/Document"; - //XPAth-Prefixe deklarieren - String xPath_Prefix = "";//"data http://uri2.data.org"; - Position pos = new Position(xPath_Pos, xPath_Prefix,0); - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - //Signer erzeugen, der das obige Doc als Basis nimmt, und die Signatur an der besagten stelle einfügt - cpkcs.init(reqDoc,pos); - cpkcs.setCanoncialization(canAlgCanXML); - - cpkcs.setKeyInformation(); - /*cpkcs.createEnvelopedDataObject("envelopedData",readFileCR(configuration_.getProperty("webbaseDir")+"resources/testSimple.txt")); - cpkcs.createReferenceWithManifest(new URI("#xpointer(id('envelopedData')/node())"),"manifestObject");*/ - - Transform[] tr = new Transform[1]; - TransformImplEnvelopedSignature trans = new TransformImplEnvelopedSignature(); - tr[0] = trans; - //Enveloped Transformation - cpkcs.createReferenceWithTransforms(new URI("#myDocument"),tr); -//Signieren - cpkcs.returnSig(); - //Serialisieren - String request = Node2String(reqDoc.getDocumentElement()); - - int i_pos = request.indexOf(""); - request = request.substring("".length()); - - request = ""+request; - - System.out.println("DOC:"+request); - - request =""+Base64Utils.encode(request.getBytes())+"//dsig:Signature"+supp.getSupplement()+"TrustProfile1"; - - - - - /*int i_pos = request.indexOf("\n" +request.substring(i_pos);*/ - - /*i_pos = request.indexOf(""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "id('signed-data')/node()"+ - ""+ - ""+ - ""+ - "4lngV1x/OvR8iFWEBenH4fDihwA="+ - ""+ - ""+ - ""+ - ""+ - "id('refetsi')/etsi:QualifyingProperties/etsi:SignedProperties"+ - ""+ - ""+ - ""+ - "1j0DWguieuw2cGA06gFjoSNXr+w="+ - ""+ - ""+ - "Yb6fsPNbKyYW+u7cU1EqF9n5QrwLXHqdGD4tJNT5+sA7kQR3Ztqz965vlBH+1pJE"+ - "nGxehxXsesZboVvkJa/jhuI0goCTW9KkdGOP71B7o7/vlyBbxaYKpnVNtBU4/qtT"+ - "xba7M0E32X+tm/x9O6foXIM0AoP3oQBZmjo9rEJ9kfk="+ - ""+ - ""+ - "MIIFJTCCBA2gAwIBAgICGTcwDQYJKoZIhvcNAQEFBQAwgaExCzAJBgNVBAYTAkFU"+ - "MUgwRgYDVQQKEz9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGlt"+ - "IGVsZWt0ci4gRGF0ZW52ZXJrZWhyIEdtYkgxIzAhBgNVBAsTGmEtc2lnbi1URVNU"+ - "LVByZW1pdW0tRW5jLTAxMSMwIQYDVQQDExphLXNpZ24tVEVTVC1QcmVtaXVtLUVu"+ - "Yy0wMTAeFw0wMzAyMTAxMzIwNThaFw0wNjAyMTAxMzIwNThaMGoxCzAJBgNVBAYT"+ - "AkFUMRwwGgYDVQQDExNUZXN0cGVyc29uIE1PQTQgQlJaMQwwCgYDVQQEEwNCUlox"+ - "GDAWBgNVBCoTD1Rlc3RwZXJzb24gTU9BNDEVMBMGA1UEBRMMNzkwMTg3NDYxNjMz"+ - "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDS/UW1/tZeCh7HHQmj8auUTEc4"+ - "edAgRDkUVKOm0tF3kE3WZlhGDZL0p84xsdIKyI+bwDCMATATkQwDo/Xxn9jJMi4/"+ - "t80bNyRsHk9giA0wcvz9NgmEcDwKNqawGsR9gNeK8TyIC8AuDkj1EwtkAObMvtp/"+ - "Z1phi47x3JxDDfGDpQIDAQABo4ICHzCCAhswEwYDVR0jBAwwCoAIS7OAw3GTPNgw"+ - "JwYIKwYBBQUHAQMBAf8EGDAWMAgGBgQAjkYBATAKBggrBgEFBQcLATCBggYIKwYB"+ - "BQUHAQEEdjB0MCkGCCsGAQUFBzABhh1odHRwOi8vd3d3LmEtdHJ1c3QuYXQ6ODIv"+ - "b2NzcDBHBggrBgEFBQcwAoY7aHR0cDovL3d3dy5hLXRydXN0LmF0L2NlcnRzL2Et"+ - "c2lnbi1URVNULVByZW1pdW0tU2lnLTAxYS5jcnQwgZQGA1UdIASBjDCBiTB9BgYq"+ - "KAARAQQwczA1BggrBgEFBQcCARYpaHR0cDovL3d3dy5hLXRydXN0LmF0L2RvY3Mv"+ - "Y3AvYS1zaWduLVRFU1QwOgYIKwYBBQUHAgIwLhosRGllc2VzIFplcnRpZmlrYXQg"+ - "ZGllbnQgbnVyIHp1IFRlc3R6d2Vja2VuICEwCAYGBACLMAEBMG8GA1UdHwRoMGYw"+ - "ZKBioGCGXmxkYXA6Ly9sZGFwLmEtdHJ1c3QuYXQvb3U9YS1zaWduLVRFU1QtUHJl"+ - "bWl1bS1FbmMtMDEsbz1BLVRydXN0LGM9QVQ/Y2VydGlmaWNhdGVyZXZvY2F0aW9u"+ - "bGlzdD8wEQYDVR0OBAoECE4DxL9ky4M+MA4GA1UdDwEB/wQEAwIGwDAgBgNVHREE"+ - "GTAXgRV0ZXN0cGVyc29uNEBicnouZ3YuYXQwCQYDVR0TBAIwADANBgkqhkiG9w0B"+ - "AQUFAAOCAQEAioVvsZN+NnQxXMTGdjKveTBMRTYzHflkSC8lI9XXltP5+mjIuoB2"+ - "Tn6voovA8dXz9jTsnQt8f8ye0CL2bSS9UVD1jv8So3bavquW+HlkZBAZvL39APNL"+ - "PjUUnWn0QOnrQAJ6W47UwGAUgEw3KcBcJaEa4Xb/8kUj618xGzWl6X0mKsVpxkrf"+ - "+5Cj+nmwDqChll08/90MmhSY4M5FrvmQ9GjAN5FHVsk0FPp02tKCRzoBJtzpB1DW"+ - "KHlgiDHUAXy5eD0XI7PXebPNZ4InvY/jC/IH8PRLdJT249YQmUxZ4neTtFDvb8C1"+ - "Qh6k725fh3hVxqX8ZwwWj9+iGQVk53K3CA=="+ - /*""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/IAIKRootMusterbehoerde.cer")+ - ""+*/ - ""+ - ""+ - ""+ - ""+ - "IdentityLink"+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "2003-03-04T12:32:54Z"+ - ""+ - ""+ - ""+ - ""+ - "Frhu1o4mL4gQHdJcU0xSA/h4COE="+ - ""+ - ""+ - "CN=a-sign-TEST-Premium-Enc-01,OU=a-sign-TEST-Premium-Enc-01,O=A-Trust Ges. f. Sicherheitssysteme im elektr. Datenverkehr GmbH,C=AT"+ - "6455"+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "text/xml"+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - ""+ - "//dsig:Signature"+ - ""+ - "TrustProfile1"+ - ""; - - String response = - ""+ - ""+ - " "+ - " "+ - " serialNumber=790187461633,givenName=Testperson MOA4,SN=BRZ,CN=Testperson MOA4 BRZ,C=AT"+ - " "+ - " CN=a-sign-TEST-Premium-Enc-01,OU=a-sign-TEST-Premium-Enc-01,O=A-Trust Ges. f. Sicherheitssysteme im elektr. Datenverkehr GmbH,C=AT"+ - " 6455"+ - " "+ - "MIIFJTCCBA2gAwIBAgICGTcwDQYJKoZIhvcNAQEFBQAwgaExCzAJBgNVBAYTAkFU"+ - "MUgwRgYDVQQKEz9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGlt"+ - "IGVsZWt0ci4gRGF0ZW52ZXJrZWhyIEdtYkgxIzAhBgNVBAsTGmEtc2lnbi1URVNU"+ - "LVByZW1pdW0tRW5jLTAxMSMwIQYDVQQDExphLXNpZ24tVEVTVC1QcmVtaXVtLUVu"+ - "Yy0wMTAeFw0wMzAyMTAxMzIwNThaFw0wNjAyMTAxMzIwNThaMGoxCzAJBgNVBAYT"+ - "AkFUMRwwGgYDVQQDExNUZXN0cGVyc29uIE1PQTQgQlJaMQwwCgYDVQQEEwNCUlox"+ - "GDAWBgNVBCoTD1Rlc3RwZXJzb24gTU9BNDEVMBMGA1UEBRMMNzkwMTg3NDYxNjMz"+ - "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDS/UW1/tZeCh7HHQmj8auUTEc4"+ - "edAgRDkUVKOm0tF3kE3WZlhGDZL0p84xsdIKyI+bwDCMATATkQwDo/Xxn9jJMi4/"+ - "t80bNyRsHk9giA0wcvz9NgmEcDwKNqawGsR9gNeK8TyIC8AuDkj1EwtkAObMvtp/"+ - "Z1phi47x3JxDDfGDpQIDAQABo4ICHzCCAhswEwYDVR0jBAwwCoAIS7OAw3GTPNgw"+ - "JwYIKwYBBQUHAQMBAf8EGDAWMAgGBgQAjkYBATAKBggrBgEFBQcLATCBggYIKwYB"+ - "BQUHAQEEdjB0MCkGCCsGAQUFBzABhh1odHRwOi8vd3d3LmEtdHJ1c3QuYXQ6ODIv"+ - "b2NzcDBHBggrBgEFBQcwAoY7aHR0cDovL3d3dy5hLXRydXN0LmF0L2NlcnRzL2Et"+ - "c2lnbi1URVNULVByZW1pdW0tU2lnLTAxYS5jcnQwgZQGA1UdIASBjDCBiTB9BgYq"+ - "KAARAQQwczA1BggrBgEFBQcCARYpaHR0cDovL3d3dy5hLXRydXN0LmF0L2RvY3Mv"+ - "Y3AvYS1zaWduLVRFU1QwOgYIKwYBBQUHAgIwLhosRGllc2VzIFplcnRpZmlrYXQg"+ - "ZGllbnQgbnVyIHp1IFRlc3R6d2Vja2VuICEwCAYGBACLMAEBMG8GA1UdHwRoMGYw"+ - "ZKBioGCGXmxkYXA6Ly9sZGFwLmEtdHJ1c3QuYXQvb3U9YS1zaWduLVRFU1QtUHJl"+ - "bWl1bS1FbmMtMDEsbz1BLVRydXN0LGM9QVQ/Y2VydGlmaWNhdGVyZXZvY2F0aW9u"+ - "bGlzdD8wEQYDVR0OBAoECE4DxL9ky4M+MA4GA1UdDwEB/wQEAwIGwDAgBgNVHREE"+ - "GTAXgRV0ZXN0cGVyc29uNEBicnouZ3YuYXQwCQYDVR0TBAIwADANBgkqhkiG9w0B"+ - "AQUFAAOCAQEAioVvsZN+NnQxXMTGdjKveTBMRTYzHflkSC8lI9XXltP5+mjIuoB2"+ - "Tn6voovA8dXz9jTsnQt8f8ye0CL2bSS9UVD1jv8So3bavquW+HlkZBAZvL39APNL"+ - "PjUUnWn0QOnrQAJ6W47UwGAUgEw3KcBcJaEa4Xb/8kUj618xGzWl6X0mKsVpxkrf"+ - "+5Cj+nmwDqChll08/90MmhSY4M5FrvmQ9GjAN5FHVsk0FPp02tKCRzoBJtzpB1DW"+ - "KHlgiDHUAXy5eD0XI7PXebPNZ4InvY/jC/IH8PRLdJT249YQmUxZ4neTtFDvb8C1"+ - "Qh6k725fh3hVxqX8ZwwWj9+iGQVk53K3CA=="+ - " "+ - " "+ - " "+ - " "+ - " 0"+ - " "+ - " "+ - " 0"+ - " "+ - ""; - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResFile(testNumber),response); - } - - public void create009() throws Exception { - - String testNumber = "009"; - // ERST MAL DAS DOKUMENT ALS STRING AUFBAUEN - Supplement supp = new Supplement(); - supp.addXMLContent("http://MyServer.com/resources/something.xsd", - ""); - supp.closeSupplement(); - - String requestEnd = createSignatureInfoEnd()+ - supp.getSupplement() + createRequestShortEnd(false); - - String requestStart = createRequestStart(testNumber,true,0); - - - String reqDocString = - "" - + "daten" ; - - InputStream bis = new ByteArrayInputStream(reqDocString.getBytes()); - //Document-Builder holen - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - factory.setValidating(true); - //factory.setValidating(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - - Map m = new HashMap(); - m.put("http://MyServer.com/resources/something.xsd",new ByteArrayInputStream(("").getBytes())); - - EntityResolverChain chain = new EntityResolverChain(); - chain.addEntityResolver(new StreamEntityResolver(m)); - chain.addEntityResolver(new MOAEntityResolver()); - builder.setEntityResolver(chain); - - - //Dokument Parsen - System.out.println(reqDocString); - //Document reqDoc = builder.parse(bis); - Document reqDoc = DOMUtils.parseDocument(bis,true,Constants.ALL_SCHEMA_LOCATIONS, null,chain,new MOAErrorHandler()); - //Position für die Signatur angeben - //String xPath_Pos = "/moa:VerifyXMLSignatureRequest/moa:VerifySignatureInfo/moa:VerifySignatureEnvironment/moa:XMLContent - String xPath_Pos = "//daten:Document"; - //XPAth-Prefixe deklarieren - String xPath_Prefix = "daten http://uri2.data.org"; - Position pos = new Position(xPath_Pos, xPath_Prefix,0); - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - //Signer erzeugen, der das obige Doc als Basis nimmt, und die Signatur an der besagten stelle einfügt - System.out.println("REQDOC:"+DOMUtils.serializeNode(reqDoc)); - cpkcs.init(reqDoc,pos); - cpkcs.setCanoncialization(canAlgCanXML); - - cpkcs.setKeyInformation(); - /*cpkcs.createEnvelopedDataObject("envelopedData",readFileCR(configuration_.getProperty("webbaseDir")+"resources/testSimple.txt")); - cpkcs.createReferenceWithManifest(new URI("#xpointer(id('envelopedData')/node())"),"manifestObject");*/ - - Transform[] tr = new Transform[1]; - TransformImplEnvelopedSignature trans = new TransformImplEnvelopedSignature(); - tr[0] = trans; - //Enveloped Transformation - cpkcs.createReferenceWithTransforms(new URI("#xpointer(id(myDocument))"),tr); -//Signieren - - cpkcs.returnSig(); - //Serialisieren - String request = requestStart + replaceString(Node2String(reqDoc.getDocumentElement()),"","") + requestEnd; - - writeFile(vxReqFile(testNumber),request); - - String response = createResponsePart(cpkcs.getX509CertString()) + - vxBean.createSignatureCheck("0")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - - public void create101() throws Exception { - - String testNumber = "101"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(); - - Supplement supp = new Supplement(); - supp.addMetaInfo("text/plain","http://www.buergerkarte.at"); - supp.addBase64Content(configuration_.getProperty("webbaseDir")+"resources/testSimple.txt", - readBinaryFileAsBase64(configuration_.getProperty("baseDir")+"resources/testSimple.txt")); - supp.closeSupplement(); - //supp.addProfileID("Some ID"); - - String requestEnd = createSignatureInfoEnd()+ - supp.getSupplement() + createRequestShortEnd(false); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - requestEnd); - - writeFile(vxReqFile(testNumber),request); - - String response = createResponsePart(cpkcs.getX509CertString()) + - vxBean.createSignatureCheck("0")+ - /*vxBean.createXMLDSIGManifestCheck("0","","1")+ */ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - public void create102() throws Exception { - - String testNumber = "102"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(); - - Supplement supp = new Supplement(); - supp.addMetaInfo("text/plain",null); - supp.addBase64Content(configuration_.getProperty("webbaseDir")+"resources/testSimple.txt", - readBinaryFileAsBase64(configuration_.getProperty("baseDir")+"resources/testSimple.txt")); - supp.closeSupplement(); - //supp.addProfileID("Some ID"); - - String requestEnd = createSignatureInfoEnd()+ - supp.getSupplement() + ""+createRequestShortEnd(false); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - requestEnd); - - writeFile(vxReqFile(testNumber),request); - - - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(), testNumber,"0")); - } - - public void create103() throws Exception { - - String testNumber = "103"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(); - - Supplement supp = new Supplement(); - //supp.addMetaInfo("text/plain",null); - supp.addXMLContent(configuration_.getProperty("webbaseDir")+"resources/testSimple.txt",readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")); - //supp.addBase64Content(configuration_.getProperty("webbaseDir")+"resources/testSimple.txt", - // readBinaryFileAsBase64(configuration_.getProperty("webbaseDir")+"resources/testSimple.txt")); - supp.closeSupplement(); - //supp.addProfileID("Some ID"); - - String requestEnd = createSignatureInfoEnd()+ - supp.getSupplement() + ""+createRequestShortEnd(false); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - requestEnd); - - writeFile(vxReqFile(testNumber),request); - - - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(), testNumber,"0")); - } -public void create104() throws Exception { - - String testNumber = "104"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(); - - Supplement supp = new Supplement(); - supp.addXMLContent(configuration_.getProperty("webbaseDir")+"resources/testSimple.txt", readFileCR(configuration_.getProperty("baseDir")+"resources/testSimple.txt")); - supp.closeSupplement(); - - String requestEnd = - createSignatureInfoEnd()+ - supp.getSupplement()+""+ - createRequestShortEnd(false); - - String request = - makeOutputFile( - createRequestStart(testNumber+" - Supplement/Content/XMLContent instead of Supplement/Content/Base64Content",true,0), - cpkcs.returnSig(), - requestEnd); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(), testNumber,"0")); - } - - public void create105() throws Exception { - - String testNumber = "105"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testXML.txt"); - cpkcs.setKeyInformation(); - - Supplement supp = new Supplement(); - supp.addXMLContent(configuration_.getProperty("webbaseDir")+"resources/testSimple.txt", readFileCR(configuration_.getProperty("baseDir")+"resources/testSimple.txt")); - supp.closeSupplement(); - - Supplement supp2 = new Supplement(); - supp2.addBase64Content(configuration_.getProperty("webbaseDir")+"resources/testXML.txt", readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/testXML.txt")); - supp2.closeSupplement(); - - String requestEnd = - createSignatureInfoEnd()+ - supp.getSupplement()+ - supp2.getSupplement() + - createRequestShortEnd(true); - - String request = - makeOutputFile( - createRequestStart(testNumber + " - 2 Supplement elements",true,0), - cpkcs.returnSig(), - requestEnd); - - String response = createResponsePart(cpkcs.getX509CertString()) + - ""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/testSimple.txt") + - ""+ - ""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/testXML.txt") + - ""+ - vxBean.createSignatureCheck("0")+ - vxBean.createCertificateCheck("0")+ - ""; - - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResFile(testNumber), response); - } - -public void create106() throws Exception { - - String testNumber = "106"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(); - - String requestEnd = - createSignatureInfoEnd()+ - "SupplementProfile2" + - "" + - "SupplementProfile1" + - createRequestShortEnd(false); - - String request = - makeOutputFile( - createRequestStart(testNumber +" - 2 SupplementProfileID elements" ,true,0), - cpkcs.returnSig(), - requestEnd); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(), testNumber,"0")); - } - - - public void create301() throws Exception { - - String testNumber = "301"; - - //Testcast with another canoicalization algorithm - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXMLwithCom); - //cpkcs.createReference(true,"Dies sind testdaten"); - - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(), testNumber,"0")); - } - /** - * Method create302. - * @throws Exception - */ - public void create302() throws Exception { - - String testNumber = "302"; - - //Testcast with another canoicalization algorithm - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - - cpkcs.init(); - cpkcs.setCanoncialization(canAlgExcXML); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(),testNumber,"0")); - } - /** - * Method create303. - * @throws Exception - */ - public void create303() throws Exception { - - String testNumber = "303"; - - //Testcast with another canoicalization algorithm - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - - cpkcs.init(); - cpkcs.setCanoncialization(canAlgExcXMLwithCom); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(),testNumber,"0")); - } - - public void create304() throws Exception { - - String testNumber = "304"; - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.initECDSA(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - //cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - //cpkcs.createEnvelopedDataObject("envelopedData",readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")); - - cpkcs.createReference(true,readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt"),"envelopedData"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(),testNumber,"0","CN=IAIK ECDSA Test,OU=JavaSecurity,O=IAIK,C=AT","CN=IAIK ECDSA Test,OU=JavaSecurity,O=IAIK,C=AT","68172")); - } - /** - * Method create305. - * @throws Exception - */ - public void create305() throws Exception { - - String testNumber = "305"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - - String refData = "Dies sind Testdaten"; - - cpkcs.createReference(true,refData); - - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(),testNumber,"0",refData)); - } - - /** - * Method create307. - * @throws Exception - */ - public void create307() throws Exception { - - String testNumber = "307"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(); - - Supplement supp = new Supplement(); - supp.addXMLContent(configuration_.getProperty("baseDir")+"resources/testSimple.txt", readFileCR(configuration_.getProperty("baseDir")+"resources/testSimple.txt")); - supp.closeSupplement(); - - String requestEnd = createSignatureInfoEnd()+ - supp.getSupplement() + - createRequestShortEnd(true); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - requestEnd); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(),testNumber,"0")); - } - - /** - * Method create308. - * @throws Exception - */ - public void create308() throws Exception { - - String testNumber = "308"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(); - - Supplement supp = new Supplement(); - supp.addXMLContent(configuration_.getProperty("webbaseDir")+"resources/testSimple.txt", readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")); - supp.closeSupplement(); - - - String requestEnd = createSignatureInfoEnd()+ supp.getSupplement() + - createRequestShortEnd(false); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - requestEnd); - - //request = replaceString(request,"","VERAENDERTE DATEN und die Ursprungsdaten: "); - request = replaceString(request,"Dies sind Testdaten","VERAENDERTE DATEN und die Ursprungsdaten: Dies sind Testdaten"); - //request = replaceString(request,Base64Utils.encode("Dies sind Testdaten".getBytes()),Base64Utils.encode("VERAENDERTE DATEN und die Ursprungsdaten: Dies sind Testdaten".getBytes())); - //request = replaceString(request,"",""); - /*request = replaceString(request,"Reference=\""+configuration_.getProperty("baseDir")+"resources/testSimple.txt\"","Reference=\"\""); - request = replaceString(request,"URI=\""+configuration_.getProperty("webbaseDir")+"resources/testSimple.txt\"","URI=\"\"");*/ - writeFile(vxReqFile(testNumber),request); - - String response = createResponse(cpkcs.getX509CertString(),testNumber,"1",1); - - writeFile(vxResFile(testNumber), response); - } - public void create310() throws Exception { - - String testNumber = "310"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - //Erzeugen der Base64-Daten - //String tmp = readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/testSimple.txt"); - - URI target = new URI(configuration_.getProperty("webbaseDir") + "resources/testSimple.txtbase64.enc"); - - Transform[] tr = new Transform[1]; - tr[0] = new TransformImplBase64Decode(); - InputStream s = getHttpInputStream(target.toString()); - tr[0].setInput(s,null); - - cpkcs.createReferenceWithTransforms(target,tr); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(),testNumber,"0")); - } -//------------------------------------------------------------------------- -//------------------------------------------------------------------------- -//------------------------------------------------------------------------- -//------------------------------------------------------------------------- -//-------311 scheint die XPAth - Transformation nicht richtig auszuführen- -// (Siehe Output in der Konsole.....) - - public void create311() throws Exception { - - String testNumber = "311"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - Transform[] tr = new Transform[1]; - TransformImplXPath trans = new TransformImplXPath(); -// TransformImplXSLT trans = new TransformImplXSLT(); - - - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"); -// InputStream s2 = new FileInputStream(configuration_.getProperty("baseDir")+"resources/transform.xsl"); - trans.setInput(s,null); -// trans.setStyleSheet(s2,null); - - trans.addNSDeclaration("data",new URI("http://uri.data.org")); //new URI("file:/"+configuration_.getProperty("baseDir")+"resources/BookData.xml")); - // trans.setXPath("ancestor-or-self::data:first-name"); - trans.setXPath("ancestor-or-self::text()/ancestor-or-self::data:first-name"); - - tr[0] = trans; - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir") + "resources/BookData.xml"),tr); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(),testNumber,"0",1,"text:Ellipse")); - } - -public void create312() throws Exception - { String testNumber = "312"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXPath2 trans = new TransformImplXPath2(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_book.xsl"); - trans.setInput(s,null); - - HashMap temp = new HashMap(); - temp.put("data",new URI("http://uri.data.org")); - trans.addXPathFilter("/data:book/data:first-name",TransformImplXPath2.FILTER_MODE_SUBTRACT_,temp); - tr[0] = trans; - //System.out.println(getTransformsResult(tr)); - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir") + "resources/BookData.xml"),tr,"reference-1"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart("312",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - - String response = createResponsePart(cpkcs.getX509CertString()) + - vxBean.createSignatureCheck("0")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - -public void create313() throws Exception - { String testNumber = "313"; - - // ERST MAL DAS DOKUMENT ALS STRING AUFBAUEN - - String requestEnd = createRequestEnd(true,false,null); - - String reqDocString = createRequestStart(testNumber,true,0) + - "" - + "" + requestEnd; - - - InputStream bis = new ByteArrayInputStream(("" - + "").getBytes()); - //Document-Builder holen - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - DocumentBuilder builder = factory.newDocumentBuilder(); - //Dokument Parsen - Document reqDoc = builder.parse(bis); - - System.out.println(DOMUtils.serializeNode(reqDoc.getDocumentElement())); - //Position für die Signatur angeben - //String xPath_Pos = "/moa:VerifyXMLSignatureRequest/moa:VerifySignatureInfo/moa:VerifySignatureEnvironment/moa:XMLContent/data:Document"; - String xPath_Pos = "/node()"; - //XPAth-Prefixe deklarieren - String xPath_Prefix = "data xmlns:data=\"http://uri.data.org\""; - Position pos = new Position(xPath_Pos, xPath_Prefix,0); - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - //Signer erzeugen, der das obige Doc als Basis nimmt, und die Signatur an der besagten stelle einfügt - cpkcs.init(reqDoc,pos); - cpkcs.setCanoncialization(canAlgCanXML); - - cpkcs.setKeyInformation(1); - //cpkcs.createEnvelopedDataObject("envelopedData",readFileCR(configuration_.getProperty("webbaseDir")+"resources/testSimple.txt")); - //cpkcs.createReferenceWithManifest(new URI("#xpointer(id('envelopedData')/node())"),"manifestObject"); - - Transform[] tr = new Transform[1]; - TransformImplEnvelopedSignature trans = new TransformImplEnvelopedSignature(); - tr[0] = trans; - //Enveloped Transformation - cpkcs.createReferenceWithTransforms(new URI(""),tr); -//Signieren - cpkcs.returnSig(); - //Serialisieren - String request = Node2String(reqDoc.getDocumentElement()); - - writeFile(vxReqFile(testNumber),createRequestStart(testNumber,true,0).trim() +cutXML(request).trim()+requestEnd.trim()); - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(), testNumber,"0",1,"text:"+"")); - - } - - - public void create314() throws Exception - { String testNumber = "314"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir") + "resources/BookData.xml"),tr,"reference-1"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart("314",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - - String response = createResponsePart(cpkcs.getX509CertString()) + - vxBean.createSignatureCheck("0")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - -public void create314_2() throws Exception - { String testNumber = "314_2"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir") + "resources/BookData.xml"),tr,"reference-1"); - cpkcs.setKeyInformation(); - - Supplement supp = new Supplement(); - String suppContent = readFileCR(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"); - suppContent = replaceString(suppContent, "",""); - supp.addXMLContent("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_book.xsl", suppContent ); - supp.closeSupplement(); - - String request = - makeOutputFile( - createRequestStart("314_2",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + - supp.getSupplement() - + createRequestShortEnd(false)); - -/* request = replaceString(request, "http://moa-test.brz.intra.gv.at", "http://MyServer.com"); - request = replaceString(request, "http://moa-test.brz.intra.gv.at", "http://MyServer.com"); - request = replaceString(request, "http://moa-test.brz.intra.gv.at", "http://MyServer.com"); - //Hinweis: ich nehmen an, die URI in DSIG:REFERENCE sollte schon stimmen.... - request = replaceString(request, "http://MyServer.com", "http://moa-test.brz.intra.gv.at"); */ - writeFile(vxReqFile(testNumber),request); - - String response = createResponsePart(cpkcs.getX509CertString()) + - vxBean.createSignatureCheck("0")+ - vxBean.createCertificateCheck("0")+ - ""; - writeFile(vxResFile(testNumber), response); - } - - - public void create315() throws Exception { - - String testNumber = "315"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - URI target = new URI(configuration_.getProperty("webbaseDir") + "resources/test_wo_canonicalisation.XML"); - - Transform[] tr = new Transform[1]; - tr[0] = new TransformImplCanonicalXML(); - InputStream s = getHttpInputStream(target.toString()); - tr[0].setInput(s,null); - - String erg = getTransformsResult(tr); - - cpkcs.createReferenceWithTransforms(target,tr); - //cpkcs.createReference(false, "file:/"+ configuration_.getProperty("baseDir")+"resources/test_wo_canonicalisation.XML"); - //cpkcs.createReference(false, "file:/"+ configuration_.getProperty("baseDir")+"resources/test_w_canonicalisation.XML"); -// cpkcs.createReferenceWithManifest(new URI("file:/"+ configuration_.getProperty("baseDir")+"resources/test_w_canonicalisation.XML"),"canonicalizedData"); - - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - - - writeFile(vxReqFile(testNumber),request); - - - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(),testNumber,"0",erg)); - } - - public void create316() throws Exception { - - String testNumber = "316"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - - URI target = new URI(configuration_.getProperty("webbaseDir") + "resources/test_wo_canonicalisation.XML"); - - Transform[] tr = new Transform[1]; - tr[0] = new TransformImplCanonicalXMLWithComments(); - InputStream s = getHttpInputStream(target.toString()); - tr[0].setInput(s,null); - - String erg = getTransformsResult(tr); - - cpkcs.createReferenceWithTransforms(target,tr); - - cpkcs.setKeyInformation(); - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(),testNumber,"0",erg)); - } - public void create317() throws Exception { - - String testNumber = "317"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - - URI target = new URI(configuration_.getProperty("webbaseDir") + "resources/test_wo_canonicalisation.XML"); - - Transform[] tr = new Transform[1]; - tr[0] = new TransformImplExclusiveCanonicalXML(); - InputStream s = getHttpInputStream(target.toString()); - tr[0].setInput(s,null); - String erg = getTransformsResult(tr); - cpkcs.createReferenceWithTransforms(target,tr); - - cpkcs.setKeyInformation(); - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(),testNumber,"0",erg)); - } - public void create318() throws Exception { - - String testNumber = "318"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - URI target = new URI(configuration_.getProperty("webbaseDir") + "resources/test_wo_canonicalisation.XML"); - Transform[] tr = new Transform[1]; - tr[0] = new TransformImplExclusiveCanonicalXMLWithComments(); - InputStream s = getHttpInputStream(target.toString()); - tr[0].setInput(s,null); - - String erg = getTransformsResult(tr); - cpkcs.createReferenceWithTransforms(target,tr); - - cpkcs.setKeyInformation(); - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(),testNumber,"0",erg)); - } - - public void create318_2() throws Exception { - - String testNumber = "318_2"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - - //Create a base64-encoded version of the xml file - - //String tmp = readBinaryFileAsBase64(configuration_.getProperty("baseDir")+"resources/test_wo_canonicalisation.XML"); - - URI target = new URI(configuration_.getProperty("webbaseDir") + "resources/test_wo_canonicalisation.XMLbase64.enc"); - - Transform[] tr = new Transform[3]; - tr[0] = new TransformImplBase64Decode(); - InputStream s = getHttpInputStream(target.toString()); - tr[0].setInput(s,null); - tr[1] = new TransformImplCanonicalXMLWithComments(); - tr[1].setInput(s,null); - - tr[2] = new TransformImplExclusiveCanonicalXML(); - tr[2].setInput(s,null); - String erg = getTransformsResult(tr); - cpkcs.createReferenceWithTransforms(target,tr); - - cpkcs.setKeyInformation(); - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(),testNumber,"0",erg)); - } - - /** - * Method create319: - * SignedInfo/Reference appears two times: - * the first reference points to an enveloped dsig:Object, - * the seconde reference points to an external File - * @throws Exception - */ - public void create319() throws Exception { - String testNumber = "319"; - - - // Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); // Create from whole cloth - -// Element root = (Element) document.createElement("Data"); - // root.appendChild(document.createTextNode(readFileCR(configuration_.getProperty("baseDir")+"resources/test-ee2003_normal.derbase64.enc.bak")) ); - //root.appendChild(document.createTextNode("Hallo\nHallo\nHallo")); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(true,"Dies sind Testdaten"); - //cpkcs.createReferenceEnvElement(root); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(); - - Document sign = cpkcs.returnSig(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - sign, - createRequestEnd(true,false,null)); - - /*String erg = "Dies sind Testdaten" + - "\n" + - " \n" + - " \n" + - "" + - readFileCR(configuration_.getProperty("baseDir")+"resources/testSimple.txt"); */ - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(),testNumber,"0","Dies sind Testdaten",readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt"))); - } - - /** - * Method create320: - * The element KeyInfo does NOT contain the X509-certificate but - * an URI pointing to an external xml-encoded X509-file - * @throws Exception - */ - public void create320() throws Exception { - String testNumber = "320"; - - //RetrievalMethdos instead of the integratede Keys - - //URI fileURI = new URI(configuration_.getProperty("baseDir") + "resources/test-ee2003_normal.der"); - URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml"); - URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data"); - //URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#rawX509Certificate"); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(false, fileURI, typeURI, null); - - Document sign = cpkcs.returnSig(); - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - sign, - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResFile(testNumber), createResponse(readFileCR(configuration_.getProperty("webbaseDir") + "resources/SignatureVX005Cert.xml"),testNumber,"0")); - } - -public void create320_2() throws Exception { - String testNumber = "320_2"; - - //RetrievalMethdos instead of the integratede Keys - - //URI fileURI = new URI(configuration_.getProperty("baseDir") + "resources/test-ee2003_normal.der"); - URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/TEMPX509Data.xml"); - URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data"); - //URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#rawX509Certificate"); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(false, fileURI, typeURI, null); - -// Supplement supp = new Supplement(); - -// supp.addXMLContent(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml",readFileCR(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml")); -// supp.closeSupplement(); - Document sign = cpkcs.returnSig(); - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - sign, - createRequestEnd(true,true,configuration_.getProperty("webbaseDir") + "resources/TEMPX509Data.xml")); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResFile(testNumber), createResponse(readFileCR(configuration_.getProperty("webbaseDir") + "resources/SignatureVX005Cert.xml"),testNumber,"0")); - } - - - /** - * Method create321. - * The element KeyInfo does NOT contain the X509-certificate but - * an URI pointing to an external raw X509-file - * @throws Exception - */ - public void create321() throws Exception { - String testNumber = "321"; - - //RetrievalMethdos instead of the integratede Keys - - URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/test-ee2003_normal.der"); - URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#rawX509Certificate"); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - cpkcs.setKeyInformation(false, fileURI, typeURI, null); - Document sign = cpkcs.returnSig(); String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - sign, - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResFile(testNumber), createResponse(readFileCR(configuration_.getProperty("webbaseDir") + "resources/SignatureVX005Cert.xml"),testNumber,"0")); - } - - - /** - * Method create322. - * The reference in the signature points with an xpointer - * to the ID of an embedded valid manifest dsig:object - * @throws Exception - */ -public void create322() throws Exception { - String testNumber = "322"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - URI fileURI1 = new URI(configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - Element elem = cpkcs.createReferenceWithManifest(fileURI1,"manifestObject"); - - cpkcs.setKeyInformation(); - Document sign = cpkcs.returnSig(); String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - sign, - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - - String response = createResponsePart(cpkcs.getX509CertString()) + - ""+ - Base64Utils.encode(stripNLCR(convertManifestToString(elem)).getBytes()) + - ""+ - vxBean.createSignatureCheck("0")+ - vxBean.createXMLDSIGManifestCheck("0","","1")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - /** - * Method create323: - * There are two references in the signature pointing - * with xpointer to two embedded valid manifest dsig:objects - * @throws Exception - */ - public void create323() throws Exception { - String testNumber = "323"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - URI fileURI1 = new URI(configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - URI fileURI2 = new URI(configuration_.getProperty("webbaseDir") + "resources/testXML.txt"); - Element man1 = cpkcs.createReferenceWithManifest(fileURI1,"manifestObject"); - - //HINWEIS: Durch das 2malige Aufrufen wird ein WEITERES dsig:Object ELEMENT erzeugt... darf das so sein...??? - - Element man2 = cpkcs.createReferenceWithManifest(fileURI2,"manifestObject2"); - cpkcs.setKeyInformation(); - Document sign = cpkcs.returnSig(); - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - sign, - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - String response = createResponsePart(cpkcs.getX509CertString()) + - ""+ - Base64Utils.encode(stripNLCR(convertManifestToString(man1)).getBytes()) + - ""+ - ""+ - Base64Utils.encode(stripNLCR(convertManifestToString(man2)).getBytes()) + - ""+ - vxBean.createSignatureCheck("0")+ - vxBean.createXMLDSIGManifestCheck("0","","1")+ - vxBean.createXMLDSIGManifestCheck("0","","2")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - - } - public void create324() throws Exception { - String testNumber = "324"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - URI fileURI1 = new URI(configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - URI fileURI2 = new URI(configuration_.getProperty("webbaseDir") + "resources/testXML.txt"); - Element man = cpkcs.createReferencesWithManifest(fileURI1,"manifestObject",fileURI2); - - //HINWEIS: Durch das 2malige Aufrufen wird ein WEITERES dsig:Object ELEMENT erzeugt... darf das so sein...??? - cpkcs.setKeyInformation(); - Document sign = cpkcs.returnSig(); - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - sign, - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - String response = createResponsePart(cpkcs.getX509CertString()) + - ""+ - Base64Utils.encode(stripNLCR(convertManifestToString(man)).getBytes()) + - ""+ - vxBean.createSignatureCheck("0")+ - vxBean.createXMLDSIGManifestCheck("0","","1")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - - } - - /** - * Method create325. - * @throws Exception - */ - public void create325() throws Exception { - String testNumber = "325"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - - Element mani = cpkcs.createReferenceWithManifest(new URI("#xpointer(id('envelopedData')/node())"),"manifestObject"); - cpkcs.createEnvelopedDataObject("envelopedData",readFile(configuration_.getProperty("baseDir")+"resources/testSimple.txt")); - - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - String response = createResponsePart(cpkcs.getX509CertString()) + - ""+ - Base64Utils.encode(stripNLCR(convertManifestToString(mani)).getBytes()) + - ""+ - vxBean.createSignatureCheck("0")+ - vxBean.createXMLDSIGManifestCheck("1","1","1")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - - public void create326() throws Exception { - String testNumber = "326"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - - Element mani = cpkcs.createReferenceWithManifest(new URI("#xpointer(id('envelopedData')/node())"),"manifestObject"); - cpkcs.createEnvelopedDataObject("envelopedData",readFileCR(configuration_.getProperty("baseDir")+"resources/testSimple.txt")); - - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(false,false,null)); - - request = replaceString(request,"","Dies sind veraenderte Daten und die Ursprungsdaten: \n"); - - writeFile(vxReqFile(testNumber),request); - - String response = createResponsePart(cpkcs.getX509CertString()) + - vxBean.createSignatureCheck("0")+ - vxBean.createXMLDSIGManifestCheck("1","1","1")+ - vxBean.createCertificateCheck("0")+ - ""; - - - writeFile(vxResFile(testNumber), response); - } - - /** - * Method create327: The certificate comes as raw data and is converted to a dsig:object with - * base64-data, the KeyInfo has a retrievalMethod pointing to that object and transforming the - * data back to raw-data for using that to create the signature - * @throws Exception - */ - public void create327() throws Exception { - - String testNumber = "327"; - - URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/test-ee2003_normal.der"); - URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#rawX509Certificate"); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testSimple.txt"); - - //DER-encoded RAW-Zertifikat zu Binary64 konvertieren - - //String tmp = readBinaryFileAsBase64(fileURI.getPath()); : Funktioniert nicht mehr wegen http-addi - - //dsig:Object mit den Binary64-Daten erzeugen (==> CRs weglassen!!!!!) - cpkcs.createEnvelopedDataObject("rawCertAsBase64",readFileCR(fileURI.toString()+"base64.enc")); - - //Neue Transformation erzeugen, um die Base64-Daten zurückzuwandeln - Transform[] tr = new Transform[1]; - tr[0] = new TransformImplBase64Decode(); - InputStream s = getHttpInputStream(fileURI.toString() + "base64.enc"); - tr[0].setInput(s,null); - - //Neues KeyInfo-Objekt erzeugen, wobei nicht die Zertifikate sondern - //nur eine RetrievalMethod angegeben wird, die auf das oben erzeugte Base64-dsig:Object verweist - cpkcs.setKeyInformation(true, new URI("#xpointer(id('rawCertAsBase64')/node())") , typeURI, tr); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - - cpkcs.setKeyInformation(1); - - writeFile(vxResFile(testNumber), createResponse(cpkcs.getX509CertString(), testNumber,"0")); - } - - /** - * Method makeOutputFile. - * @param start - * @param signatureDoc - * @param end - * @return String - * @throws Exception - */ - public String makeOutputFile( - String start, - Document signatureDoc, - String end) - throws Exception { - ArrayList foundNodes = new ArrayList(); - findNode( - signatureDoc.getDocumentElement(), - "dsig:Signature", - foundNodes); - - Node outputNode = null; - - if (foundNodes.size() > 0) { - outputNode = (Node) foundNodes.get(0); - } - - String erg = Node2String(outputNode); - - // remove the Prologue - int pos = erg.indexOf("" - + "\n"; - - if(dtd!=null && !dtd.trim().equals("")) - reqStart += dtd; - - reqStart+= "\n"; - - if (useDate) { - reqStart += " " - + getDate(changeHours) - + "\n"; - } - - reqStart += " \n" - + " \n" - + " " ; - return reqStart; - } - - /** - * Method getTransformsResult:the input transforms array will - * be calculated to return a string-representation of the result - * @param tr - * @return String - * @throws Exception - */ - private String getTransformsResult(Transform[] tr) throws Exception - { - Transform[] myTransforms = tr; - String result = ""; - for (int t=0; t 0) - { - result += new String(b); - is.read(b); - } - result += new String(b); - - return result; - } - - - /** - * Method createRequestEnd. - * @param useReturnHashInputData - * @param useSupplement - * @param supplementReference - * @return String - * @throws Exception - */ - private String createRequestEnd( - boolean useReturnHashInputData, - boolean useSupplement, - String supplementReference) - throws Exception { - - String reqEnd = null; - -/* reqEnd = - "\n" - + " #xpointer(/VerifyXMLSignatureRequest/VerifySignatureInfo/VerifySignatureEnvironment/dsig:Signature)\n" - + " \n"; -*/ - reqEnd =""+ - "\n" - + " //dsig:Signature\n" - + " \n"; - - - - if (useSupplement) - { - reqEnd += " \n" + - " \n" + - " "+readFileCR(supplementReference.toString())+"\n" + - " \n" + - " \n"; - } - - if (useReturnHashInputData) { - reqEnd += " \n"; - } - reqEnd += " TrustProfile1\n" - + "\n"; - return reqEnd; - - } - - private String createSignatureInfoEnd() - throws Exception { - - return ""+"\n" - + " //dsig:Signature\n" - + " \n"; - - } - - private String createRequestShortEnd(boolean useReturnHashInputData) - throws Exception { - - String reqEnd = ""; - - if (useReturnHashInputData) - reqEnd = " \n"; - - reqEnd += " TrustProfile1\n" - + "\n"; - return reqEnd; - - } - /** - * Method createResponse. - * @param testNumber - * @param signatureCheckCode - * @return String - * @throws Exception - */ - private String createResponse(String x509cert, String testNumber, String signatureCheckCode) throws Exception { - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal_extract.cer"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + x509cert - + " \n" - + " \n"; - res += " \n" + " "; - /*res += ""+readFileCR( - configuration_.getProperty("baseDir") - + "resources/testSimple.txt")+ - "";*/ - res += ""+readBinaryFileAsBase64_new((configuration_.getProperty("baseDir")+ "resources/testSimple.txt"))+""; - - res += vxBean.getFooterSignatureCheck(signatureCheckCode, "0"); - - return res; - } - - private String createResponseL(String x509cert, String testNumber, String signatureCheckCode,String filename) throws Exception { - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal_extract.cer"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + x509cert - + " \n" - + " \n"; - - res += replaceString(vxBean.getFooterSignatureCheck(signatureCheckCode, "0"),"",""); - - return res; - } - - private String createResponse(String x509cert, String testNumber, String signatureCheckCode,int code) throws Exception { - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal_extract.cer"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + x509cert - + " \n" - + " \n"; - res += " \n" + - " 11\n" + - " \n" + - " \n" + - " 0\n" + - " \n" + - "";; - - return res; - } - - - /** - * Method createResponse. - * @param testNumber - * @param signatureCheckCode - * @return String - * @throws Exception - */ - private String createResponse(String x509cert, String testNumber, String signatureCheckCode,int code,String filename) throws Exception { - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal_extract.cer"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + x509cert - + " \n" - + " \n"; - res += " \n" + " "; - /*res += ""+readFileCR( - configuration_.getProperty("baseDir") - + "resources/testSimple.txt")+ - "";*/ - if(filename.startsWith("text:")) - res += ""+Base64Utils.encode(filename.substring(5).getBytes())+""; - else - res += ""+readBinaryFileAsBase64_new((configuration_.getProperty("baseDir")+ filename))+""; - - res += vxBean.getFooterSignatureCheck(signatureCheckCode, "0"); - - return res; - } - -/** - * Method createResponse. - * @param testNumber - * @param signatureCheckCode - * @return String - * @throws Exception - */ - private String createResponse(String x509cert, String testNumber, String signatureCheckCode,String iss,String subject,String serial) throws Exception { - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal_extract.cer"); - - String res = null; - - res = vxBean.getHeader(); - res += subject; - res += " \n"; - res += iss; - res += serial; - res += " \n" - + x509cert - + " \n" - + " \n"; - res += " \n" + " "; - /*res += ""+readFileCR( - configuration_.getProperty("baseDir") - + "resources/testSimple.txt")+ - "";*/ - res += ""+readBinaryFileAsBase64_new((configuration_.getProperty("baseDir")+ "resources/testSimple.txt"))+""; - - res += vxBean.getFooterSignatureCheck(signatureCheckCode, "0"); - - return res; - } - - - private String createResponse(String x509cert, String testNumber, String signatureCheckCode, String hashData) throws Exception { - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + x509cert - + " \n" - + " \n"; - res += " \n"; - /* " "+ - hashData + - "\n";*/ - res += ""+Base64Utils.encode(hashData.getBytes())+""; - System.out.println(res); - res += vxBean.getFooterSignatureCheck(signatureCheckCode, "0"); - System.out.println(res); - - return res; - } - - private String createResponse(String x509cert, String testNumber, String signatureCheckCode, String hashData,String hashData2) throws Exception { - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + x509cert - + " \n" - + " \n"; - res += " \n"; - /* " "+ - hashData + - "\n";*/ - res += ""+Base64Utils.encode(hashData.getBytes())+""; - res += ""; - res += ""+Base64Utils.encode(hashData2.getBytes())+""; - res += vxBean.getFooterSignatureCheck(signatureCheckCode, "0"); - - return res; - } - - private String createResponseWithoutHashInputData(String x509cert, String testNumber, String signatureCheckCode,boolean dsig) throws Exception { - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + x509cert - + " \n" - + " \n" - + " \n" + - " " + signatureCheckCode + "\n" + - " \n"; - - if(dsig) res+=vxBean.createXMLDSIGManifestCheck("0","","1"); - res+= " \n" + - " 0\n" + - " \n" + - ""; - - return res; - } - - private String createResponseWithoutHashInputData(String x509cert, String testNumber, String signatureCheckCode) throws Exception { - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + x509cert - + " \n" - + " \n" - + " \n" + - " " + signatureCheckCode + "\n" + - " \n" + - " \n" + - " 0\n" + - " \n" + - ""; - - return res; - } - - private String createResponsePart(String x509cert) throws Exception { - - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n"; - - res +=x509cert; - - res += " \n" - + " \n"; - /*res += " \n" + " "; - res += readFile( - configuration_.getProperty("baseDir") - + "resources/testSimple.txt"); - */ - //res += vxBean.getFooterXMLDSIGManifestCheck(xmlDSIGManifestCheckCode,"0"); - - return res; - } - - public String readFileCR(String filename) throws Exception { - - /*StringBuffer data = new StringBuffer(); - String line = null; - BufferedReader br = new BufferedReader(new FileReader(filename)); - while ((line = br.readLine()) != null) { - data.append(line); - data.append("\n"); - } - */ - String response=""; - byte[] result; - - if (filename.substring(0,4).toLowerCase().equals("http")) - { - - URL targetUrl = new URL(filename); - HttpURLConnection h = (HttpURLConnection)targetUrl.openConnection(); - InputStream is = h.getInputStream(); - - int size = 0; - - result = new byte[h.getContentLength()]; - for (int i = 0; i < result.length; i++) { - byte[] b = new byte[1]; - is.read(b); - result[i]=b[0]; - } - is.close(); - } - else - { - RandomAccessFile raf = new RandomAccessFile(filename, "r"); - if (raf.length() > Integer.MAX_VALUE) - throw new IOException("file too big to fit in byte array."); - - result = new byte[(int) raf.length()]; - raf.read(result); - raf.close(); - - } - - byte[] temp = new byte[result.length]; - int s = 0; - for (int t=0; t",""); - } - catch (Exception e) {} - - return response; - } - -private InputStream getHttpInputStream(String url) throws Exception - { - URL targetUrl = new URL(url); - HttpURLConnection h = (HttpURLConnection)targetUrl.openConnection(); - return h.getInputStream(); - } - -private String convertManifestToString(Element e) throws Exception - { - String result =(new DOMWriterImpl(true)).writeToString(e); - result = replaceString(result,"",""); - result = replaceStringAll(result,"'","'"); - result = replaceStringAll(result,"#sha1\"/>"); - - String manifest = request.substring(pos_1,pos_2+"".length()); - manifest = replaceString(manifest,""); - - String etsi = request.substring(pos_1,pos_2+"".length()); - //etsi = replaceStringAll(etsi,"etsi:","ns1:"); - etsi = replaceString(etsi,""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ - ""+ - ""+manifest+""+ - ""+etsi+""+ - vxBean.createSignatureCheck("0")+ - vxBean.createSignatureManifestCheck("0")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - - public void create202() throws Exception - { String testNumber = "202"; - - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - cpkcs.createEnvelopedDataObject( - etsiPropertyName,ets.getQualProp()); - - cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), - etsiURI); - - cpkcs.setKeyInformation(); - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams(null); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); - smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename)); - - String request = - makeOutputFile( - createRequestStart("202 no SignatureManifestCheckParams/@ReturnReferenceInputData" ,true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - - int pos_1 = request.indexOf(""); - - String manifest = request.substring(pos_1,pos_2+"".length()); - manifest = replaceString(manifest,""); - - String etsi = request.substring(pos_1,pos_2+"".length()); - //etsi = replaceStringAll(etsi,"etsi:","ns1:"); - etsi = replaceString(etsi,""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ - ""+ - ""+manifest+""+ - ""+etsi+""+ - vxBean.createSignatureCheck("0")+ - vxBean.createSignatureManifestCheck("0")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } -public void create203() throws Exception - { String testNumber = "203"; - - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - cpkcs.createEnvelopedDataObject( - etsiPropertyName,ets.getQualProp()); - - cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), - etsiURI); - - cpkcs.setKeyInformation(); - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("false"); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); - smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename)); - - String request = - makeOutputFile( - createRequestStart("203 SignatureManifestCheckParams/@ReturnReferenceInputData = false",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - String response = createResponsePart(cpkcs.getX509CertString()) + - vxBean.createSignatureCheck("0")+ - vxBean.createSignatureManifestCheck("0")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - - - - - public void create205() throws Exception - { String testNumber = "205"; - - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[2]; - TransformImplCanonicalXML trans0 = new TransformImplCanonicalXML(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans0.setInput(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans0; - - TransformImplXSLT trans = new TransformImplXSLT(); - s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[1] = trans; - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - cpkcs.createEnvelopedDataObject( - etsiPropertyName,ets.getQualProp()); - - cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), - etsiURI); - - cpkcs.setKeyInformation(); - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); - smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename )); - - String request = - makeOutputFile( - createRequestStart("206 - 2 dsig:Transform elements ==> Canonisierung + Stylesheet",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - int pos_1 = request.indexOf(""); - - String manifest = request.substring(pos_1,pos_2+"".length()); - manifest = replaceString(manifest,""); - - String etsi = request.substring(pos_1,pos_2+"".length()); - //etsi = replaceStringAll(etsi,"etsi:","ns1:"); - etsi = replaceString(etsi,""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ - ""+ - ""+manifest+""+ - ""+etsi+""+ - vxBean.createSignatureCheck("0")+ - vxBean.createSignatureManifestCheck("0")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - -public void create206() throws Exception - { String testNumber = "206"; - - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - cpkcs.createEnvelopedDataObject( - etsiPropertyName,ets.getQualProp()); - - cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), - etsiURI); - - cpkcs.setKeyInformation(); - - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); - smcp.addTransParaElement("Hash",getBase64Hash(configuration_.getProperty("baseDir")+"resources/" + filename)); - - String request = - makeOutputFile( - createRequestStart("206 TransformParameter/Hash statt TransformParameter/Base64Content (Der Hash wird von " + filename + " gebildet)",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - int pos_1 = request.indexOf(""); - - String manifest = request.substring(pos_1,pos_2+"".length()); - manifest = replaceString(manifest,""); - - String etsi = request.substring(pos_1,pos_2+"".length()); - //etsi = replaceStringAll(etsi,"etsi:","ns1:"); - etsi = replaceString(etsi,""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ - ""+ - ""+manifest+""+ - ""+etsi+""+ - vxBean.createSignatureCheck("0")+ - vxBean.createSignatureManifestCheck("0")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - -public void create208() throws Exception - { String testNumber = "208"; - - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - cpkcs.createEnvelopedDataObject( - etsiPropertyName,ets.getQualProp()); - - cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), - etsiURI); - - cpkcs.setKeyInformation(); - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_book.xsl"); - - String request = - makeOutputFile( - createRequestStart("208 - weder Base64Content noch Hash wird verwendet ",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - int pos_1 = request.indexOf(""); - - String manifest = request.substring(pos_1,pos_2+"".length()); - manifest = replaceString(manifest,""); - - String etsi = request.substring(pos_1,pos_2+"".length()); - //etsi = replaceStringAll(etsi,"etsi:","ns1:"); - etsi = replaceString(etsi,""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ - ""+ - ""+manifest+""+ - ""+etsi+""+ - vxBean.createSignatureCheck("0")+ - vxBean.createSignatureManifestCheck("0")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - - -public void create209() throws Exception - { String testNumber = "209"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_book.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_book.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); -// cpkcs.createReferenceWithManifest( -// new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), -// "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - cpkcs.createEnvelopedDataObject( - etsiPropertyName,ets.getQualProp()); - - cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), - etsiURI); - - cpkcs.setKeyInformation(); - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - - String request = - makeOutputFile( - createRequestStart("209 0 TransformParameter ==> ganzes Element raus und direkt auf CX1_book.xsl verweisen (in der Transformations-Referenz)",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - - /*int pos_1 = request.indexOf(""); - - String manifest = request.substring(pos_1,pos_2+"".length()); - manifest = replaceString(manifest,""); - - String etsi = request.substring(pos_1,pos_2+"".length()); - //etsi = replaceStringAll(etsi,"etsi:","ns1:"); - etsi = replaceString(etsi,""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ - ""+ - ""+etsi+""+ - vxBean.createSignatureCheck("0")+ - vxBean.createSignatureManifestCheck("2")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } -public void create210() throws Exception - { String testNumber = "210"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/VX2_bookref2includes.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/VX2_bookref2includes.xsl")); - trans.setInput(s,null); - tr[0] = trans; - - //System.out.println(getTransformsResult(tr)); - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - cpkcs.createReferencesWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/VX2_book0.xsl"), - "Manifest",new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/VX2_book1.xsl"), "http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - cpkcs.createEnvelopedDataObject(etsiPropertyName, - ets.getQualProp()); - - cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), - etsiURI); - - cpkcs.setKeyInformation(); - - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/VX2_book0.xsl"); - smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/VX2_book0.xsl")); - smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/VX2_book1.xsl"); - smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/VX2_book1.xsl")); - - - String request = - makeOutputFile( - createRequestStart("210 2 includes",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - - int pos_1 = request.indexOf(""); - - String manifest = request.substring(pos_1,pos_2+"".length()); - manifest = replaceString(manifest,""); - - String etsi = request.substring(pos_1,pos_2+"".length()); - //etsi = replaceStringAll(etsi,"etsi:","ns1:"); - etsi = replaceString(etsi,""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ - ""+ - ""+manifest+""+ - ""+etsi+""+ - vxBean.createSignatureCheck("0")+ - vxBean.createSignatureManifestCheck("0")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - -public void create211() throws Exception - { String testNumber = "211"; - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - cpkcs.createEnvelopedDataObject(etsiPropertyName, - ets.getQualProp()); - - cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"), - etsiURI); - - cpkcs.setKeyInformation(); - - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - /*for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_book.xsl"); - smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/CX1_book.xsl"));*/ - - smcp.addTransformsProfileID("TransformsInfoProfile1"); - smcp.addTransformsProfileID("TransformsInfoProfile2"); - - String request = - makeOutputFile( - createRequestStart("211 2 VerifyTransformsInfoID ==> Statt TransformsInfoProfile , in ein IntoProfileID auf Datei mit orig.Daten des TransInfoProfile verweisen, das andere auf ein Transforms, das nur Canonisiserung enthaelt",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - - int pos_1 = request.indexOf(""); - - String manifest = request.substring(pos_1,pos_2+"".length()); - manifest = replaceString(manifest,""); - - String etsi = request.substring(pos_1,pos_2+"".length()); - //etsi = replaceStringAll(etsi,"etsi:","ns1:"); - etsi = replaceString(etsi,""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ - ""+ - ""+manifest+""+ - ""+etsi+""+ - vxBean.createSignatureCheck("0")+ - vxBean.createSignatureManifestCheck("0")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - - public void create212() throws Exception - { String testNumber = "212"; - - String filepath = configuration_.getProperty("webbaseDir")+"resources/"; - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-2"); - - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - ets.addDataObjectFormat("#reference-2"); - cpkcs.createEnvelopedDataObject( - etsiPropertyName,ets.getQualProp()); - //2. DataObject Format - cpkcs.createReference(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('ETSIProperties')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"),etsiURI); - cpkcs.setKeyInformation(); - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); - smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename )); - - SignatureManifestCheckParams smcp2 = new SignatureManifestCheckParams(null); - for (int trNr=0; trNr < tr.length; trNr++) - smcp2.addDisgTransform(tr[trNr].toElement(smcp2.getDoc())); - smcp2.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); - smcp2.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename )); - - String signManiDoc = replaceString(smcp.returnDoc(),"","") + - replaceString(smcp2.returnDoc(),"",""); - - String request = - makeOutputFile( - createRequestStart("212 2 ReferenceInfo (for 2 dsig:Reference (pplus Manifest + SignedProperties) : etsi:DataObjectFormat 2mal, Reference 2mal, Manifest 1mal, ReferenceInfo 2mal)",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + signManiDoc - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - - int pos_1 = request.indexOf(""); - - String manifest = request.substring(pos_1,pos_2+"".length()); - manifest = replaceString(manifest,""); - - String etsi = request.substring(pos_1,pos_2+"".length()); - //etsi = replaceStringAll(etsi,"etsi:","ns1:"); - etsi = replaceString(etsi,""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ - ""+ - ""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ - ""+ - ""+manifest+""+ - ""+etsi+""+ - vxBean.createSignatureCheck("0")+ - vxBean.createSignatureManifestCheck("0")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - - - public void create213() throws Exception - { - String testNumber = "213"; - - String filepath = configuration_.getProperty("webbaseDir")+"resources/"; - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - cpkcs.createEnvelopedDataObject(etsiPropertyName, - ets.getQualProp()); - - cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "'))/*/*"), - etsiURI); - - cpkcs.setKeyInformation(); - - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - - String request = - makeOutputFile( - createRequestStart("213 kein TransformParameter element obwohl in Transforms URIs referenziert werden",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - - int pos_1 = request.indexOf(""); - - String manifest = request.substring(pos_1,pos_2+"".length()); - manifest = replaceString(manifest,""); - - String etsi = request.substring(pos_1,pos_2+"".length()); - //etsi = replaceStringAll(etsi,"etsi:","ns1:"); - etsi = replaceString(etsi,""); - pos_2 = request.substring(pos_1).indexOf(""); - - String etsi = request.substring(pos_1,pos_1+pos_2+"".length()); - etsi = replaceString(etsi,"",""); - - - String response = createResponsePart(cpkcs.getX509CertString()) + - ""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ - ""+ - ""+manifest+""+ - ""+etsi+""+ - vxBean.createSignatureCheck("0")+ - vxBean.createSignatureManifestCheck("1","1")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - - public void create214() throws Exception - { - String testNumber = "214"; - - String filepath = configuration_.getProperty("webbaseDir")+"resources/"; - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - cpkcs.createEnvelopedDataObject(etsiPropertyName, - ets.getQualProp()); - - cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "'))/*/*"), - etsiURI); - - cpkcs.setKeyInformation(); - - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - - smcp.addTransformsProfileID("TransformsInfoProfile2"); - - String request = - makeOutputFile( - createRequestStart("214 1 VerifyTransformsInfoID ==> Passt aber nicht zur Transformation (XSLT <==> Canonisiserung)",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - - int pos_1 = request.indexOf(""); - - String manifest = request.substring(pos_1,pos_2+"".length()); - manifest = replaceString(manifest,""); - pos_2 = request.substring(pos_1).indexOf(""); - - String etsi = request.substring(pos_1,pos_1+pos_2+"".length()); - etsi = replaceString(etsi,"",""); - - String response = createResponsePart(cpkcs.getX509CertString()) + - ""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ - ""+ - ""+manifest+""+ - ""+etsi+""+ - vxBean.createSignatureCheck("0")+ - vxBean.createSignatureManifestCheck("1","1")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - - public void create215() throws Exception - { String testNumber = "215"; - - String filepath = configuration_.getProperty("webbaseDir")+"resources/"; - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - //Reference 1 - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - //ets.addDataObjectFormat("#reference-2"); - cpkcs.createEnvelopedDataObject( - etsiPropertyName,ets.getQualProp()); - - cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "')/*/*)"),etsiURI); - cpkcs.setKeyInformation(); - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); - smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename)); - - SignatureManifestCheckParams smcp2 = new SignatureManifestCheckParams(null); - for (int trNr=0; trNr < tr.length; trNr++) - smcp2.addDisgTransform(tr[trNr].toElement(smcp2.getDoc())); - smcp2.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); - smcp2.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename)); - - String signManiDoc = replaceString(smcp.returnDoc(),"","") + - replaceString(smcp2.returnDoc(),"",""); - - String request = - makeOutputFile( - createRequestStart("215 number of ReferenceInfo is different from number of dsig:Reference in the signature",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + signManiDoc - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - //writeFile(vxResErrFile(testNumber),"2271"); - - int pos_1 = request.indexOf(""); - - String manifest = request.substring(pos_1,pos_2+"".length()); - manifest = replaceString(manifest,""); - - String etsi = request.substring(pos_1,pos_2+"".length()); - //etsi = replaceStringAll(etsi,"etsi:","ns1:"); - etsi = replaceString(etsi,""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ - ""+ - ""+manifest+""+ - ""+etsi+""+ - vxBean.createSignatureCheck("0")+ - vxBean.createSignatureManifestCheck("1")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - - public void create216() throws Exception - { - String testNumber = "216"; - - String filepath = configuration_.getProperty("webbaseDir")+"resources/"; - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - //Reference 1 - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-2"); - - - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - ets.addDataObjectFormat("#reference-2"); - cpkcs.createEnvelopedDataObject( - etsiPropertyName,ets.getQualProp()); - - cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "')/*/*)"),etsiURI); - cpkcs.setKeyInformation(); - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); - smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename)); - - String request = - makeOutputFile( - createRequestStart("216 number of References id bigger then number of ReferenceInfos",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - //writeFile(vxResErrFile(testNumber),"2271"); - - int pos_1 = request.indexOf(""); - - String manifest = request.substring(pos_1,pos_2+"".length()); - manifest = replaceString(manifest,""); - - String etsi = request.substring(pos_1,pos_2+"".length()); - //etsi = replaceStringAll(etsi,"etsi:","ns1:"); - etsi = replaceString(etsi,""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ - ""+ - ""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ - ""+ - ""+manifest+""+ - ""+etsi+""+ - vxBean.createSignatureCheck("0")+ - vxBean.createSignatureManifestCheck("1")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - - public void create217() throws Exception - { String testNumber = "217"; - - String filepath = configuration_.getProperty("webbaseDir")+"resources/"; - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - cpkcs.createEnvelopedDataObject(etsiPropertyName, ets.getQualProp()); - cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "'))/*/*"), etsiURI); - cpkcs.setKeyInformation(); - - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); - smcp.addTransParaElement("Hash",getBase64Hash(configuration_.getProperty("baseDir")+"resources/" + filename)); - - String request = - makeOutputFile( - createRequestStart("217 - TransformParameter/@URI resolves but Hash does not match - which hashing algorithm?",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - request = replaceString(request,"", - "abcd"); - - writeFile(vxReqFile(testNumber),request); - //writeFile(vxResErrFile(testNumber),"2205"); - - int pos_1 = request.indexOf(""); - - String manifest = request.substring(pos_1,pos_2+"".length()); - manifest = replaceString(manifest,""); - pos_2 = request.substring(pos_1).indexOf(""); - - String etsi = request.substring(pos_1,pos_1+pos_2+"".length()); - etsi = replaceString(etsi,"",""); - - String response = createResponsePart(cpkcs.getX509CertString()) + - ""+ - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/BookData.xml")+ - ""+ - ""+manifest+""+ - ""+etsi+""+ - vxBean.createSignatureCheck("0")+ - vxBean.createSignatureManifestCheck("1","1")+ - vxBean.createCertificateCheck("0")+ - ""; - - writeFile(vxResFile(testNumber), response); - } - - - /** - * Method makeOutputFile. - * @param start - * @param signatureDoc - * @param end - * @return String - * @throws Exception - */ - public String makeOutputFile( - String start, - Document signatureDoc, - String end) - throws Exception { - ArrayList foundNodes = new ArrayList(); - findNode( - signatureDoc.getDocumentElement(), - "dsig:Signature", - foundNodes); - - Node outputNode = null; - - if (foundNodes.size() > 0) { - outputNode = (Node) foundNodes.get(0); - } - - String erg = Node2String(outputNode); - - // remove the Prologue - int pos = erg.indexOf("" - + "\n" - + "\n"; - - if (useDate) { - reqStart += " " - + getDate(changeHours) - + "\n"; - } - - reqStart += " \n" - + " \n" - + " " ; - return reqStart; - } - - /** - * Method getTransformsResult:the input transforms array will - * be calculated to return a string-representation of the result - * @param tr - * @return String - * @throws Exception - */ - private String getTransformsResult(Transform[] tr) throws Exception - { - Transform[] myTransforms = tr; - String result = ""; - for (int t=0; t 0) - { - result += new String(b); - is.read(b); - } - result += new String(b); - - return result; - } - - private String getBase64Hash(String filename) throws Exception - { - DigestAlgorithmImplSHA1 dig = new DigestAlgorithmImplSHA1(); - - dig.setInput(new FileInputStream(filename)); - - InputStream erg = dig.digest(); - String result = ""; - - int size = erg.available(); - - byte[] b = new byte[size]; - erg.read(b); - - return Base64Utils.encode(b); - } - - /** - * Method createRequestEnd. - * @param useReturnHashInputData - * @param useSupplement - * @param supplementReference - * @return String - * @throws Exception - */ - private String createRequestEnd( - boolean useReturnHashInputData, - boolean useSupplement, - String supplementReference) - throws Exception { - - String reqEnd = null; - -/* reqEnd = - "\n" - + " #xpointer(/VerifyXMLSignatureRequest/VerifySignatureInfo/VerifySignatureEnvironment/dsig:Signature)\n" - + " \n"; -*/ - reqEnd =""+ - "\n" - + " //dsig:Signature\n" - + " \n"; - - - - if (useSupplement) - { - reqEnd += " \n" + - " \n" + - " "+readFile(supplementReference.toString())+"\n" + - " \n" + - " \n"; - } - - if (useReturnHashInputData) { - reqEnd += " \n"; - } - reqEnd += " TrustProfile1\n" - + "\n"; - return reqEnd; - - } - - private String createSignatureInfoEnd() - throws Exception { - - return ""+"\n" - + " //dsig:Signature\n" - + " \n"; - - } - - private String createRequestShortEnd(boolean useReturnHashInputData) - throws Exception { - - String reqEnd = ""; - - if (useReturnHashInputData) - reqEnd = " \n"; - - reqEnd += " TrustProfile1\n" - + "\n"; - return reqEnd; - - } - /** - * Method createResponse. - * @param testNumber - * @param signatureCheckCode - * @return String - * @throws Exception - */ - private String createResponse(String testNumber, String signatureCheckCode) throws Exception { - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + " \n" - + " \n"; - res += " \n" + " "; - res += readFile( - configuration_.getProperty("webbaseDir") - + "resources/testDaten.txt")+ - ""; - - res += vxBean.getFooterSignatureCheck(signatureCheckCode, "0"); - - return res; - } - - private String createResponse(String testNumber, String signatureCheckCode, String hashData) throws Exception { - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + " \n" - + " \n"; - res += " \n" + - " "+ - hashData + - "\n"; - res += vxBean.getFooterSignatureCheck(signatureCheckCode, "0"); - - return res; - } - - - private String createResponseWithoutHashInputData(String testNumber, String signatureCheckCode) throws Exception { - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + " \n" - + " \n" - + " \n" + - " " + signatureCheckCode + "\n" + - " \n" + - " \n" + - " 0\n" + - " \n" + - ""; - - return res; - } -/* private String createResponseXMLDsigCheck(String testNumber, String xmlDSIGManifestCheckCode) throws Exception { - - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + " \n" - + " \n"; - res += " \n" + " "; - res += readFile( - configuration_.getProperty("webbaseDir") - + "resources/testDaten.txt"); - - res += vxBean.getFooterXMLDSIGManifestCheck(xmlDSIGManifestCheckCode,"0"); - - return res; - }*/ - - private String createResponsePart(String x509cert) throws Exception { - - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + x509cert - + " \n" - + " \n"; - /*res += " \n" + " "; - res += readFile( - configuration_.getProperty("webbaseDir") - + "resources/testDaten.txt"); - */ - //res += vxBean.getFooterXMLDSIGManifestCheck(xmlDSIGManifestCheckCode,"0"); - - return res; - } - - public String readFileCR(String filename) throws Exception { - - /*StringBuffer data = new StringBuffer(); - String line = null; - BufferedReader br = new BufferedReader(new FileReader(filename)); - while ((line = br.readLine()) != null) { - data.append(line); - data.append("\n"); - } - */ - String response=""; - byte[] result; - - if (filename.substring(0,4).toLowerCase().equals("http")) - { - - URL targetUrl = new URL(filename); - HttpURLConnection h = (HttpURLConnection)targetUrl.openConnection(); - InputStream is = h.getInputStream(); - - int size = 0; - - result = new byte[h.getContentLength()]; - for (int i = 0; i < result.length; i++) { - byte[] b = new byte[1]; - is.read(b); - result[i]=b[0]; - } - is.close(); - } - else - { - RandomAccessFile raf = new RandomAccessFile(filename, "r"); - if (raf.length() > Integer.MAX_VALUE) - throw new IOException("file too big to fit in byte array."); - - result = new byte[(int) raf.length()]; - raf.read(result); - raf.close(); - - } - - byte[] temp = new byte[result.length]; - int s = 0; - for (int t=0; t",""); - } - catch (Exception e) {} - - return response; - } - -private InputStream getHttpInputStream(String url) throws Exception - { - - return ((HttpURLConnection)new URL(url).openConnection()).getInputStream(); - } - - - -} diff --git a/spss.test/src/testgenerator/TestGeneratorVXErrors.java b/spss.test/src/testgenerator/TestGeneratorVXErrors.java deleted file mode 100644 index 3c9db0dad..000000000 --- a/spss.test/src/testgenerator/TestGeneratorVXErrors.java +++ /dev/null @@ -1,1775 +0,0 @@ -package testgenerator; -import iaik.ixsil.algorithms.DigestAlgorithmImplSHA1; -import iaik.ixsil.algorithms.Transform; -import iaik.ixsil.algorithms.TransformImplBase64Decode; -import iaik.ixsil.algorithms.TransformImplXSLT; -import iaik.ixsil.util.URI; -import iaik.utils.Base64OutputStream; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.RandomAccessFile; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.ArrayList; - -import org.w3c.dom.Document; -import org.w3c.dom.Node; - -/** - * @author stephan - */ -public class TestGeneratorVXErrors extends TestCases { - - private static final int canAlgCanXML = 1; - private static final int canAlgCanXMLwithCom = 2; - private static final int canAlgExcXML = 3; - private static final int canAlgExcXMLwithCom = 4; - private static VXResponseBean vxBean = null; - private static String etsiPropertyName = "ETSIProperties"; - private static URI etsiURI; - - - public static void main(String[] args) throws Exception { - - etsiURI = new URI("http://uri.etsi.org/01903/v1.1.1#SignedProperties"); - - vxBean = new VXResponseBean(); - - TestGeneratorVXErrors testcase = new TestGeneratorVXErrors(); - testcase.createVXConfig(); - - - //testcase.create051(); - testcase.create052(); - testcase.create053(); - testcase.create054(); - testcase.create055(); - - testcase.create151(); - //testcase.create152(); - testcase.create153(); - testcase.create154(); -//N.A.: testcase.create155(); - - testcase.create251(); - //testcase.create252(); - //testcase.create252_2(); - testcase.create253(); - //testcase.create254(); - //testcase.create255(); - //testcase.create256(); - - testcase.create351(); - testcase.create352(); - //testcase.create353(); - testcase.create354(); - //testcase.create355(); - testcase.create356(); - testcase.create357(); - //testcase.create358(); - testcase.create359(); - testcase.create360(); - testcase.create360_2(); - //testcase.create361(); - testcase.create362(); - testcase.create363(); - testcase.create364(); - testcase.create365(); - testcase.create366(); - testcase.create367(); - //testcase.create368(); - testcase.create369(); - testcase.create370(); - - - } - - /* ==================================================================================================== */ - - public TestGeneratorVXErrors() throws Exception { - - super(); - - // Set config properties - configuration_.setProperty("TestClass", "TestGeneratorVX"); - - // configuration_.setProperty("privateKeyFile", baseDir + "additionalFiles/keys/RSAPrivateKey.der"); - // configuration_.setProperty("publicKeyFile", baseDir + "additionalFiles/keys/RSAPublicKey.der"); - // configuration_.setProperty("signatureFile", baseDir + "additionalFiles/signatures/Signature.unit1.xml"); - - iaik.security.provider.IAIK.addAsProvider(); - iaik.security.ecc.provider.ECCProvider.addAsProvider(); - } - - /* ==================================================================================================== */ - - public void create051() throws Exception { - String testNumber = "051"; - //Create a Request with number 051, Time in the future (+24 hours) - // and with the Date and ReturnHashInputDate Elements present - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,24), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"0000"); - - } - /** - * Method create052. - * @throws Exception - */ - public void create052() throws Exception { - String testNumber = "052"; - //Create a Request with number 052, with current Time (+0 hours) - // and with the Date and ReturnHashInputDate Elements present - - // BUT there is in invalid Element to crash validation against XMLDsig - // is replaces by - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = - replaceString( - request, - "", - ""); - request = - replaceString( - request, - "", - ""); - - writeFile(vxReqFile(testNumber), request); - writeFile(vxResErrFile(testNumber),"1100"); - } - - /** - * Method create053. - * @throws Exception - */ - public void create053() throws Exception { - String testNumber = "053"; - //Create a Request with number 053, with current Time (+0 hours) - // and with the Date and ReturnHashInputDate Elements present - - // BUT with an invalid XPath expression - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = - replaceString( - request, - "//dsig:Signature", - "//invalid XPath Expression"); - - writeFile(vxReqFile(testNumber), request); - writeFile(vxResErrFile(testNumber),"2212"); - } - /** - * Method create054. - * @throws Exception - */ - public void create054() throws Exception { - String testNumber = "054"; - - //Create a Request with number 053, with current Time (+0 hours) - // and with the Date and ReturnHashInputDate Elements present - - // BUT with an valid XPath expression not referencing a valid element - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = - replaceString(request, "//dsig:Signature", "//dsig:NoValidElement"); - writeFile(vxReqFile(testNumber), request); - writeFile(vxResErrFile(testNumber),"2212"); - } - public void create055() throws Exception { - - String testNumber = "055"; - - //Create a Request with number 001, the current Time (+0 hours) - // and with the Date and ReturnHashInputDate Elements present - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = - replaceString(request, - "TrustProfile1", "InvalidProfile"); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"2203"); - - - // writeFile(vxResFile(testNumber), createResponse(testNumber,"0")); - } - public void create151() throws Exception { - - String testNumber = "151"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - cpkcs.setKeyInformation(); - - - String requestEnd = createSignatureInfoEnd()+ - createRequestShortEnd(false); - - String request = - makeOutputFile( - createRequestStart(testNumber + " an URI referenced in dsig:Signature does not resolve and no SupplementProfile is available",true,0), - cpkcs.returnSig(), - requestEnd); - - request = replaceString(request, configuration_.getProperty("webbaseDir")+"resources/testDaten.txt","http://no.uritoresolve.com" ); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"2264"); - - } - public void create152() throws Exception { - - String testNumber = "152"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - cpkcs.setKeyInformation(); - - Supplement supp = new Supplement(); - supp.addMetaInfo("text/plain","http://www.buergerkarte.at"); - supp.addBase64Content(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt", - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/testDaten.txt")); - supp.closeSupplement(); - //supp.addProfileID("Some ID"); - - String requestEnd = createSignatureInfoEnd()+ - supp.getSupplement() + createRequestShortEnd(false); - - String request = - makeOutputFile( - createRequestStart(testNumber + "- MimeType",true,0), - cpkcs.returnSig(), - requestEnd); - - request = replaceString(request, "text/plain","no valid MIME-Type" ); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"1100"); - } - - public void create153() throws Exception { - - String testNumber = "153"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - cpkcs.setKeyInformation(); - - String requestEnd = - createSignatureInfoEnd()+ - "NO VALID SUPPLEMENT PROFILE ID" + - createRequestShortEnd(false); - - String request = - makeOutputFile( - createRequestStart(testNumber + " - invalid SupplementProfileID",true,0), - cpkcs.returnSig(), - requestEnd); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"2267"); - } - - public void create154() throws Exception { - - String testNumber = "154"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - cpkcs.setKeyInformation(); - - Supplement supp = new Supplement(); - supp.addMetaInfo("text/plain","http://www.buergerkarte.at"); - supp.addBase64Content(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt", - readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/testDaten.txt")); - supp.closeSupplement(); - //supp.addProfileID("Some ID"); - - String requestEnd = createSignatureInfoEnd()+ - supp.getSupplement() + createRequestShortEnd(false); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - requestEnd); - request = replaceString(request,"","AAAAAAAAAAAAAAAAAA"); - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"1100"); - } - -public void create155() throws Exception { - String testNumber = "155"; -/* CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - cpkcs.setKeyInformation(); - - Supplement supp = new Supplement(); - supp.addXMLContent(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt", readFileCR(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt")); - supp.closeSupplement(); - - String requestEnd = - createSignatureInfoEnd()+ - supp.getSupplement()+ - createRequestShortEnd(false); - - String request = - makeOutputFile( - createRequestStart(testNumber+" - Supplement/Content/XMLContent does not match to the signature",true,0), - cpkcs.returnSig(), - requestEnd); -*/ -// request = replaceString(request,"",""); - - writeFile(vxReqFile(testNumber),"N.A."); - writeFile(vxResErrFile(testNumber),"0000"); - } - - - -public void create251() throws Exception - { String testNumber = "251"; - - String filepath = configuration_.getProperty("webbaseDir")+"resources/"; - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - cpkcs.createEnvelopedDataObject(etsiPropertyName, - ets.getQualProp()); - - cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "'))/*/*"), - etsiURI); - - cpkcs.setKeyInformation(); - - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - - smcp.addTransformsProfileID("InvalidTransformsProfile"); - - String request = - makeOutputFile( - createRequestStart("251 - VerifyTransformsInfoID: invalidID",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"2268"); - } - - - public void create252() throws Exception - { String testNumber = "252"; - - String filepath = configuration_.getProperty("webbaseDir")+"resources/"; - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - //Reference 1 - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - //ets.addDataObjectFormat("#reference-2"); - cpkcs.createEnvelopedDataObject( - etsiPropertyName,ets.getQualProp()); - - cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "')/*/*)"),etsiURI); - cpkcs.setKeyInformation(); - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); - smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename)); - - SignatureManifestCheckParams smcp2 = new SignatureManifestCheckParams(null); - for (int trNr=0; trNr < tr.length; trNr++) - smcp2.addDisgTransform(tr[trNr].toElement(smcp2.getDoc())); - smcp2.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); - smcp2.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename)); - - String signManiDoc = replaceString(smcp.returnDoc(),"","") + - replaceString(smcp2.returnDoc(),"",""); - - String request = - makeOutputFile( - createRequestStart("252 number of ReferenceInfo is different from number of dsig:Reference in the signature",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + signManiDoc - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"2271"); - } - -public void create252_2() throws Exception - { String testNumber = "252_2"; - - String filepath = configuration_.getProperty("webbaseDir")+"resources/"; - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - //Reference 1 - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-2"); - - - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - ets.addDataObjectFormat("#reference-2"); - cpkcs.createEnvelopedDataObject( - etsiPropertyName,ets.getQualProp()); - - cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "')/*/*)"),etsiURI); - cpkcs.setKeyInformation(); - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); - smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename)); - - String request = - makeOutputFile( - createRequestStart("252_2 number of References id bigger then number of ReferenceInfos",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"2271"); - } - -public void create253() throws Exception - { String testNumber = "253"; - - String filepath = configuration_.getProperty("webbaseDir")+"resources/"; - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - cpkcs.createEnvelopedDataObject(etsiPropertyName, - ets.getQualProp()); - - cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "'))/*/*"), - etsiURI); - - cpkcs.setKeyInformation(); - - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); - smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename)); - - String request = - makeOutputFile( - createRequestStart("253 mismatching dsig:Transform/@Algorithm and dsig:Transform content",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - request = replaceString(request, - "http://www.w3.org/TR/1999/REC-xslt-19991116","MismatchingTransformAlgorithm"); - request = replaceString(request, - "http://www.w3.org/TR/1999/REC-xslt-19991116","http://www.w3.org/TR/1999/REC-xpath-19991116"); - request = replaceString(request,"MismatchingTransformAlgorithm", - "http://www.w3.org/TR/1999/REC-xslt-19991116"); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"2202"); - } -public void create254() throws Exception - { String testNumber = "254"; - - String filepath = configuration_.getProperty("webbaseDir")+"resources/"; - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - cpkcs.createEnvelopedDataObject(etsiPropertyName, ets.getQualProp()); - cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "'))/*/*"), etsiURI); - cpkcs.setKeyInformation(); - - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename); - smcp.addTransParaElement("Hash",getBase64Hash(configuration_.getProperty("webbaseDir")+"resources/" + filename)); - - String request = - makeOutputFile( - createRequestStart("254 - TransformParameter/@URI resolves but Hash does not match - which hashing algorithm?",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - request = replaceString(request,"", - "abcd"); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"2205"); - } - -public void create255() throws Exception - { String testNumber = "255"; - - String filepath = configuration_.getProperty("webbaseDir")+"resources/"; - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - cpkcs.createEnvelopedDataObject(etsiPropertyName, - ets.getQualProp()); - - cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "'))/*/*"), - etsiURI); - - cpkcs.setKeyInformation(); - - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - for (int trNr=0; trNr < tr.length; trNr++) - smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc())); - - String request = - makeOutputFile( - createRequestStart("255 kein TransformParameter element obwohl in Transforms URIs referenziert werden",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"2204"); - } - -public void create256() throws Exception - { String testNumber = "256"; - - String filepath = configuration_.getProperty("webbaseDir")+"resources/"; - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - cpkcs.createReferenceWithManifest( - new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename), - "Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest"); - - EtsiProperties ets = new EtsiProperties(); - ets.addDataObjectFormat("#reference-1"); - cpkcs.createEnvelopedDataObject(etsiPropertyName, - ets.getQualProp()); - - cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "'))/*/*"), - etsiURI); - - cpkcs.setKeyInformation(); - - SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true"); - - smcp.addTransformsProfileID("TransformsInfoProfile2"); - - String request = - makeOutputFile( - createRequestStart("256 1 VerifyTransformsInfoID ==> Passt aber nicht zur Transformation (XSLT <==> Canonisiserung)",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() + smcp.returnDoc() - + createRequestShortEnd(false)); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResErrFile(testNumber),"2204"); - } - -public void create351() throws Exception { - - String testNumber = "351"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - cpkcs.setKeyInformation(); - String request = - makeOutputFile( createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - request = replaceString( request, - "http://www.w3.org/TR/2001/REC-xml-c14n-20010315", - "http://www.w3.org/TR/2001/unknownCanonicalzationMethod"); - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"2240"); - } - - -public void create352() throws Exception { - - String testNumber = "352"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - cpkcs.setKeyInformation(); - String request = - makeOutputFile( createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - request = replaceString( request, - "http://www.w3.org/2000/09/xmldsig#rsa-sha1", - "http://www.w3.org/TR/2001/unknownSignatureMethod"); - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"2240"); - } -public void create353()throws Exception { - - String testNumber = "353"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,"#xpointer(id('envelopedData'))"); - cpkcs.createEnvelopedDataObject("envelopedData",readFileCR(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt")); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = - replaceString( - request, - "#xpointer(id('envelopedData'))", - "#xpointer(id('unknownURITarget'))"); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResErrFile(testNumber),"2264"); - } - public void create354() throws Exception { - - String testNumber = "354"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - cpkcs.setKeyInformation(); - String request = - makeOutputFile( createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - request = replaceString( request, - "http://www.w3.org/2000/09/xmldsig#sha1", - "http://www.w3.org/TR/2001/unknownDigestMethod"); - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"2240"); - } - public void create355() throws Exception { - - String testNumber = "355"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt")); - cpkcs.setKeyInformation(); - String request = - makeOutputFile( createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - request = replaceString( request, - "", - "WrongData and the original:"); - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"0000"); - } - public void create356() throws Exception { - - String testNumber = "356"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - //Erzeugen der Base64-Daten -// String tmp = readBinaryFileAsBase64(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - - URI target = new URI(configuration_.getProperty("webbaseDir")+"resources/testDaten.txtbase64.enc"); - - Transform[] tr = new Transform[1]; - tr[0] = new TransformImplBase64Decode(); - InputStream s = getHttpInputStream(target.toString()); - tr[0].setInput(s,null); - - cpkcs.createReferenceWithTransforms(target,tr); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - request = replaceString( request, - "http://www.w3.org/2000/09/xmldsig#base64", - "http://www.w3.org/TR/2001/unknownTransformsMethod"); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResErrFile(testNumber),"2240"); - } - public void create357() throws Exception { - - String testNumber = "357"; - - String filepath = configuration_.getProperty("webbaseDir")+"resources/"; - String filename = "CX1_book.xsl"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init("signature"); - cpkcs.setCanoncialization(canAlgCanXML); - - Transform[] tr = new Transform[1]; - TransformImplXSLT trans = new TransformImplXSLT(); - InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl"); - trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl")); - tr[0] = trans; - cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1"); - - cpkcs.setKeyInformation(); - - - String request = - makeOutputFile( - createRequestStart("357 nicht zu Reference/Transforms/Transform/@Algorithm passender Inha",true,0), - cpkcs.returnSig(), - createSignatureInfoEnd() - + createRequestShortEnd(false)); - - request = replaceString(request, "http://www.w3.org/TR/1999/REC-xslt-19991116", - "http://www.w3.org/TR/1999/REC-xpath-19991116"); - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResErrFile(testNumber),"2240"); - } - - public void create358() throws Exception { - - String testNumber = "358"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - //cpkcs.createReference(true,"Dies sind testdaten"); - - URI target = new URI(configuration_.getProperty("webbaseDir")+"resources/testDaten.txtBase64.enc"); - - // cpkcs.createEnvelopedDataObject("envelopedData",readBinaryFileAsBase64(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt")); - - Transform[] tr = new Transform[1]; - tr[0] = new TransformImplBase64Decode(); - InputStream s = getHttpInputStream(target.toString()); - tr[0].setInput(s,null); - - cpkcs.createReferenceWithTransforms(target,tr); - //cpkcs.createReference(false, "file:/"+ configuration_.getProperty("webbaseDir")+"resources/test_wo_canonicalisation.XML"); - //cpkcs.createReference(false, "file:/"+ configuration_.getProperty("webbaseDir")+"resources/test_w_canonicalisation.XML"); -// cpkcs.createReferenceWithManifest(new URI("file:/"+ configuration_.getProperty("webbaseDir")+"resources/test_w_canonicalisation.XML"),"canonicalizedData"); - - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = replaceString(request, - "","abcd"); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResErrFile(testNumber),"2240"); - } - - public void create359() throws Exception { - - String testNumber = "359"; - - URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml"); - URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data"); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir") + "resources/testDaten.txt")); - cpkcs.setKeyInformation(false, fileURI, typeURI, null); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = replaceString(request,"",""); - request = replaceString(request,"",""); - request = replaceString(request,"",""); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResErrFile(testNumber),"2243"); - } - public void create360() throws Exception { - - String testNumber = "360"; - - URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml"); - URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data"); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir") + "resources/testDaten.txt")); - cpkcs.setKeyInformation(false, fileURI, typeURI, null); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = replaceString(request,"", - "Some kind of Subject"); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResErrFile(testNumber),"2240"); - } - - public void create360_2() throws Exception { - - String testNumber = "360_2"; - - URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml"); - URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data"); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir") + "resources/testDaten.txt")); - cpkcs.setKeyInformation(false, fileURI, typeURI, null); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = replaceString(request,"", - "Some kind of string as KeyName"); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResErrFile(testNumber),"2240"); - } - - public void create361() throws Exception { - - String testNumber = "361"; - - URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml"); - URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data"); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir") + "resources/testDaten.txt")); - cpkcs.setKeyInformation(false, fileURI, typeURI, null); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = replaceString(request,"", - " \n"+ - " "+ - readFileCR(configuration_.getProperty("webbaseDir") + "resources/tests.cer.b64") + - "\n"+ - " \n"); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResErrFile(testNumber),"2243"); - } - - public void create362() throws Exception { - - String testNumber = "362"; - - URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml"); - URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data"); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir") + "resources/testDaten.txt")); - cpkcs.setKeyInformation(false, fileURI, typeURI, null); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = replaceString(request,"", - " \n"+ - " "+ - readFileCR(configuration_.getProperty("webbaseDir")+"resources/testDaten.txtbase64.enc") + - "\n"+ - " \n"); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResErrFile(testNumber),"2240"); - } - public void create363() throws Exception { - - String testNumber = "363"; - - URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml"); - URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data"); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir") + "resources/testDaten.txt")); - cpkcs.setKeyInformation(false, fileURI, typeURI, null); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = replaceString(request,"", - " \n"+ - " "+ - "( no BASE64 data )" + - "\n"+ - " \n"); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResErrFile(testNumber),"1100"); - } - - public void create364() throws Exception { - - String testNumber = "364"; - - URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml"); - URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data"); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir") + "resources/testDaten.txt")); - cpkcs.setKeyInformation(false, fileURI, typeURI, null); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = replaceString(request, - "http://www.w3.org/2000/09/xmldsig#X509Data", - "http://www.w3.org/2000/09/noValidRetrievalMethodType"); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResErrFile(testNumber),"2240"); - } - public void create365() throws Exception { - - String testNumber = "365"; - - URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml"); - URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data"); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir") + "resources/testDaten.txt")); - cpkcs.setKeyInformation(false, fileURI, typeURI, null); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = replaceString(request, - configuration_.getProperty("webbaseDir") + "resources/X509Data.xml", - configuration_.getProperty("webbaseDir") + "resources/test-ee2003_normal.der"); - - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResErrFile(testNumber),"2240"); - } - - public void create366() throws Exception { - - String testNumber = "366"; - - URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/test-ee2003_normal.der"); - URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#rawX509Certificate"); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - - //DER-encoded RAW-Zertifikat zu Binary64 konvertieren - // String tmp = readBinaryFileAsBase64(fileURI.getPath()); - //dsig:Object mit den Binary64-Daten erzeugen (==> CRs weglassen!!!!!) - cpkcs.createEnvelopedDataObject("rawCertAsBase64",readFileCR(fileURI.toString()+"base64.enc")); - - //Neue Transformation erzeugen, um die Base64-Daten zurückzuwandeln - Transform[] tr = new Transform[1]; - tr[0] = new TransformImplBase64Decode(); - InputStream s = getHttpInputStream(fileURI.toString()+ "base64.enc"); - tr[0].setInput(s,null); - - //Neues KeyInfo-Objekt erzeugen, wobei nicht die Zertifikate sondern - //nur eine RetrievalMethod angegeben wird, die auf das oben erzeugte Base64-dsig:Object verweist - cpkcs.setKeyInformation(true, new URI("#xpointer(id('rawCertAsBase64')/node())") , typeURI, tr); - - String request = makeOutputFile( createRequestStart(testNumber,true,0), cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = replaceString(request, "http://www.w3.org/2000/09/xmldsig#base64", - "http://Invalid.URI.com"); - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResErrFile(testNumber),"2240"); - } - public void create367() throws Exception { - - String testNumber = "367"; - - URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/test-ee2003_normal.der"); - URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#rawX509Certificate"); - - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - - cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); - - //DER-encoded RAW-Zertifikat zu Binary64 konvertieren - // String tmp = readBinaryFileAsBase64(fileURI.getPath()); - //dsig:Object mit den Binary64-Daten erzeugen (==> CRs weglassen!!!!!) - cpkcs.createEnvelopedDataObject("rawCertAsBase64",readFileCR(fileURI.toString()+"base64.enc")); - - //Neue Transformation erzeugen, um die Base64-Daten zurückzuwandeln - Transform[] tr = new Transform[1]; - tr[0] = new TransformImplBase64Decode(); - InputStream s = getHttpInputStream(fileURI.toString()+ "base64.enc"); - tr[0].setInput(s,null); - - //Neues KeyInfo-Objekt erzeugen, wobei nicht die Zertifikate sondern - //nur eine RetrievalMethod angegeben wird, die auf das oben erzeugte Base64-dsig:Object verweist - cpkcs.setKeyInformation(true, new URI("#xpointer(id('rawCertAsBase64')/node())") , typeURI, tr); - - String request = makeOutputFile( createRequestStart(testNumber,true,0), cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = replaceString(request, "http://www.w3.org/2000/09/xmldsig#rawX509Certificate", - "http://www.w3.org/2000/09/xmldsig#X509Data"); - writeFile(vxReqFile(testNumber),request); - - writeFile(vxResErrFile(testNumber),"2240"); - } - - public void create368() throws Exception { - String testNumber = "368"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - URI fileURI1 = new URI(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - cpkcs.createReferenceWithManifest(fileURI1,"manifestObject"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = replaceString(request, "http://www.w3.org/2000/09/xmldsig#Manifest", - "http://No.valid_manifest_URI.com"); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"2240"); - } - - public void create369() throws Exception { - String testNumber = "369"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - URI fileURI1 = new URI(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - cpkcs.createReferenceWithManifest(fileURI1,"manifestObject"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - request = replaceString(request, "#xpointer(id('manifestObject'))", - "#xpointer(id('NoValidManifestObject'))"); - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"2262"); - } - public void create370() throws Exception { - String testNumber = "370"; - - CreatePKCSSignature cpkcs = new CreatePKCSSignature(); - cpkcs.init(); - cpkcs.setCanoncialization(canAlgCanXML); - URI fileURI1 = new URI(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"); - cpkcs.createReferenceWithManifest(fileURI1,"manifestObject"); - cpkcs.setKeyInformation(); - - String request = - makeOutputFile( - createRequestStart(testNumber,true,0), - cpkcs.returnSig(), - createRequestEnd(true,false,null)); - - //Hier wird der DigestAlg vom Reference-Objekt im SignedInfo verändert - request = replaceString(request, - "http://www.w3.org/2000/09/xmldsig#sha1", - "noValidDigestAlg"); - //Hier wird der DigestAlg vom Reference-Objekt im Manifset verändert - request = replaceString(request, - "http://www.w3.org/2000/09/xmldsig#sha1", - "noValidDigestAlg"); - //Hier wird der DigestAlg vom Reference-Objekt im SignedInfo zurück geändert - request = replaceString(request, - "noValidDigestAlg", - "http://www.w3.org/2000/09/xmldsig#sha1"); - - - writeFile(vxReqFile(testNumber),request); - writeFile(vxResErrFile(testNumber),"2262"); } - - - /** - * Method makeOutputFile. - * @param start - * @param signatureDoc - * @param end - * @return String - * @throws Exception - */ - public String makeOutputFile( - String start, - Document signatureDoc, - String end) - throws Exception { - ArrayList foundNodes = new ArrayList(); - findNode( - signatureDoc.getDocumentElement(), - "dsig:Signature", - foundNodes); - - Node outputNode = null; - - if (foundNodes.size() > 0) { - outputNode = (Node) foundNodes.get(0); - } - - String erg = Node2String(outputNode); - - // remove the Prologue - int pos = erg.indexOf("" - + "\n" - + "\n"; - - if (useDate) { - reqStart += " " - + getDate(changeHours) - + "\n"; - } - - reqStart += " \n" - + " \n" - + " " ; - return reqStart; - } - - /** - * Method getTransformsResult:the input transforms array will - * be calculated to return a string-representation of the result - * @param tr - * @return String - * @throws Exception - */ - private String getTransformsResult(Transform[] tr) throws Exception - { - Transform[] myTransforms = tr; - String result = ""; - for (int t=0; t 0) - { - result += new String(b); - is.read(b); - } - result += new String(b); - - return result; - } - - - /** - * Method createRequestEnd. - * @param useReturnHashInputData - * @param useSupplement - * @param supplementReference - * @return String - * @throws Exception - */ - private String createRequestEnd( - boolean useReturnHashInputData, - boolean useSupplement, - String supplementReference) - throws Exception { - - String reqEnd = null; - -/* reqEnd = - "\n" - + " #xpointer(/VerifyXMLSignatureRequest/VerifySignatureInfo/VerifySignatureEnvironment/dsig:Signature)\n" - + " \n"; -*/ - reqEnd =""+ - "\n" - + " //dsig:Signature\n" - + " \n"; - - - - if (useSupplement) - { - reqEnd += " \n" + - " \n" + - " "+readFileCR(supplementReference.toString())+"\n" + - " \n" + - " \n"; - } - - if (useReturnHashInputData) { - reqEnd += " \n"; - } - reqEnd += " TrustProfile1\n" - + "\n"; - return reqEnd; - - } - - private String createSignatureInfoEnd() - throws Exception { - - return ""+"\n" - + " //dsig:Signature\n" - + " \n"; - - } - - private String createRequestShortEnd(boolean useReturnHashInputData) - throws Exception { - - String reqEnd = ""; - - if (useReturnHashInputData) - reqEnd = " \n"; - - reqEnd += " TrustProfile1\n" - + "\n"; - return reqEnd; - - } - /** - * Method createResponse. - * @param testNumber - * @param signatureCheckCode - * @return String - * @throws Exception - */ - private String createResponse(String testNumber, String signatureCheckCode) throws Exception { - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + " \n" - + " \n"; - res += " \n" + " "; - res += readFileCR( - configuration_.getProperty("webbaseDir") - + "resources/testDaten.txt")+ - ""; - - res += vxBean.getFooterSignatureCheck(signatureCheckCode, "0"); - - return res; - } - - private String createResponse(String testNumber, String signatureCheckCode, String hashData) throws Exception { - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + " \n" - + " \n"; - res += " \n" + - " "+ - hashData + - "\n"; - res += vxBean.getFooterSignatureCheck(signatureCheckCode, "0"); - - return res; - } - - - private String createResponseWithoutHashInputData(String testNumber, String signatureCheckCode) throws Exception { - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + " \n" - + " \n" - + " \n" + - " " + signatureCheckCode + "\n" + - " \n" + - " \n" + - " 0\n" + - " \n" + - ""; - - return res; - } -/* private String createResponseXMLDsigCheck(String testNumber, String xmlDSIGManifestCheckCode) throws Exception { - - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + " \n" - + " \n"; - res += " \n" + " "; - res += readFile( - configuration_.getProperty("webbaseDir") - + "resources/testDaten.txt"); - - res += vxBean.getFooterXMLDSIGManifestCheck(xmlDSIGManifestCheckCode,"0"); - - return res; - }*/ - - private String createResponsePart() throws Exception { - - // - vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der"); - - String res = null; - - res = vxBean.getHeader(); - res += vxBean.getSubjectDN(); - res += " \n"; - res += vxBean.getIssuerDN(); - res += vxBean.getSerialNumber(); - res += " \n" - + " \n" - + " \n"; - return res; - } - - public String readFileCR(String filename) throws Exception { - - /*StringBuffer data = new StringBuffer(); - String line = null; - BufferedReader br = new BufferedReader(new FileReader(filename)); - while ((line = br.readLine()) != null) { - data.append(line); - data.append("\n"); - } - */ - String response=""; - byte[] result; - - if (filename.substring(0,4).toLowerCase().equals("http")) - { - - URL targetUrl = new URL(filename); - HttpURLConnection h = (HttpURLConnection)targetUrl.openConnection(); - InputStream is = h.getInputStream(); - - int size = 0; - - result = new byte[h.getContentLength()]; - for (int i = 0; i < result.length; i++) { - byte[] b = new byte[1]; - is.read(b); - result[i]=b[0]; - } - is.close(); - } - else - { - RandomAccessFile raf = new RandomAccessFile(filename, "r"); - if (raf.length() > Integer.MAX_VALUE) - throw new IOException("file too big to fit in byte array."); - - result = new byte[(int) raf.length()]; - raf.read(result); - raf.close(); - - } - - byte[] temp = new byte[result.length]; - int s = 0; - for (int t=0; t",""); - } - catch (Exception e) {} - - return response; - } - -private InputStream getHttpInputStream(String url) throws Exception - { - URL targetUrl = new URL(url); - HttpURLConnection h = (HttpURLConnection)targetUrl.openConnection(); - return h.getInputStream(); - } - -public String vxResErrFile(String testNumber) - { - return configuration_.getProperty("baseDir") + - "/data/VX0/"+ - configuration_.getProperty("TestClass") + - "." + - testNumber + - ".ErrRes.xml"; - } -private String getBase64Hash(String filename) throws Exception - { - DigestAlgorithmImplSHA1 dig = new DigestAlgorithmImplSHA1(); - InputStream s = getHttpInputStream(filename); - - dig.setInput(s); - - InputStream erg = dig.digest(); - String result = ""; - - byte[] b = new byte[1]; - erg.read(b); - while (erg.available() > 0) - { - result += new String(b); - erg.read(b); - } - result += new String(b); - - ByteArrayOutputStream fos = new ByteArrayOutputStream(); - Base64OutputStream base64os = new Base64OutputStream(fos); - base64os.write(result.getBytes()); - base64os.flush(); - - return fos.toString(); - } -} diff --git a/spss.test/src/testgenerator/TestPKCS12.java b/spss.test/src/testgenerator/TestPKCS12.java deleted file mode 100644 index 97aa8acd0..000000000 --- a/spss.test/src/testgenerator/TestPKCS12.java +++ /dev/null @@ -1,107 +0,0 @@ - -package testgenerator; -import iaik.pkcs.pkcs12.CertificateBag; -import iaik.pkcs.pkcs12.KeyBag; -import iaik.pkcs.pkcs12.PKCS12; -import iaik.security.ecc.ecdsa.ECPrivateKey; -import iaik.security.ecc.ecdsa.ECPublicKey; -import iaik.security.ecc.math.ecgroup.ECPoint; - -import java.io.FileInputStream; - - -/** - * @author stephan - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class TestPKCS12 { - -/* - public static void main(String[] args) throws Exception { - -// String file = "C:/Daten/MOAPhase2/additionalFiles/keys/TestUser.p12"; -// String password = "testuser"; -// String file = "C:\\Certs\\grill(1234).p12"; -// String password = "1234"; - - // SL eCard Demo P12 Files - String file = "C:\\Daten\\MOAPhase2\\Keys\\sl2002mmdd.ecard.sicher(ego).p12"; - String password = "ego"; -// String file = "C:\\Daten\\MOAPhase2\\Keys\\sl2002mmdd.ecard.normal(ego).p12"; -// String password = "ego"; - - // SL Personalausweis Demo P12 Files -// String file = "C:\\Daten\\MOAPhase2\\Keys\\sicher-demo(buergerkarte).p12"; -// String password = "buergerkarte"; -// String file = "C:\\Daten\\MOAPhase2\\Keys\\normal().p12"; -// String password = ""; - - IAIK.addAsJDK14Provider(); - - FileInputStream pkcs12FIS = new FileInputStream(file); - PKCS12 pkcs12 = new PKCS12(pkcs12FIS); - if (!pkcs12.verify(password.toCharArray())) - { - System.out.println("could not PKCS12.verify file " + file + " with password " + password); - } else - { - System.out.println("could PKCS12.verify file " + file + " with password " + password); - } - - pkcs12.decrypt(password.toCharArray()); - System.out.println("could PKCS12.decrypt file " + file + " with password " + password); - - KeyBag[] keyBags = pkcs12.getKeyBags(); - System.out.println("PKCS12.getKeyBags(): " + keyBags.length + " KeyBags found"); - - RSAPrivateKey privKey = (RSAPrivateKey) keyBags[0].getPrivateKey(); - System.out.println("getFriendlyName(): " + keyBags[0].getFriendlyName() ); - - X509Certificate[] certBag = CertificateBag.getCertificates(pkcs12.getCertificateBags()); - System.out.println("PKCS12.getCertificates(): " + certBag.length + " certificates found"); - - System.out.println("certBag[0]: " + certBag[0]); - - } -*/ - - public static void main(String[] args) throws Exception { - // von Wolfgang Bauer - iaik.security.provider.IAIK.addAsProvider(); - iaik.security.ecc.provider.ECCProvider.addAsProvider(); - - final String FILENAME = "sl2002mmdd.ecard.sicher.p12"; - final char[] PASSWORD = "ego".toCharArray(); -// public final static String FILENAME = "sl2002mmdd.ecard.sicher.p12"; -// public final static char[] PASSWORD = "ego".toCharArray(); - - System.out.println("Checking"); - FileInputStream fis = new FileInputStream(FILENAME); - PKCS12 p12 = new PKCS12(fis); - p12.decrypt(PASSWORD); - CertificateBag[] cb = p12.getCertificateBags(); - - KeyBag kb = p12.getKeyBag(); - ECPrivateKey pk = (ECPrivateKey) kb.getPrivateKey(); - - ECPoint p = pk.getParameter().getG(); - p.multiply(pk.getS()); - - ECPoint p2 = ((ECPublicKey)cb[0].getCertificate().getPublicKey()).getW(); - if (p.equals(p2) ) { - System.out.println("Check OK"); - } else { - System.out.println("Nix wars"); - } - cb[0].getCertificate().verify(); - - } - - - -} - diff --git a/spss.test/src/testgenerator/VXResponseBean.java b/spss.test/src/testgenerator/VXResponseBean.java deleted file mode 100644 index bbdf02bbc..000000000 --- a/spss.test/src/testgenerator/VXResponseBean.java +++ /dev/null @@ -1,180 +0,0 @@ - -package testgenerator; -import java.io.*; -import java.net.HttpURLConnection; -import java.net.URL; - -import iaik.asn1.structures.Name; -import iaik.x509.X509Certificate; - -/** - * @author KNIRSCHS - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class VXResponseBean { - - private X509Certificate cert = null; - - /** - * Constructor for VXResponseBean. - */ - public String getHeader() { - - String result = - "\n" + - "\n" + - " \n" + - " \n"; - - return result; - } - - public void init(String Filename) throws Exception { - if (cert == null) { - InputStream cfile = getHttpInputStream(Filename); - cert = new iaik.x509.X509Certificate(cfile); - } - } - public String getCert() throws Exception { - return " " - + (cert) - + "\n"; - - } - - - public String getSubjectDN() throws Exception { - return " " - + ((Name) cert.getSubjectDN()).getRFC2253String() - + "\n"; - } - public String getIssuerDN() throws Exception { - - return " " + - ((Name)cert.getIssuerDN()).getRFC2253String() + - "\n"; - } - - public String getSerialNumber() throws Exception { - - return " " + - cert.getSerialNumber() + - "\n"; - } - - public String getFooterSignatureCheck(String signatureCheckCode, String certificateCheckCode) - { - String res = null; - res = " \n" + - " \n" + - " " + signatureCheckCode + "\n" + - " \n" + - " \n" + - " "+certificateCheckCode+"\n" + - " \n" + - ""; - - return res; - - } - public String getFooterXMLDSIGManifestCheck(String xmlDSIGManifestCheckCode , String certificateCheckCode) - { - String res = null; -/* res = "\n" + - " \n" + - " \n" + - " " + xmlDSIGManifestCheckCode + "\n" + - " \n" + - " \n" + - " "+certificateCheckCode+"\n" + - " \n" + - ""; -*/ - res = " \n" + - " " + xmlDSIGManifestCheckCode + "\n" + - " \n" + - " \n" + - " "+certificateCheckCode+"\n" + - " \n" + - ""; - - return res; - - } -public String createXMLDSIGManifestCheck(String xmlDSIGManifestCheckCode, String failedReference, String referringSigRefData) - { - - if(failedReference != null && !failedReference.trim().equals("")) - { - String res = null; - res = " \n" + - " " + xmlDSIGManifestCheckCode + "\n" + - " " + failedReference + - "" + referringSigRefData + "" + - " \n" + - " \n"; - - return res; - } - else - { - String res = null; - res = " \n" + - " " + xmlDSIGManifestCheckCode + "\n" + - " " + failedReference + - " " + referringSigRefData + "" + - " \n" + - " \n"; - - return res; - } - - } - -public String createSignatureCheck(String signatureCheckCode) - { - String res = null; - res = " \n" + - " " + signatureCheckCode + "\n" + - " \n"; - return res; - - } -public String createSignatureManifestCheck(String signatureCheckCode) - { - String res = null; - res = " \n" + - " " + signatureCheckCode + "\n" + - " \n"; - return res; - - } - -public String createSignatureManifestCheck(String signatureCheckCode,String info) - { - String res = null; - res = " \n" + - " " + signatureCheckCode + "\n" + info + - " \n"; - return res; - - } -public String createCertificateCheck(String certificateCheckCode) - { - String res = null; - res = " \n" + - " "+certificateCheckCode+"\n" + - " \n"; - return res; - } -private InputStream getHttpInputStream(String url) throws Exception - { - - return ((HttpURLConnection)new URL(url).openConnection()).getInputStream(); - } - -} -- cgit v1.2.3