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