package testgenerator;
import iaik.ixsil.algorithms.DigestAlgorithmImplSHA1;
import iaik.ixsil.algorithms.Transform;
import iaik.ixsil.algorithms.TransformImplBase64Decode;
import iaik.ixsil.algorithms.TransformImplXSLT;
import iaik.ixsil.util.URI;
import iaik.utils.Base64OutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
/**
* @author stephan
*/
public class TestGeneratorVXErrors extends TestCases {
private static final int canAlgCanXML = 1;
private static final int canAlgCanXMLwithCom = 2;
private static final int canAlgExcXML = 3;
private static final int canAlgExcXMLwithCom = 4;
private static VXResponseBean vxBean = null;
private static String etsiPropertyName = "ETSIProperties";
private static URI etsiURI;
public static void main(String[] args) throws Exception {
etsiURI = new URI("http://uri.etsi.org/01903/v1.1.1#SignedProperties");
vxBean = new VXResponseBean();
TestGeneratorVXErrors testcase = new TestGeneratorVXErrors();
testcase.createVXConfig();
//testcase.create051();
testcase.create052();
testcase.create053();
testcase.create054();
testcase.create055();
testcase.create151();
//testcase.create152();
testcase.create153();
testcase.create154();
//N.A.: testcase.create155();
testcase.create251();
//testcase.create252();
//testcase.create252_2();
testcase.create253();
//testcase.create254();
//testcase.create255();
//testcase.create256();
testcase.create351();
testcase.create352();
//testcase.create353();
testcase.create354();
//testcase.create355();
testcase.create356();
testcase.create357();
//testcase.create358();
testcase.create359();
testcase.create360();
testcase.create360_2();
//testcase.create361();
testcase.create362();
testcase.create363();
testcase.create364();
testcase.create365();
testcase.create366();
testcase.create367();
//testcase.create368();
testcase.create369();
testcase.create370();
}
/* ==================================================================================================== */
public TestGeneratorVXErrors() throws Exception {
super();
// Set config properties
configuration_.setProperty("TestClass", "TestGeneratorVX");
// configuration_.setProperty("privateKeyFile", baseDir + "additionalFiles/keys/RSAPrivateKey.der");
// configuration_.setProperty("publicKeyFile", baseDir + "additionalFiles/keys/RSAPublicKey.der");
// configuration_.setProperty("signatureFile", baseDir + "additionalFiles/signatures/Signature.unit1.xml");
iaik.security.provider.IAIK.addAsProvider();
iaik.security.ecc.provider.ECCProvider.addAsProvider();
}
/* ==================================================================================================== */
public void create051() throws Exception {
String testNumber = "051";
//Create a Request with number 051, Time in the future (+24 hours)
// and with the Date and ReturnHashInputDate Elements present
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
//cpkcs.createReference(true,"Dies sind testdaten");
cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
cpkcs.setKeyInformation();
String request =
makeOutputFile(
createRequestStart(testNumber,true,24),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"0000");
}
/**
* Method create052.
* @throws Exception
*/
public void create052() throws Exception {
String testNumber = "052";
//Create a Request with number 052, with current Time (+0 hours)
// and with the Date and ReturnHashInputDate Elements present
// BUT there is in invalid Element to crash validation against XMLDsig
// is replaces by
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
//cpkcs.createReference(true,"Dies sind testdaten");
cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
cpkcs.setKeyInformation();
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request =
replaceString(
request,
"",
"");
request =
replaceString(
request,
"",
"");
writeFile(vxReqFile(testNumber), request);
writeFile(vxResErrFile(testNumber),"1100");
}
/**
* Method create053.
* @throws Exception
*/
public void create053() throws Exception {
String testNumber = "053";
//Create a Request with number 053, with current Time (+0 hours)
// and with the Date and ReturnHashInputDate Elements present
// BUT with an invalid XPath expression
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
//cpkcs.createReference(true,"Dies sind testdaten");
cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
cpkcs.setKeyInformation();
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request =
replaceString(
request,
"//dsig:Signature",
"//invalid XPath Expression");
writeFile(vxReqFile(testNumber), request);
writeFile(vxResErrFile(testNumber),"2212");
}
/**
* Method create054.
* @throws Exception
*/
public void create054() throws Exception {
String testNumber = "054";
//Create a Request with number 053, with current Time (+0 hours)
// and with the Date and ReturnHashInputDate Elements present
// BUT with an valid XPath expression not referencing a valid element
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
//cpkcs.createReference(true,"Dies sind testdaten");
cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
cpkcs.setKeyInformation();
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request =
replaceString(request, "//dsig:Signature", "//dsig:NoValidElement");
writeFile(vxReqFile(testNumber), request);
writeFile(vxResErrFile(testNumber),"2212");
}
public void create055() throws Exception {
String testNumber = "055";
//Create a Request with number 001, the current Time (+0 hours)
// and with the Date and ReturnHashInputDate Elements present
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
//cpkcs.createReference(true,"Dies sind testdaten");
cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
cpkcs.setKeyInformation();
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request =
replaceString(request,
"TrustProfile1", "InvalidProfile");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2203");
// writeFile(vxResFile(testNumber), createResponse(testNumber,"0"));
}
public void create151() throws Exception {
String testNumber = "151";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
//cpkcs.createReference(true,"Dies sind testdaten");
cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
cpkcs.setKeyInformation();
String requestEnd = createSignatureInfoEnd()+
createRequestShortEnd(false);
String request =
makeOutputFile(
createRequestStart(testNumber + " an URI referenced in dsig:Signature does not resolve and no SupplementProfile is available",true,0),
cpkcs.returnSig(),
requestEnd);
request = replaceString(request, configuration_.getProperty("webbaseDir")+"resources/testDaten.txt","http://no.uritoresolve.com" );
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2264");
}
public void create152() throws Exception {
String testNumber = "152";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
//cpkcs.createReference(true,"Dies sind testdaten");
cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
cpkcs.setKeyInformation();
Supplement supp = new Supplement();
supp.addMetaInfo("text/plain","http://www.buergerkarte.at");
supp.addBase64Content(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt",
readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/testDaten.txt"));
supp.closeSupplement();
//supp.addProfileID("Some ID");
String requestEnd = createSignatureInfoEnd()+
supp.getSupplement() + createRequestShortEnd(false);
String request =
makeOutputFile(
createRequestStart(testNumber + "- MimeType",true,0),
cpkcs.returnSig(),
requestEnd);
request = replaceString(request, "text/plain","no valid MIME-Type" );
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"1100");
}
public void create153() throws Exception {
String testNumber = "153";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
//cpkcs.createReference(true,"Dies sind testdaten");
cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
cpkcs.setKeyInformation();
String requestEnd =
createSignatureInfoEnd()+
"NO VALID SUPPLEMENT PROFILE ID" +
createRequestShortEnd(false);
String request =
makeOutputFile(
createRequestStart(testNumber + " - invalid SupplementProfileID",true,0),
cpkcs.returnSig(),
requestEnd);
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2267");
}
public void create154() throws Exception {
String testNumber = "154";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
//cpkcs.createReference(true,"Dies sind testdaten");
cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
cpkcs.setKeyInformation();
Supplement supp = new Supplement();
supp.addMetaInfo("text/plain","http://www.buergerkarte.at");
supp.addBase64Content(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt",
readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/testDaten.txt"));
supp.closeSupplement();
//supp.addProfileID("Some ID");
String requestEnd = createSignatureInfoEnd()+
supp.getSupplement() + createRequestShortEnd(false);
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
requestEnd);
request = replaceString(request,"","AAAAAAAAAAAAAAAAAA");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"1100");
}
public void create155() throws Exception {
String testNumber = "155";
/* CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
//cpkcs.createReference(true,"Dies sind testdaten");
cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
cpkcs.setKeyInformation();
Supplement supp = new Supplement();
supp.addXMLContent(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt", readFileCR(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"));
supp.closeSupplement();
String requestEnd =
createSignatureInfoEnd()+
supp.getSupplement()+
createRequestShortEnd(false);
String request =
makeOutputFile(
createRequestStart(testNumber+" - Supplement/Content/XMLContent does not match to the signature",true,0),
cpkcs.returnSig(),
requestEnd);
*/
// request = replaceString(request,"","");
writeFile(vxReqFile(testNumber),"N.A.");
writeFile(vxResErrFile(testNumber),"0000");
}
public void create251() throws Exception
{ String testNumber = "251";
String filepath = configuration_.getProperty("webbaseDir")+"resources/";
String filename = "CX1_book.xsl";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init("signature");
cpkcs.setCanoncialization(canAlgCanXML);
Transform[] tr = new Transform[1];
TransformImplXSLT trans = new TransformImplXSLT();
InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl");
trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl"));
tr[0] = trans;
cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1");
cpkcs.createReferenceWithManifest(
new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename),
"Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest");
EtsiProperties ets = new EtsiProperties();
ets.addDataObjectFormat("#reference-1");
cpkcs.createEnvelopedDataObject(etsiPropertyName,
ets.getQualProp());
cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "'))/*/*"),
etsiURI);
cpkcs.setKeyInformation();
SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true");
smcp.addTransformsProfileID("InvalidTransformsProfile");
String request =
makeOutputFile(
createRequestStart("251 - VerifyTransformsInfoID: invalidID",true,0),
cpkcs.returnSig(),
createSignatureInfoEnd() + smcp.returnDoc()
+ createRequestShortEnd(false));
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2268");
}
public void create252() throws Exception
{ String testNumber = "252";
String filepath = configuration_.getProperty("webbaseDir")+"resources/";
String filename = "CX1_book.xsl";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init("signature");
cpkcs.setCanoncialization(canAlgCanXML);
Transform[] tr = new Transform[1];
TransformImplXSLT trans = new TransformImplXSLT();
InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl");
trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl"));
tr[0] = trans;
//Reference 1
cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1");
cpkcs.createReferenceWithManifest(
new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename),
"Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest");
EtsiProperties ets = new EtsiProperties();
ets.addDataObjectFormat("#reference-1");
//ets.addDataObjectFormat("#reference-2");
cpkcs.createEnvelopedDataObject(
etsiPropertyName,ets.getQualProp());
cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "')/*/*)"),etsiURI);
cpkcs.setKeyInformation();
SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true");
for (int trNr=0; trNr < tr.length; trNr++)
smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc()));
smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename);
smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename));
SignatureManifestCheckParams smcp2 = new SignatureManifestCheckParams(null);
for (int trNr=0; trNr < tr.length; trNr++)
smcp2.addDisgTransform(tr[trNr].toElement(smcp2.getDoc()));
smcp2.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename);
smcp2.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename));
String signManiDoc = replaceString(smcp.returnDoc(),"","") +
replaceString(smcp2.returnDoc(),"","");
String request =
makeOutputFile(
createRequestStart("252 number of ReferenceInfo is different from number of dsig:Reference in the signature",true,0),
cpkcs.returnSig(),
createSignatureInfoEnd() + signManiDoc
+ createRequestShortEnd(false));
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2271");
}
public void create252_2() throws Exception
{ String testNumber = "252_2";
String filepath = configuration_.getProperty("webbaseDir")+"resources/";
String filename = "CX1_book.xsl";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init("signature");
cpkcs.setCanoncialization(canAlgCanXML);
Transform[] tr = new Transform[1];
TransformImplXSLT trans = new TransformImplXSLT();
InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl");
trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl"));
tr[0] = trans;
//Reference 1
cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1");
cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-2");
cpkcs.createReferenceWithManifest(
new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename),
"Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest");
EtsiProperties ets = new EtsiProperties();
ets.addDataObjectFormat("#reference-1");
ets.addDataObjectFormat("#reference-2");
cpkcs.createEnvelopedDataObject(
etsiPropertyName,ets.getQualProp());
cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "')/*/*)"),etsiURI);
cpkcs.setKeyInformation();
SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true");
for (int trNr=0; trNr < tr.length; trNr++)
smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc()));
smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename);
smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename));
String request =
makeOutputFile(
createRequestStart("252_2 number of References id bigger then number of ReferenceInfos",true,0),
cpkcs.returnSig(),
createSignatureInfoEnd() + smcp.returnDoc()
+ createRequestShortEnd(false));
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2271");
}
public void create253() throws Exception
{ String testNumber = "253";
String filepath = configuration_.getProperty("webbaseDir")+"resources/";
String filename = "CX1_book.xsl";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init("signature");
cpkcs.setCanoncialization(canAlgCanXML);
Transform[] tr = new Transform[1];
TransformImplXSLT trans = new TransformImplXSLT();
InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl");
trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl"));
tr[0] = trans;
cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1");
cpkcs.createReferenceWithManifest(
new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename),
"Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest");
EtsiProperties ets = new EtsiProperties();
ets.addDataObjectFormat("#reference-1");
cpkcs.createEnvelopedDataObject(etsiPropertyName,
ets.getQualProp());
cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "'))/*/*"),
etsiURI);
cpkcs.setKeyInformation();
SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true");
for (int trNr=0; trNr < tr.length; trNr++)
smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc()));
smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename);
smcp.addTransParaElement("Base64Content",readBinaryFileAsBase64_new(configuration_.getProperty("baseDir")+"resources/"+ filename));
String request =
makeOutputFile(
createRequestStart("253 mismatching dsig:Transform/@Algorithm and dsig:Transform content",true,0),
cpkcs.returnSig(),
createSignatureInfoEnd() + smcp.returnDoc()
+ createRequestShortEnd(false));
request = replaceString(request,
"http://www.w3.org/TR/1999/REC-xslt-19991116","MismatchingTransformAlgorithm");
request = replaceString(request,
"http://www.w3.org/TR/1999/REC-xslt-19991116","http://www.w3.org/TR/1999/REC-xpath-19991116");
request = replaceString(request,"MismatchingTransformAlgorithm",
"http://www.w3.org/TR/1999/REC-xslt-19991116");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2202");
}
public void create254() throws Exception
{ String testNumber = "254";
String filepath = configuration_.getProperty("webbaseDir")+"resources/";
String filename = "CX1_book.xsl";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init("signature");
cpkcs.setCanoncialization(canAlgCanXML);
Transform[] tr = new Transform[1];
TransformImplXSLT trans = new TransformImplXSLT();
InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl");
trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl"));
tr[0] = trans;
cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1");
cpkcs.createReferenceWithManifest(
new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename),
"Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest");
EtsiProperties ets = new EtsiProperties();
ets.addDataObjectFormat("#reference-1");
cpkcs.createEnvelopedDataObject(etsiPropertyName, ets.getQualProp());
cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "'))/*/*"), etsiURI);
cpkcs.setKeyInformation();
SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true");
for (int trNr=0; trNr < tr.length; trNr++)
smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc()));
smcp.addTransPara("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/"+ filename);
smcp.addTransParaElement("Hash",getBase64Hash(configuration_.getProperty("webbaseDir")+"resources/" + filename));
String request =
makeOutputFile(
createRequestStart("254 - TransformParameter/@URI resolves but Hash does not match - which hashing algorithm?",true,0),
cpkcs.returnSig(),
createSignatureInfoEnd() + smcp.returnDoc()
+ createRequestShortEnd(false));
request = replaceString(request,"",
"abcd");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2205");
}
public void create255() throws Exception
{ String testNumber = "255";
String filepath = configuration_.getProperty("webbaseDir")+"resources/";
String filename = "CX1_book.xsl";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init("signature");
cpkcs.setCanoncialization(canAlgCanXML);
Transform[] tr = new Transform[1];
TransformImplXSLT trans = new TransformImplXSLT();
InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl");
trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl"));
tr[0] = trans;
cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1");
cpkcs.createReferenceWithManifest(
new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename),
"Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest");
EtsiProperties ets = new EtsiProperties();
ets.addDataObjectFormat("#reference-1");
cpkcs.createEnvelopedDataObject(etsiPropertyName,
ets.getQualProp());
cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "'))/*/*"),
etsiURI);
cpkcs.setKeyInformation();
SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true");
for (int trNr=0; trNr < tr.length; trNr++)
smcp.addDisgTransform(tr[trNr].toElement(smcp.getDoc()));
String request =
makeOutputFile(
createRequestStart("255 kein TransformParameter element obwohl in Transforms URIs referenziert werden",true,0),
cpkcs.returnSig(),
createSignatureInfoEnd() + smcp.returnDoc()
+ createRequestShortEnd(false));
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2204");
}
public void create256() throws Exception
{ String testNumber = "256";
String filepath = configuration_.getProperty("webbaseDir")+"resources/";
String filename = "CX1_book.xsl";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init("signature");
cpkcs.setCanoncialization(canAlgCanXML);
Transform[] tr = new Transform[1];
TransformImplXSLT trans = new TransformImplXSLT();
InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl");
trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl"));
tr[0] = trans;
cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1");
cpkcs.createReferenceWithManifest(
new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/" + filename),
"Manifest","http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest");
EtsiProperties ets = new EtsiProperties();
ets.addDataObjectFormat("#reference-1");
cpkcs.createEnvelopedDataObject(etsiPropertyName,
ets.getQualProp());
cpkcs.createReference(new URI("#xpointer(id('" + etsiPropertyName + "'))/*/*"),
etsiURI);
cpkcs.setKeyInformation();
SignatureManifestCheckParams smcp = new SignatureManifestCheckParams("true");
smcp.addTransformsProfileID("TransformsInfoProfile2");
String request =
makeOutputFile(
createRequestStart("256 1 VerifyTransformsInfoID ==> Passt aber nicht zur Transformation (XSLT <==> Canonisiserung)",true,0),
cpkcs.returnSig(),
createSignatureInfoEnd() + smcp.returnDoc()
+ createRequestShortEnd(false));
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2204");
}
public void create351() throws Exception {
String testNumber = "351";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
cpkcs.setKeyInformation();
String request =
makeOutputFile( createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString( request,
"http://www.w3.org/TR/2001/REC-xml-c14n-20010315",
"http://www.w3.org/TR/2001/unknownCanonicalzationMethod");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2240");
}
public void create352() throws Exception {
String testNumber = "352";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
cpkcs.setKeyInformation();
String request =
makeOutputFile( createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString( request,
"http://www.w3.org/2000/09/xmldsig#rsa-sha1",
"http://www.w3.org/TR/2001/unknownSignatureMethod");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2240");
}
public void create353()throws Exception {
String testNumber = "353";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
cpkcs.createReference(false,"#xpointer(id('envelopedData'))");
cpkcs.createEnvelopedDataObject("envelopedData",readFileCR(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"));
cpkcs.setKeyInformation();
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request =
replaceString(
request,
"#xpointer(id('envelopedData'))",
"#xpointer(id('unknownURITarget'))");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2264");
}
public void create354() throws Exception {
String testNumber = "354";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
cpkcs.createReference(false,configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
cpkcs.setKeyInformation();
String request =
makeOutputFile( createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString( request,
"http://www.w3.org/2000/09/xmldsig#sha1",
"http://www.w3.org/TR/2001/unknownDigestMethod");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2240");
}
public void create355() throws Exception {
String testNumber = "355";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"));
cpkcs.setKeyInformation();
String request =
makeOutputFile( createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString( request,
"",
"WrongData and the original:");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"0000");
}
public void create356() throws Exception {
String testNumber = "356";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
//cpkcs.createReference(true,"Dies sind testdaten");
//Erzeugen der Base64-Daten
// String tmp = readBinaryFileAsBase64(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
URI target = new URI(configuration_.getProperty("webbaseDir")+"resources/testDaten.txtbase64.enc");
Transform[] tr = new Transform[1];
tr[0] = new TransformImplBase64Decode();
InputStream s = getHttpInputStream(target.toString());
tr[0].setInput(s,null);
cpkcs.createReferenceWithTransforms(target,tr);
cpkcs.setKeyInformation();
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString( request,
"http://www.w3.org/2000/09/xmldsig#base64",
"http://www.w3.org/TR/2001/unknownTransformsMethod");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2240");
}
public void create357() throws Exception {
String testNumber = "357";
String filepath = configuration_.getProperty("webbaseDir")+"resources/";
String filename = "CX1_book.xsl";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init("signature");
cpkcs.setCanoncialization(canAlgCanXML);
Transform[] tr = new Transform[1];
TransformImplXSLT trans = new TransformImplXSLT();
InputStream s = getHttpInputStream(configuration_.getProperty("webbaseDir")+"resources/CX1_bookref.xsl");
trans.setStyleSheet(s,new URI("http://moa-test.brz.intra.gv.at/TestDatenGenerator/resources/CX1_bookref.xsl"));
tr[0] = trans;
cpkcs.createReferenceWithTransforms(new URI(configuration_.getProperty("webbaseDir")+"resources/BookData.xml"),tr,"reference-1");
cpkcs.setKeyInformation();
String request =
makeOutputFile(
createRequestStart("357 nicht zu Reference/Transforms/Transform/@Algorithm passender Inha",true,0),
cpkcs.returnSig(),
createSignatureInfoEnd()
+ createRequestShortEnd(false));
request = replaceString(request, "http://www.w3.org/TR/1999/REC-xslt-19991116",
"http://www.w3.org/TR/1999/REC-xpath-19991116");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2240");
}
public void create358() throws Exception {
String testNumber = "358";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
//cpkcs.createReference(true,"Dies sind testdaten");
URI target = new URI(configuration_.getProperty("webbaseDir")+"resources/testDaten.txtBase64.enc");
// cpkcs.createEnvelopedDataObject("envelopedData",readBinaryFileAsBase64(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt"));
Transform[] tr = new Transform[1];
tr[0] = new TransformImplBase64Decode();
InputStream s = getHttpInputStream(target.toString());
tr[0].setInput(s,null);
cpkcs.createReferenceWithTransforms(target,tr);
//cpkcs.createReference(false, "file:/"+ configuration_.getProperty("webbaseDir")+"resources/test_wo_canonicalisation.XML");
//cpkcs.createReference(false, "file:/"+ configuration_.getProperty("webbaseDir")+"resources/test_w_canonicalisation.XML");
// cpkcs.createReferenceWithManifest(new URI("file:/"+ configuration_.getProperty("webbaseDir")+"resources/test_w_canonicalisation.XML"),"canonicalizedData");
cpkcs.setKeyInformation();
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString(request,
"","abcd");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2240");
}
public void create359() throws Exception {
String testNumber = "359";
URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml");
URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data");
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"));
cpkcs.setKeyInformation(false, fileURI, typeURI, null);
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString(request,"","");
request = replaceString(request,"","");
request = replaceString(request,"","");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2243");
}
public void create360() throws Exception {
String testNumber = "360";
URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml");
URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data");
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"));
cpkcs.setKeyInformation(false, fileURI, typeURI, null);
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString(request,"",
"Some kind of Subject");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2240");
}
public void create360_2() throws Exception {
String testNumber = "360_2";
URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml");
URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data");
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"));
cpkcs.setKeyInformation(false, fileURI, typeURI, null);
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString(request,"",
"Some kind of string as KeyName");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2240");
}
public void create361() throws Exception {
String testNumber = "361";
URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml");
URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data");
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"));
cpkcs.setKeyInformation(false, fileURI, typeURI, null);
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString(request,"",
" \n"+
" "+
readFileCR(configuration_.getProperty("webbaseDir") + "resources/tests.cer.b64") +
"\n"+
" \n");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2243");
}
public void create362() throws Exception {
String testNumber = "362";
URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml");
URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data");
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"));
cpkcs.setKeyInformation(false, fileURI, typeURI, null);
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString(request,"",
" \n"+
" "+
readFileCR(configuration_.getProperty("webbaseDir")+"resources/testDaten.txtbase64.enc") +
"\n"+
" \n");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2240");
}
public void create363() throws Exception {
String testNumber = "363";
URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml");
URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data");
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"));
cpkcs.setKeyInformation(false, fileURI, typeURI, null);
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString(request,"",
" \n"+
" "+
"( no BASE64 data )" +
"\n"+
" \n");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"1100");
}
public void create364() throws Exception {
String testNumber = "364";
URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml");
URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data");
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"));
cpkcs.setKeyInformation(false, fileURI, typeURI, null);
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString(request,
"http://www.w3.org/2000/09/xmldsig#X509Data",
"http://www.w3.org/2000/09/noValidRetrievalMethodType");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2240");
}
public void create365() throws Exception {
String testNumber = "365";
URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/X509Data.xml");
URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#X509Data");
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
cpkcs.createReference(true,readFileCR(configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"));
cpkcs.setKeyInformation(false, fileURI, typeURI, null);
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString(request,
configuration_.getProperty("webbaseDir") + "resources/X509Data.xml",
configuration_.getProperty("webbaseDir") + "resources/test-ee2003_normal.der");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2240");
}
public void create366() throws Exception {
String testNumber = "366";
URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/test-ee2003_normal.der");
URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#rawX509Certificate");
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testDaten.txt");
//DER-encoded RAW-Zertifikat zu Binary64 konvertieren
// String tmp = readBinaryFileAsBase64(fileURI.getPath());
//dsig:Object mit den Binary64-Daten erzeugen (==> CRs weglassen!!!!!)
cpkcs.createEnvelopedDataObject("rawCertAsBase64",readFileCR(fileURI.toString()+"base64.enc"));
//Neue Transformation erzeugen, um die Base64-Daten zurückzuwandeln
Transform[] tr = new Transform[1];
tr[0] = new TransformImplBase64Decode();
InputStream s = getHttpInputStream(fileURI.toString()+ "base64.enc");
tr[0].setInput(s,null);
//Neues KeyInfo-Objekt erzeugen, wobei nicht die Zertifikate sondern
//nur eine RetrievalMethod angegeben wird, die auf das oben erzeugte Base64-dsig:Object verweist
cpkcs.setKeyInformation(true, new URI("#xpointer(id('rawCertAsBase64')/node())") , typeURI, tr);
String request = makeOutputFile( createRequestStart(testNumber,true,0), cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString(request, "http://www.w3.org/2000/09/xmldsig#base64",
"http://Invalid.URI.com");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2240");
}
public void create367() throws Exception {
String testNumber = "367";
URI fileURI = new URI(configuration_.getProperty("webbaseDir") + "resources/test-ee2003_normal.der");
URI typeURI = new URI("http://www.w3.org/2000/09/xmldsig#rawX509Certificate");
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
cpkcs.createReference(false,configuration_.getProperty("webbaseDir") + "resources/testDaten.txt");
//DER-encoded RAW-Zertifikat zu Binary64 konvertieren
// String tmp = readBinaryFileAsBase64(fileURI.getPath());
//dsig:Object mit den Binary64-Daten erzeugen (==> CRs weglassen!!!!!)
cpkcs.createEnvelopedDataObject("rawCertAsBase64",readFileCR(fileURI.toString()+"base64.enc"));
//Neue Transformation erzeugen, um die Base64-Daten zurückzuwandeln
Transform[] tr = new Transform[1];
tr[0] = new TransformImplBase64Decode();
InputStream s = getHttpInputStream(fileURI.toString()+ "base64.enc");
tr[0].setInput(s,null);
//Neues KeyInfo-Objekt erzeugen, wobei nicht die Zertifikate sondern
//nur eine RetrievalMethod angegeben wird, die auf das oben erzeugte Base64-dsig:Object verweist
cpkcs.setKeyInformation(true, new URI("#xpointer(id('rawCertAsBase64')/node())") , typeURI, tr);
String request = makeOutputFile( createRequestStart(testNumber,true,0), cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString(request, "http://www.w3.org/2000/09/xmldsig#rawX509Certificate",
"http://www.w3.org/2000/09/xmldsig#X509Data");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2240");
}
public void create368() throws Exception {
String testNumber = "368";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
URI fileURI1 = new URI(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
cpkcs.createReferenceWithManifest(fileURI1,"manifestObject");
cpkcs.setKeyInformation();
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString(request, "http://www.w3.org/2000/09/xmldsig#Manifest",
"http://No.valid_manifest_URI.com");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2240");
}
public void create369() throws Exception {
String testNumber = "369";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
URI fileURI1 = new URI(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
cpkcs.createReferenceWithManifest(fileURI1,"manifestObject");
cpkcs.setKeyInformation();
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
request = replaceString(request, "#xpointer(id('manifestObject'))",
"#xpointer(id('NoValidManifestObject'))");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2262");
}
public void create370() throws Exception {
String testNumber = "370";
CreatePKCSSignature cpkcs = new CreatePKCSSignature();
cpkcs.init();
cpkcs.setCanoncialization(canAlgCanXML);
URI fileURI1 = new URI(configuration_.getProperty("webbaseDir")+"resources/testDaten.txt");
cpkcs.createReferenceWithManifest(fileURI1,"manifestObject");
cpkcs.setKeyInformation();
String request =
makeOutputFile(
createRequestStart(testNumber,true,0),
cpkcs.returnSig(),
createRequestEnd(true,false,null));
//Hier wird der DigestAlg vom Reference-Objekt im SignedInfo verändert
request = replaceString(request,
"http://www.w3.org/2000/09/xmldsig#sha1",
"noValidDigestAlg");
//Hier wird der DigestAlg vom Reference-Objekt im Manifset verändert
request = replaceString(request,
"http://www.w3.org/2000/09/xmldsig#sha1",
"noValidDigestAlg");
//Hier wird der DigestAlg vom Reference-Objekt im SignedInfo zurück geändert
request = replaceString(request,
"noValidDigestAlg",
"http://www.w3.org/2000/09/xmldsig#sha1");
writeFile(vxReqFile(testNumber),request);
writeFile(vxResErrFile(testNumber),"2262"); }
/**
* Method makeOutputFile.
* @param start
* @param signatureDoc
* @param end
* @return String
* @throws Exception
*/
public String makeOutputFile(
String start,
Document signatureDoc,
String end)
throws Exception {
ArrayList foundNodes = new ArrayList();
findNode(
signatureDoc.getDocumentElement(),
"dsig:Signature",
foundNodes);
Node outputNode = null;
if (foundNodes.size() > 0) {
outputNode = (Node) foundNodes.get(0);
}
String erg = Node2String(outputNode);
// remove the Prologue
int pos = erg.indexOf(""
+ "\n"
+ "\n";
if (useDate) {
reqStart += " "
+ getDate(changeHours)
+ "\n";
}
reqStart += " \n"
+ " \n"
+ " " ;
return reqStart;
}
/**
* Method getTransformsResult:the input transforms array will
* be calculated to return a string-representation of the result
* @param tr
* @return String
* @throws Exception
*/
private String getTransformsResult(Transform[] tr) throws Exception
{
Transform[] myTransforms = tr;
String result = "";
for (int t=0; t 0)
{
result += new String(b);
is.read(b);
}
result += new String(b);
return result;
}
/**
* Method createRequestEnd.
* @param useReturnHashInputData
* @param useSupplement
* @param supplementReference
* @return String
* @throws Exception
*/
private String createRequestEnd(
boolean useReturnHashInputData,
boolean useSupplement,
String supplementReference)
throws Exception {
String reqEnd = null;
/* reqEnd =
"\n"
+ " #xpointer(/VerifyXMLSignatureRequest/VerifySignatureInfo/VerifySignatureEnvironment/dsig:Signature)\n"
+ " \n";
*/
reqEnd =""+
"\n"
+ " //dsig:Signature\n"
+ " \n";
if (useSupplement)
{
reqEnd += " \n" +
" \n" +
" "+readFileCR(supplementReference.toString())+"\n" +
" \n" +
" \n";
}
if (useReturnHashInputData) {
reqEnd += " \n";
}
reqEnd += " TrustProfile1\n"
+ "\n";
return reqEnd;
}
private String createSignatureInfoEnd()
throws Exception {
return ""+"\n"
+ " //dsig:Signature\n"
+ " \n";
}
private String createRequestShortEnd(boolean useReturnHashInputData)
throws Exception {
String reqEnd = "";
if (useReturnHashInputData)
reqEnd = " \n";
reqEnd += " TrustProfile1\n"
+ "\n";
return reqEnd;
}
/**
* Method createResponse.
* @param testNumber
* @param signatureCheckCode
* @return String
* @throws Exception
*/
private String createResponse(String testNumber, String signatureCheckCode) throws Exception {
//
vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der");
String res = null;
res = vxBean.getHeader();
res += vxBean.getSubjectDN();
res += " \n";
res += vxBean.getIssuerDN();
res += vxBean.getSerialNumber();
res += " \n"
+ " \n"
+ " \n";
res += " \n" + " ";
res += readFileCR(
configuration_.getProperty("webbaseDir")
+ "resources/testDaten.txt")+
"";
res += vxBean.getFooterSignatureCheck(signatureCheckCode, "0");
return res;
}
private String createResponse(String testNumber, String signatureCheckCode, String hashData) throws Exception {
//
vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der");
String res = null;
res = vxBean.getHeader();
res += vxBean.getSubjectDN();
res += " \n";
res += vxBean.getIssuerDN();
res += vxBean.getSerialNumber();
res += " \n"
+ " \n"
+ " \n";
res += " \n" +
" "+
hashData +
"\n";
res += vxBean.getFooterSignatureCheck(signatureCheckCode, "0");
return res;
}
private String createResponseWithoutHashInputData(String testNumber, String signatureCheckCode) throws Exception {
//
vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der");
String res = null;
res = vxBean.getHeader();
res += vxBean.getSubjectDN();
res += " \n";
res += vxBean.getIssuerDN();
res += vxBean.getSerialNumber();
res += " \n"
+ " \n"
+ " \n"
+ " \n" +
" " + signatureCheckCode + "
\n" +
" \n" +
" \n" +
" 0
\n" +
" \n" +
"";
return res;
}
/* private String createResponseXMLDsigCheck(String testNumber, String xmlDSIGManifestCheckCode) throws Exception {
//
vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der");
String res = null;
res = vxBean.getHeader();
res += vxBean.getSubjectDN();
res += " \n";
res += vxBean.getIssuerDN();
res += vxBean.getSerialNumber();
res += " \n"
+ " \n"
+ " \n";
res += " \n" + " ";
res += readFile(
configuration_.getProperty("webbaseDir")
+ "resources/testDaten.txt");
res += vxBean.getFooterXMLDSIGManifestCheck(xmlDSIGManifestCheckCode,"0");
return res;
}*/
private String createResponsePart() throws Exception {
//
vxBean.init(configuration_.getProperty("webbaseDir")+ "resources/" + "test-ee2003_normal.der");
String res = null;
res = vxBean.getHeader();
res += vxBean.getSubjectDN();
res += " \n";
res += vxBean.getIssuerDN();
res += vxBean.getSerialNumber();
res += " \n"
+ " \n"
+ " \n";
return res;
}
public String readFileCR(String filename) throws Exception {
/*StringBuffer data = new StringBuffer();
String line = null;
BufferedReader br = new BufferedReader(new FileReader(filename));
while ((line = br.readLine()) != null) {
data.append(line);
data.append("\n");
}
*/
String response="";
byte[] result;
if (filename.substring(0,4).toLowerCase().equals("http"))
{
URL targetUrl = new URL(filename);
HttpURLConnection h = (HttpURLConnection)targetUrl.openConnection();
InputStream is = h.getInputStream();
int size = 0;
result = new byte[h.getContentLength()];
for (int i = 0; i < result.length; i++) {
byte[] b = new byte[1];
is.read(b);
result[i]=b[0];
}
is.close();
}
else
{
RandomAccessFile raf = new RandomAccessFile(filename, "r");
if (raf.length() > Integer.MAX_VALUE)
throw new IOException("file too big to fit in byte array.");
result = new byte[(int) raf.length()];
raf.read(result);
raf.close();
}
byte[] temp = new byte[result.length];
int s = 0;
for (int t=0; t","");
}
catch (Exception e) {}
return response;
}
private InputStream getHttpInputStream(String url) throws Exception
{
URL targetUrl = new URL(url);
HttpURLConnection h = (HttpURLConnection)targetUrl.openConnection();
return h.getInputStream();
}
public String vxResErrFile(String testNumber)
{
return configuration_.getProperty("baseDir") +
"/data/VX0/"+
configuration_.getProperty("TestClass") +
"." +
testNumber +
".ErrRes.xml";
}
private String getBase64Hash(String filename) throws Exception
{
DigestAlgorithmImplSHA1 dig = new DigestAlgorithmImplSHA1();
InputStream s = getHttpInputStream(filename);
dig.setInput(s);
InputStream erg = dig.digest();
String result = "";
byte[] b = new byte[1];
erg.read(b);
while (erg.available() > 0)
{
result += new String(b);
erg.read(b);
}
result += new String(b);
ByteArrayOutputStream fos = new ByteArrayOutputStream();
Base64OutputStream base64os = new Base64OutputStream(fos);
base64os.write(result.getBytes());
base64os.flush();
return fos.toString();
}
}