diff options
author | gregor <gregor@d688527b-c9ab-4aba-bd8d-4036d912da1d> | 2003-11-11 22:36:36 +0000 |
---|---|---|
committer | gregor <gregor@d688527b-c9ab-4aba-bd8d-4036d912da1d> | 2003-11-11 22:36:36 +0000 |
commit | 643b4096cdd0f0ed98f21c9b5b681ed89bcb08dc (patch) | |
tree | 9e750c9103ad923b291820bc85fcbd669c2e7900 /spss.test/src/testgenerator/TestGeneratorVC0.java | |
parent | bc620256eb9b4dc6a33244b1105e58773358dbe6 (diff) | |
download | moa-id-spss-643b4096cdd0f0ed98f21c9b5b681ed89bcb08dc.tar.gz moa-id-spss-643b4096cdd0f0ed98f21c9b5b681ed89bcb08dc.tar.bz2 moa-id-spss-643b4096cdd0f0ed98f21c9b5b681ed89bcb08dc.zip |
Erstellt.tags/Build-1.2.0.D01-svn
git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@51 d688527b-c9ab-4aba-bd8d-4036d912da1d
Diffstat (limited to 'spss.test/src/testgenerator/TestGeneratorVC0.java')
-rw-r--r-- | spss.test/src/testgenerator/TestGeneratorVC0.java | 1057 |
1 files changed, 1057 insertions, 0 deletions
diff --git a/spss.test/src/testgenerator/TestGeneratorVC0.java b/spss.test/src/testgenerator/TestGeneratorVC0.java new file mode 100644 index 000000000..f54689875 --- /dev/null +++ b/spss.test/src/testgenerator/TestGeneratorVC0.java @@ -0,0 +1,1057 @@ +package testgenerator; + +import iaik.asn1.ASN1Object; +import iaik.asn1.CodingException; +import iaik.asn1.DerCoder; +import iaik.asn1.ObjectID; +import iaik.asn1.structures.AlgorithmID; +import iaik.asn1.structures.Attribute; +import iaik.asn1.structures.ChoiceOfTime; +import iaik.asn1.structures.Name; +import iaik.cms.CMSException; +import iaik.cms.ContentInfoStream; +import iaik.cms.SignedDataStream; +import iaik.cms.SignerInfo; +import iaik.security.random.SecRandom; +import iaik.utils.StreamCopier; +import iaik.x509.X509Certificate; + +import java.io.BufferedInputStream; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.security.PrivateKey; +import java.security.Provider; +import java.security.SecureRandom; +import java.security.Security; +import java.security.SignatureException; + +import sun.misc.BASE64Encoder; + + +/** + * @author Administrator + * + * To change this generated comment edit the template variable "typecomment": + * Window>Preferences>Java>Templates. + * To enable and disable the creation of type comments go to + * Window>Preferences>Java>Code Generation. + */ +public class TestGeneratorVC0 extends TestCases { + + String datadirectory = "data/VC0/"; + String datadirectory_l = "data/LVC"; + + public String defaultblock = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+ + "<VerifyCMSSignatureRequest xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\" xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\" Signatories=\"1\">"+ + "<DateTime>2003-04-04T09:30:47-05:00</DateTime>"+ + "<CMSSignature><!-- insert data --></CMSSignature>"+ + "<DataObject>"+ + "<MetaInfo>"+ + "<MimeType>text/plain</MimeType>"+ + "<Description>anyURI</Description>"+ + "</MetaInfo>"+ + "<Content>"+ + "<Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=</Base64Content>"+ + "</Content>"+ + "</DataObject>"+ + "<TrustProfileID>TrustProfile1</TrustProfileID>"+ + "</VerifyCMSSignatureRequest>"; + + public String defaultresponse = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+ + "<VerifyCMSSignatureResponse xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\" >"+ + "<SignerInfo>"+ + "<dsig:X509Data xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\">"+ + "<dsig:X509SubjectName><!-- subn --></dsig:X509SubjectName>"+ + "<dsig:X509IssuerSerial>"+ + "<dsig:X509IssuerName><!-- in --></dsig:X509IssuerName>"+ + "<dsig:X509SerialNumber><!-- sn --></dsig:X509SerialNumber>"+ + "</dsig:X509IssuerSerial>"+ + "<dsig:X509Certificate><!-- cert --></dsig:X509Certificate>"+ + "<!-- cert2 -->"+ + "</dsig:X509Data>"+ + "</SignerInfo>"+ + "<SignatureCheck>"+ + "<Code><!-- sc_code --></Code>"+ + "</SignatureCheck>"+ + "<CertificateCheck>"+ + "<Code><!-- cc_code --></Code>"+ + "</CertificateCheck>"+ + "</VerifyCMSSignatureResponse>"; + + public String defaultresponse2 = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+ + "<VerifyCMSSignatureResponse xmlns=\"http://reference.e-government.gv.at/namespace/moa/20020822#\" >"+ + "<SignerInfo>"+ + "<dsig:X509Data xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\">"+ + "<dsig:X509SubjectName><!-- subn --></dsig:X509SubjectName>"+ + "<dsig:X509IssuerSerial>"+ + "<dsig:X509IssuerName><!-- in --></dsig:X509IssuerName>"+ + "<dsig:X509SerialNumber><!-- sn --></dsig:X509SerialNumber>"+ + "</dsig:X509IssuerSerial>"+ + "<dsig:X509Certificate><!-- cert --></dsig:X509Certificate>"+ + "</dsig:X509Data>"+ + "</SignerInfo>"+ + "<SignatureCheck>"+ + "<Code><!-- sc_code --></Code>"+ + "</SignatureCheck>"+ + "<CertificateCheck>"+ + "<Code><!-- cc_code --></Code>"+ + "</CertificateCheck>"+ + "<SignerInfo>"+ + "<dsig:X509Data xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\">"+ + "<dsig:X509SubjectName><!-- subn --></dsig:X509SubjectName>"+ + "<dsig:X509IssuerSerial>"+ + "<dsig:X509IssuerName><!-- in --></dsig:X509IssuerName>"+ + "<dsig:X509SerialNumber><!-- sn --></dsig:X509SerialNumber>"+ + "</dsig:X509IssuerSerial>"+ + "<dsig:X509Certificate><!-- cert --></dsig:X509Certificate>"+ + "</dsig:X509Data>"+ + "</SignerInfo>"+ + "<SignatureCheck>"+ + "<Code><!-- sc_code --></Code>"+ + "</SignatureCheck>"+ + "<CertificateCheck>"+ + "<Code><!-- cc_code --></Code>"+ + "</CertificateCheck>"+ + "</VerifyCMSSignatureResponse>"; + + /* + <!-- in --> + <!-- sn --> + <!-- subn --> + <!-- sc_code --> + <!-- cc_code --> + */ + + public String b64_der_data = null; + public String b64_der_data_two = null; + public String b64_der_data_exp = null; + public String b64_der_data_exp_two = null; + public String b64_der_data_max = null; + + public String b64_der_data_1kb = null; + public String b64_der_data_10kb = null; + public String b64_der_data_100kb = null; + public String b64_der_data_1mb = null; + public String b64_der_data_10mb = null; + + public String cert_file_data = null; + public String cert_max_file_data = null; + public String cert_root_file_data = null; + + + public String fileprefix = null; + public String filesuffix = null; + + // signing certificate of user 2 + X509Certificate user2_sign; + // signing private key of user 2 + PrivateKey user2_sign_pk; + + // encryption certificate of user 2 + X509Certificate user2_crypt; + // encryption private key of user 2 + PrivateKey user2_crypt_pk; + // a certificate chain containing the user certs + CA + + X509Certificate[] certificates; + // secure random number generator + SecureRandom random; + + public TestGeneratorVC0() throws Exception + { + super(); + // Set config properties + configuration_.setProperty("TestClass", "TestGeneratorVC0"); + + + configuration_.setProperty( + "PKCS12file_maxmustermann", + (configuration_.getProperty("baseDir") + "/resources/Max_Mustermann (max).p12")); + + configuration_.setProperty("PKCS12password_maxmustermann", "max"); + + configuration_.setProperty( + "CERT_maxmustermann", + (configuration_.getProperty("baseDir") + "resources/Max_Mustermann.cer")); + + configuration_.setProperty( + "CERT_ROOT", + (configuration_.getProperty("baseDir") + "resources/IAIKRootMusterbehoerde.cer")); + + Provider [] list = Security.getProviders(); + for(int counter=0;counter<list.length;counter++) + { + System.out.println(list[counter].getName()); + } + + iaik.security.provider.IAIK.addAsProvider(); + iaik.security.ecc.provider.ECCProvider.addAsProvider(); + + X509Certificate[] certs = CMSKeyStore.getCertificateChain(CMSKeyStore.RSA, CMSKeyStore.SZ_1024_SIGN); + user2_sign = CMSKeyStore.getCertificateChain(CMSKeyStore.RSA, CMSKeyStore.SZ_2048_SIGN)[0]; + user2_sign_pk = CMSKeyStore.getPrivateKey(CMSKeyStore.RSA, CMSKeyStore.SZ_2048_SIGN); + certificates = new X509Certificate[certs.length+1]; + System.arraycopy(certs, 0, certificates, 0, certs.length); + certificates[certs.length] = user2_sign; + + // encryption certs + user2_crypt = CMSKeyStore.getCertificateChain(CMSKeyStore.RSA, CMSKeyStore.SZ_2048_CRYPT)[0]; + user2_crypt_pk = CMSKeyStore.getPrivateKey(CMSKeyStore.RSA, CMSKeyStore.SZ_2048_CRYPT); + + random = SecRandom.getDefault(); + + byte[] received_message = null; + ASN1Object obj = null; + + String m = readFile(configuration_.getProperty("baseDir")+"resources/testDaten.txt"); + //String m = "This is a message"; + System.out.println("*"+m+"*"); + byte[] message = m.getBytes(); + + System.out.println("Implicit SignedData demo [create]:"); + obj = createSignedCMSData(message, SignedDataStream.IMPLICIT,false); + byte[] sig = DerCoder.encode(obj); + writeFileBinary("testimpl.ber",sig); + b64_der_data = (new BASE64Encoder()).encode(sig); + + obj = createSignedCMSData(message, SignedDataStream.IMPLICIT,true); + sig = DerCoder.encode(obj); + writeFileBinary("testimpl2.ber",sig); + b64_der_data_two = (new BASE64Encoder()).encode(sig); + + obj = createSignedCMSData(message, SignedDataStream.EXPLICIT,false); + sig = DerCoder.encode(obj); + writeFileBinary("testexp.ber",sig); + b64_der_data_exp = (new BASE64Encoder()).encode(sig); + + String output = getSignedDataStream(sig,message,false); + System.out.println("Output:"+output); + + obj = createSignedCMSData(message, SignedDataStream.EXPLICIT,true); + sig = DerCoder.encode(obj); + writeFileBinary("testexp2.ber",sig); + b64_der_data_exp_two = (new BASE64Encoder()).encode(sig); + + cert_file_data = readBinaryFileAsBase64_new(configuration_.getProperty("CERT")); + cert_max_file_data = readBinaryFileAsBase64_new(configuration_.getProperty("CERT_maxmustermann")); + cert_root_file_data = readBinaryFileAsBase64_new(configuration_.getProperty("CERT_ROOT")); + + // transmit data + /*System.out.println("Implicit SignedData demo [parse]:"); + received_message = getSignedData(obj, null,true); + System.out.print("Signed content: "); + System.out.println(new String(received_message));*/ + + //readBinaryFileAsBase64(configuration_.getProperty("baseDir")+"resources/testDaten.txt"); + } + + public String getCMSData(String filename) throws Exception + { + ASN1Object obj = null; + obj = createSignedCMSData(readFile(configuration_.getProperty("baseDir") + "resources/"+filename+".txt").getBytes(), SignedDataStream.EXPLICIT,true); + byte[] sig = DerCoder.encode(obj); + //writeFileBinary("testexp2.ber",sig); + return (new BASE64Encoder()).encode(sig); + } + + public String getSignedDataStream(byte[] signedData, byte[] message,boolean two_users) throws CMSException, IOException { + + // we are testing the stream interface + ByteArrayInputStream is = new ByteArrayInputStream(signedData); + // create the ContentInfo object + ContentInfoStream cis = new ContentInfoStream(is); + System.out.println("This ContentInfo holds content of type " + cis.getContentType().getName()); + SignedDataStream signed_data = null; + + if (message == null) { + // implicitly signed; get the content + signed_data = (SignedDataStream)cis.getContent(); + } + else { + // explicitly signed; set the data stream for digesting the message + AlgorithmID[] algIDs = { AlgorithmID.sha1, AlgorithmID.md5 }; + signed_data = new SignedDataStream(new ByteArrayInputStream(message), algIDs); + + } + + // get an InputStream for reading the signed content + InputStream data = signed_data.getInputStream(); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + StreamCopier sc = new StreamCopier(data, os); + sc.copyStream(); + + + if (message != null) { + // if explicitly signed read now the DER encoded object + // an explicit S/MIME signed message also consits of message|signature + signed_data.decode(cis.getContentInputStream()); + } + + System.out.println("SignedData contains the following signer information:"); + SignerInfo[] signer_infos = signed_data.getSignerInfos(); + + for (int i=0; i<signer_infos.length; i++) { + try { + // verify the signed data using the SignerInfo at index i + X509Certificate signer_cert = signed_data.verify(i); + // if the signature is OK the certificate of the signer is returned + System.out.println("Signature OK from signer: "+signer_cert.getSubjectDN()); + Attribute signingTime = signer_infos[i].getSignedAttribute(ObjectID.signingTime); + if (signingTime != null) { + ChoiceOfTime cot = new ChoiceOfTime(signingTime.getValue()[0]); + System.out.println("This message has been signed at " + cot.getDate()); + } + Attribute contentType = signer_infos[i].getSignedAttribute(ObjectID.contentType); + if (contentType != null) { + System.out.println("The content has CMS content type " + contentType.getValue()[0]); + } + + } catch (SignatureException ex) { + // if the signature is not OK a SignatureException is thrown + System.out.println("Signature ERROR from signer: "+signed_data.getCertificate((signer_infos[i].getSignerIdentifier())).getSubjectDN()); + } catch (CodingException ex) { + System.out.println("Attribute decoding error: " + ex.getMessage()); + } + } + // now check alternative signature verification + System.out.println("Now check the signature assuming that no certs have been included:"); + try { + SignerInfo signer_info = signed_data.verify(user1_sign); + // if the signature is OK the certificate of the signer is returned + System.out.println("Signature OK from signer: "+signed_data.getCertificate(signer_info.getSignerIdentifier()).getSubjectDN()); + + } catch (SignatureException ex) { + // if the signature is not OK a SignatureException is thrown + System.out.println("Signature ERROR from signer: "+user1_sign.getSubjectDN()); + } + + if(two_users) + try { + SignerInfo signer_info = signed_data.verify(user2_sign); + // if the signature is OK the certificate of the signer is returned + System.out.println("Signature OK from signer: "+signed_data.getCertificate(signer_info.getSignerIdentifier()).getSubjectDN()); + + } catch (SignatureException ex) { + // if the signature is not OK a SignatureException is thrown + System.out.println("Signature ERROR from signer: "+user2_sign.getSubjectDN()); + } + + + return os.toString(); + } + + public void createConfig() throws Exception { + + String file = configuration_.getProperty("baseDir") + datadirectory + + configuration_.getProperty("TestClass") + + ".Config.xml"; + String config = + + "<MOAConfiguration xmlns=\"http://reference.e-government.gv.at/namespace/moaconfig/20021122#\">"+ + " <KeyGroup id=\"PKCS12RSAKey1\"> <Key id=\"resources/test-ee2003_normal(buergerkarte).p12\"/> </KeyGroup>"+ + " <KeyGroup id=\"PKCS12RSAKeyExpired\"> <Key id=\"sicher-demo(buergerkarte).p12\"/> </KeyGroup>"+ + " <KeyGroup id=\"PKCS12ECDSAKey1\"> <Key id=\"ecc.p12\"/> </KeyGroup> "+ + " <KeyGroup id=\"HSMRSAKey1\"> <Key id=\"???\"/> </KeyGroup>"+ + " <KeyGroup id=\"HSMECDSAKey1\"> <Key id=\"???\"/> </KeyGroup>"+ + " <DigestMethodAlgorithm name=\"http://www.w3.org/2000/09/xmldsig#sha1\"/>"+ + " <SignatureAlgorithm name=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\"/>"+ + " <CanonicalizationAlgorithm name=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"/>"+ + " <CreateSignatureEnvironmentProfile id=\"CreateSignatureEnvironmentProfile1\" filename=\""+"file:/"+configuration_.getProperty("baseDir")+"resources/csep.xml\"/>"+ + " <TrustProfile id=\"validTrustProfileID1\" uri=\""+"file:/"+configuration_.getProperty("baseDir")+"TrustProfile1/\"/>"+ + "</MOAConfiguration>"; + + FileOutputStream fos = new FileOutputStream(file); + fos.write(config.getBytes()); + fos.flush(); + fos.close(); + + fileprefix = configuration_.getProperty("baseDir")+ datadirectory + configuration_.getProperty("TestClass") + "."; + filesuffix = ".xml"; + + } + + public static void main(String[] args) throws Exception { + TestGeneratorVC0 testcase = new TestGeneratorVC0(); + + testcase.createConfig(); + testcase.create001(); + testcase.create002(); + testcase.create003(); + testcase.create004(); + testcase.create005(); + testcase.create006(); + testcase.create007(); + testcase.create008(); + testcase.create009(); + testcase.create010(); + //testcase.create011(); + testcase.create012(); + + testcase.create051(); + testcase.create052(); + //testcase.create053(); + testcase.create054(); + testcase.create055(); + testcase.create056(); + testcase.create057(); + testcase.create058(); + + //testcase.createL00(); + + } + + public void createL00() throws Exception { + createL001("1kb"); + createL001("10kb"); + createL001("20kb"); + createL001("50kb"); + createL001("100kb"); + createL001("500kb"); + createL001("1mb"); + createL001("10mb"); + } + + public void createL001(String filename) throws Exception + { + String TestNumber = "001"; + + String reqFile = configuration_.getProperty("baseDir")+ datadirectory_l+filename+"/" + configuration_.getProperty("TestClass") + "." + TestNumber + ".Req.xml"; + + String req = replaceString(defaultblock,"<!-- insert data -->",getCMSData(filename)); + req = replaceString(req,"<Content>","<Content Reference=\"anyURI\">"); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/"+filename+".txt"); + req = replaceString(req, + "<Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=</Base64Content>", + ""); + + writeFile(reqFile,req); + + String resFile = configuration_.getProperty("baseDir")+ datadirectory_l+filename+"/" + configuration_.getProperty("TestClass") + "." + TestNumber + ".Res.xml"; + + String res = replaceString(defaultresponse,"<!-- in -->",this.X509name); + res = replaceString(res,"<!-- sn -->",this.X509number.toString()); + res = replaceString(res,"<!-- subn -->",this.X509sub); + res = replaceString(res,"<!-- sc_code -->","0"); + res = replaceString(res,"<!-- cc_code -->","0"); + res = replaceString(res,"<!-- cert -->",cert_file_data); + res = replaceString(res,"<!-- cert2 -->",""); + //res = replaceString(res,"<dsig:X509Certificate><!-- cert --></dsig:X509Certificate>",""); + + + writeFile(resFile,res); + + + } + + public void create001() throws Exception + { + String TestNumber = "001"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_exp); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + /*CreatePKCSSignature cpkcs = new CreatePKCSSignature(); + cpkcs.init(); + cpkcs.setCanoncialization(canAlgCanXML); + cpkcs.createReference(false,"file:/"+configuration_.getProperty("baseDir")+"resources/testDaten.txt"); + cpkcs.setKeyInformation(); + + Document doc = cpkcs.returnSig(); + + String output = makeOutputFile(doc,"<data:Document xmlns:data=\"uri.data.org\">",readFile(configuration_.getProperty("baseDir")+"resources/testDaten.txt")+"</data:Document>"); + + writeFile(resFile, output);*/ + + String res = replaceString(defaultresponse,"<!-- in -->",this.X509name); + res = replaceString(res,"<!-- sn -->",this.X509number.toString()); + res = replaceString(res,"<!-- subn -->",this.X509sub); + res = replaceString(res,"<!-- sc_code -->","0"); + res = replaceString(res,"<!-- cc_code -->","0"); + res = replaceString(res,"<!-- cert -->",cert_file_data); + res = replaceString(res,"<!-- cert2 -->",""); + //res = replaceString(res,"<dsig:X509Certificate><!-- cert --></dsig:X509Certificate>",""); + + + writeFile(resFile,res); + + + } + + public void create002() throws Exception + { + String TestNumber = "002"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_exp_two); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + req = replaceString(req, + "Signatories=\"1\"", + "Signatories=\"1 2\""); + + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + String res = replaceStringAll(defaultresponse2,"<!-- in -->",this.X509name); + res = replaceStringAll(res,"<!-- sn -->",this.X509number.toString()); + res = replaceStringAll(res,"<!-- subn -->",this.X509sub); + res = replaceStringAll(res,"<!-- sc_code -->","0"); + res = replaceStringAll(res,"<!-- cc_code -->","0"); + res = replaceStringAll(res,"<!-- cert -->",cert_file_data); + //res = replaceString(res,"<!-- cert2 -->",""); + writeFile(resFile,res); + } + + public void create003() throws Exception + { + String TestNumber = "003"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_exp); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + req = replaceString(req, + "Signatories=\"1\"", + "Signatories=\"all\""); + + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + String res = replaceString(defaultresponse,"<!-- in -->",this.X509name); + res = replaceString(res,"<!-- sn -->",this.X509number.toString()); + res = replaceString(res,"<!-- subn -->",this.X509sub); + res = replaceString(res,"<!-- sc_code -->","0"); + res = replaceString(res,"<!-- cc_code -->","0"); + res = replaceString(res,"<!-- cert -->",cert_file_data); + res = replaceString(res,"<!-- cert2 -->",""); + writeFile(resFile,res); + } + + public void create004() throws Exception + { + String TestNumber = "004"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_exp); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + req = replaceString(req, + "<DateTime>2003-04-04T09:30:47-05:00</DateTime>", + ""); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + String res = replaceString(defaultresponse,"<!-- in -->",this.X509name); + res = replaceString(res,"<!-- sn -->",this.X509number.toString()); + res = replaceString(res,"<!-- subn -->",this.X509sub); + res = replaceString(res,"<!-- sc_code -->","0"); + res = replaceString(res,"<!-- cc_code -->","0"); + res = replaceString(res,"<!-- cert -->",cert_file_data); + res = replaceString(res,"<!-- cert2 -->",""); + writeFile(resFile,res); + } + + public void create005() throws Exception + { + String TestNumber = "005"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_exp); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + req = replaceString(req, + "<DateTime>2003-04-04T09:30:47-05:00</DateTime>", + "<DateTime>2003-04-04T09:30:47-05:00</DateTime>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + String res = replaceString(defaultresponse,"<!-- in -->",this.X509name); + res = replaceString(res,"<!-- sn -->",this.X509number.toString()); + res = replaceString(res,"<!-- subn -->",this.X509sub); + res = replaceString(res,"<!-- sc_code -->","0"); + res = replaceString(res,"<!-- cc_code -->","0"); + res = replaceString(res,"<!-- cert -->",cert_file_data); + res = replaceString(res,"<!-- cert2 -->",""); + writeFile(resFile,res); + } + + public void create006() throws Exception + { + String TestNumber = "006"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + req = replaceString(req, + "<DataObject>"+ + "<MetaInfo>"+ + "<MimeType>text/plain</MimeType>"+ + "<Description>"+configuration_.getProperty("webbaseDir") + "resources/testDaten.txt</Description>"+ + "</MetaInfo>"+ + "<Content>"+ + "<Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=</Base64Content>"+ + "</Content>"+ + "</DataObject>", + ""); + + //req = replaceString(defaultblock, + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + String res = replaceString(defaultresponse,"<!-- in -->",this.X509name); + res = replaceString(res,"<!-- sn -->",this.X509number.toString()); + res = replaceString(res,"<!-- subn -->",this.X509sub); + res = replaceString(res,"<!-- sc_code -->","0"); + res = replaceString(res,"<!-- cc_code -->","0"); + res = replaceString(res,"<!-- cert -->",cert_file_data); + res = replaceString(res,"<!-- cert2 -->",""); + writeFile(resFile,res); + } + + public void create007() throws Exception + { + String TestNumber = "007"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_exp); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + req = replaceString(req, + "<MetaInfo>"+ + "<MimeType>text/plain</MimeType>"+ + "<Description>"+configuration_.getProperty("webbaseDir") + "resources/testDaten.txt</Description>"+ + "</MetaInfo>", + ""); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + String res = replaceString(defaultresponse,"<!-- in -->",this.X509name); + res = replaceString(res,"<!-- sn -->",this.X509number.toString()); + res = replaceString(res,"<!-- subn -->",this.X509sub); + res = replaceString(res,"<!-- sc_code -->","0"); + res = replaceString(res,"<!-- cc_code -->","0"); + res = replaceString(res,"<!-- cert -->",cert_file_data); + res = replaceString(res,"<!-- cert2 -->",""); + writeFile(resFile,res); + } + + public void create008() throws Exception + { + String TestNumber = "008"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_exp); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + String res = replaceString(defaultresponse,"<!-- in -->",this.X509name); + res = replaceString(res,"<!-- sn -->",this.X509number.toString()); + res = replaceString(res,"<!-- subn -->",this.X509sub); + res = replaceString(res,"<!-- sc_code -->","0"); + res = replaceString(res,"<!-- cc_code -->","0"); + res = replaceString(res,"<!-- cert -->",cert_file_data); + res = replaceString(res,"<!-- cert2 -->",""); + writeFile(resFile,res); + } + + public void create009() throws Exception + { + String TestNumber = "009"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_exp); + req = replaceString(req,"<Content>","<Content Reference=\"anyURI\">"); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + req = replaceString(req, + "<Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=</Base64Content>", + ""); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + String res = replaceString(defaultresponse,"<!-- in -->",this.X509name); + res = replaceString(res,"<!-- sn -->",this.X509number.toString()); + res = replaceString(res,"<!-- subn -->",this.X509sub); + res = replaceString(res,"<!-- sc_code -->","0"); + res = replaceString(res,"<!-- cc_code -->","0"); + res = replaceString(res,"<!-- cert -->",cert_file_data); + res = replaceString(res,"<!-- cert2 -->",""); + writeFile(resFile,res); + } + + public void create011() throws Exception + { + String TestNumber = "011"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",readFile(configuration_.getProperty("baseDir") + "resources/VC0.011.cms.ber.b64.txt")); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + req = replaceString(req, + "<DataObject>"+ + "<MetaInfo>"+ + "<MimeType>text/plain</MimeType>"+ + "<Description>"+configuration_.getProperty("webbaseDir") + "resources/testDaten.txt</Description>"+ + "</MetaInfo>"+ + "<Content>"+ + "<Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=</Base64Content>"+ + "</Content>"+ + "</DataObject>", + ""); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + String res = replaceString(defaultresponse,"<!-- in -->","CN=a-sign-TEST-Premium-Enc-01,OU=a-sign-TEST-Premium-Enc-01,O=A-Trust Ges. f. Sicherheitssysteme im elektr. Datenverkehr GmbH,C=AT"); + res = replaceString(res,"<!-- sn -->","6455"); + res = replaceString(res,"<!-- subn -->","Seriennummer=790187461633,G=Testperson MOA4,SN=BRZ,CN=Testperson MOA4 BRZ,C=AT"); + res = replaceString(res,"<!-- sc_code -->","0"); + res = replaceString(res,"<!-- cc_code -->","0"); + res = replaceString(res,"<!-- cert -->",cert_file_data); + res = replaceString(res,"<!-- cert2 -->",""); + res = replaceString(res, + "</dsig:X509Data>", + "<sl11:QualifiedCertificate xmlns:sl11=\"http://www.buergerkarte.at/namespaces/securitylayer/20020831#\"/>"+ + "</dsig:X509Data>"); + + + writeFile(resFile,res); + } + + public void create012() throws Exception + { + String TestNumber = "012"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + BufferedInputStream bis = new BufferedInputStream(new FileInputStream(configuration_.getProperty("CERT_maxmustermann"))); + iaik.x509.X509Certificate cert = new iaik.x509.X509Certificate(bis); + X509name = ((Name)(cert.getIssuerDN())).getRFC2253String(); + X509number = cert.getSerialNumber(); + X509hash = new String(cert.getFingerprintSHA()); + X509sub = ((Name)(cert.getSubjectDN())).getRFC2253String(); + + String m = "This is a message"; + System.out.println("*"+m+"*"); + byte[] message = m.getBytes(); + + ASN1Object obj = null; + obj = createSignedCMSData(message, SignedDataStream.IMPLICIT,false,"PKCS12file_maxmustermann","PKCS12password_maxmustermann","CERT_maxmustermann"); + byte[] sig = DerCoder.encode(obj); + writeFileBinary("testimplmax.ber",sig); + b64_der_data_max = (new BASE64Encoder()).encode(sig); + + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_max); + + req = replaceString(req, + "<DataObject>"+ + "<MetaInfo>"+ + "<MimeType>text/plain</MimeType>"+ + "<Description>anyURI</Description>"+ + "</MetaInfo>"+ + "<Content>"+ + "<Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=</Base64Content>"+ + "</Content>"+ + "</DataObject>", + ""); + + //req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + /*CreatePKCSSignature cpkcs = new CreatePKCSSignature(); + cpkcs.init(); + cpkcs.setCanoncialization(canAlgCanXML); + cpkcs.createReference(false,"file:/"+configuration_.getProperty("baseDir")+"resources/testDaten.txt"); + cpkcs.setKeyInformation(); + + Document doc = cpkcs.returnSig(); + + String output = makeOutputFile(doc,"<data:Document xmlns:data=\"uri.data.org\">",readFile(configuration_.getProperty("baseDir")+"resources/testDaten.txt")+"</data:Document>"); + + writeFile(resFile, output);*/ + + + String res = replaceString(defaultresponse,"<!-- in -->",X509name); + res = replaceString(res,"<!-- sn -->",X509number.toString()); + res = replaceString(res,"<!-- subn -->",X509sub); + res = replaceString(res,"<!-- sc_code -->","0"); + res = replaceString(res,"<!-- cc_code -->","0"); + res = replaceString(res,"<!-- cert -->",cert_max_file_data); + res = replaceString(res,"<!-- cert2 -->",""); + res = replaceString(res, + "</dsig:X509Data>", + "<PublicAuthority>"+ + "<Code>Musterbehörde</Code>"+ + //"<Code>Musterbehörde</Code>"+ + "</PublicAuthority>"+ + "</dsig:X509Data>"); + + + writeFile(resFile,res); + + + } + + public void create051() throws Exception + { + String TestNumber = "051"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_exp); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + req = replaceString(req, + "Signatories=\"1\"", + "Signatories=\"0\""); + + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; + + writeFile(resFile,"1100"); + } + + public void create052() throws Exception + { + String TestNumber = "052"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_exp); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + req = replaceString(req, + "Signatories=\"1\"", + "Signatories=\"10\""); + + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; + + writeFile(resFile,"2249"); + } + + public void create053() throws Exception + { + String TestNumber = "053"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_exp); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + req = replaceString(req, + "<DateTime>2003-04-04T09:30:47-05:00</DateTime>", + "<DateTime>"+getDate(1*34*24)+"</DateTime>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; + + writeFile(resFile,"0000"); + } + + public void create054() throws Exception + { + String TestNumber = "054"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock, + "<CMSSignature><!-- insert data --></CMSSignature>", + "<CMSSignature>this is no Base64 Data</CMSSignature>"); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; + + writeFile(resFile,"1100"); + + } + + public void create055() throws Exception + { + String TestNumber = "055"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_exp); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + req = replaceString(req, + "<DataObject>"+ + "<MetaInfo>"+ + "<MimeType>text/plain</MimeType>"+ + "<Description>"+configuration_.getProperty("webbaseDir") + "resources/testDaten.txt</Description>"+ + "</MetaInfo>"+ + "<Content>"+ + "<Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=</Base64Content>"+ + "</Content>"+ + "</DataObject>", + ""); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; + + writeFile(resFile,"2248"); + + } + + + + public void create010() throws Exception + { + String TestNumber = "010"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_exp); + req = replaceString(req,"<Content>","<Content Reference=\"anyURI\">"); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + req = replaceString(req, + "<Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=</Base64Content>", + ""); + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".Res"+filesuffix; + + String res = replaceString(defaultresponse,"<!-- in -->",this.X509name); + res = replaceString(res,"<!-- sn -->",this.X509number.toString()); + res = replaceString(res,"<!-- subn -->",this.X509sub); + res = replaceString(res,"<!-- sc_code -->","0"); + res = replaceString(res,"<!-- cc_code -->","0"); + res = replaceString(res,"<!-- cert -->",cert_file_data); + res = replaceString(res,"<!-- cert2 -->",""); + + writeFile(resFile,res); + + } + + public void create056() throws Exception + { + String TestNumber = "056"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_exp); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + req = replaceString(req, + "<TrustProfileID>TrustProfile1</TrustProfileID>", + "<TrustProfileID>notvalidTrustProfileID</TrustProfileID>"); + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; + + writeFile(resFile,"2203"); + + } + + + public void create057() throws Exception + { + String TestNumber = "057"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + + configuration_.setProperty( + "PKCS12file_maxmustermann", + (configuration_.getProperty("baseDir") + "/resources/Max_Mustermann (max).p12")); + + configuration_.setProperty("PKCS12password_maxmustermann", "max"); + + configuration_.setProperty( + "CERT_maxmustermann", + (configuration_.getProperty("baseDir") + "resources/Max_Mustermann.cer")); + + BufferedInputStream bis = new BufferedInputStream(new FileInputStream(configuration_.getProperty("CERT_maxmustermann"))); + iaik.x509.X509Certificate cert = new iaik.x509.X509Certificate(bis); + X509name = ((Name)(cert.getIssuerDN())).getRFC2253String(); + X509number = cert.getSerialNumber(); + X509hash = new String(cert.getFingerprintSHA()); + X509sub = ((Name)(cert.getSubjectDN())).getRFC2253String(); + + String m = "This is a message"; + System.out.println("*"+m+"*"); + byte[] message = m.getBytes(); + + ASN1Object obj = null; + obj = createSignedCMSData(message, SignedDataStream.IMPLICIT,false,"PKCS12file_maxmustermann","PKCS12password_maxmustermann","CERT_maxmustermann"); + byte[] sig = DerCoder.encode(obj); + writeFileBinary("testimplmax.ber",sig); + b64_der_data_max = (new BASE64Encoder()).encode(sig); + + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_max); + + /*req = replaceString(req, + " <DataObject>"+ + " <MetaInfo>"+ + " <MimeType>text/plain</MimeType>"+ + " <Description>anyURI</Description>"+ + " </MetaInfo>"+ + " <Content Reference=\"anyURI\">"+ + " <Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=</Base64Content>"+ + " </Content>"+ + " </DataObject>", + "");*/ + + //req = replaceString(req,"Reference=\"anyURI\"",""); + + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + + + + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; + + writeFile(resFile,"2248"); + + + } + + public void create058() throws Exception + { + String TestNumber = "058"; + String reqFile = fileprefix + TestNumber + ".Req"+filesuffix; + + String req = replaceString(defaultblock,"<!-- insert data -->",b64_der_data_exp); + req = replaceStringAll(req,"anyURI",configuration_.getProperty("webbaseDir") + "resources/testDaten.txt"); + + req = replaceString(req,"RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=","RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=()"); + writeFile(reqFile,req); + + String resFile = fileprefix + TestNumber + ".ErrRes"+filesuffix; + + writeFile(resFile,"1100"); + + } + + + + + + + +} |