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