aboutsummaryrefslogtreecommitdiff
path: root/moaSig/moa-sig/src/test/java/at/gv/egovernment
diff options
context:
space:
mode:
Diffstat (limited to 'moaSig/moa-sig/src/test/java/at/gv/egovernment')
-rw-r--r--moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/CadesIntegrationTest.java122
-rw-r--r--moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/XadesIntegrationTest.java91
-rw-r--r--moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/tsl/XadesTslEuTestset02Test.java35
-rw-r--r--moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/tsl/XadesTslEuTestset03Test.java9
4 files changed, 231 insertions, 26 deletions
diff --git a/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/CadesIntegrationTest.java b/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/CadesIntegrationTest.java
index abdab26..fb1cc05 100644
--- a/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/CadesIntegrationTest.java
+++ b/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/CadesIntegrationTest.java
@@ -9,6 +9,10 @@ import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.lang.reflect.Field;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.xml.parsers.ParserConfigurationException;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.RandomStringUtils;
@@ -18,24 +22,35 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;
+import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
import at.gv.egovernment.moa.spss.MOAException;
+import at.gv.egovernment.moa.spss.api.SPSSFactory;
+import at.gv.egovernment.moa.spss.api.cmssign.CMSSignatureResponse;
+import at.gv.egovernment.moa.spss.api.cmssign.CreateCMSSignatureRequest;
+import at.gv.egovernment.moa.spss.api.cmssign.CreateCMSSignatureResponse;
+import at.gv.egovernment.moa.spss.api.cmssign.DataObjectInfo;
import at.gv.egovernment.moa.spss.api.cmsverify.VerifyCMSSignatureRequest;
import at.gv.egovernment.moa.spss.api.cmsverify.VerifyCMSSignatureResponse;
import at.gv.egovernment.moa.spss.api.cmsverify.VerifyCMSSignatureResponseElement;
+import at.gv.egovernment.moa.spss.api.xmlbind.CreateCMSSignatureRequestParser;
import at.gv.egovernment.moa.spss.api.xmlverify.AdESFormResults;
import at.gv.egovernment.moa.spss.server.config.ConfigurationException;
import at.gv.egovernment.moa.spss.server.config.ConfigurationProvider;
import at.gv.egovernment.moa.spss.server.init.SystemInitializer;
+import at.gv.egovernment.moa.spss.server.invoke.CMSSignatureCreationInvoker;
import at.gv.egovernment.moa.spss.server.invoke.CMSSignatureVerificationInvoker;
import at.gv.egovernment.moa.spss.tsl.TSLServiceFactory;
+import at.gv.egovernment.moaspss.util.DOMUtils;
import iaik.pki.Configurator;
import iaik.pki.PKIFactory;
@RunWith(BlockJUnit4ClassRunner.class)
public class CadesIntegrationTest extends AbstractIntegrationTest {
- CMSSignatureVerificationInvoker cadesInvoker;
+ CMSSignatureVerificationInvoker verifyCadesInvoker;
+ private CMSSignatureCreationInvoker signCadesInvoker;
@BeforeClass
public static void classInitializer() throws IOException, ConfigurationException,
@@ -74,7 +89,9 @@ public class CadesIntegrationTest extends AbstractIntegrationTest {
@Before
public void initializer() throws ConfigurationException {
- cadesInvoker = CMSSignatureVerificationInvoker.getInstance();
+ verifyCadesInvoker = CMSSignatureVerificationInvoker.getInstance();
+ signCadesInvoker = CMSSignatureCreationInvoker.getInstance();
+
setUpContexts(RandomStringUtils.randomAlphabetic(10));
}
@@ -89,7 +106,7 @@ public class CadesIntegrationTest extends AbstractIntegrationTest {
false);
// perform test
- final MOAException error = assertThrows(MOAException.class, () -> cadesInvoker.verifyCMSSignature(
+ final MOAException error = assertThrows(MOAException.class, () -> verifyCadesInvoker.verifyCMSSignature(
request));
assertEquals("wrong errorCode", "2203", error.getMessageId());
@@ -105,7 +122,7 @@ public class CadesIntegrationTest extends AbstractIntegrationTest {
false);
// perform test
- final VerifyCMSSignatureResponse result = cadesInvoker.verifyCMSSignature(request);
+ final VerifyCMSSignatureResponse result = verifyCadesInvoker.verifyCMSSignature(request);
// verify result
assertNotNull("verification result", result);
@@ -140,7 +157,7 @@ public class CadesIntegrationTest extends AbstractIntegrationTest {
true);
// perform test
- final VerifyCMSSignatureResponse result = cadesInvoker.verifyCMSSignature(request);
+ final VerifyCMSSignatureResponse result = verifyCadesInvoker.verifyCMSSignature(request);
// verify result
assertNotNull("verification result", result);
@@ -190,7 +207,7 @@ public class CadesIntegrationTest extends AbstractIntegrationTest {
false);
// perform test
- final VerifyCMSSignatureResponse result = cadesInvoker.verifyCMSSignature(request);
+ final VerifyCMSSignatureResponse result = verifyCadesInvoker.verifyCMSSignature(request);
// verify result
assertNotNull("verification result", result);
@@ -225,7 +242,7 @@ public class CadesIntegrationTest extends AbstractIntegrationTest {
true);
// perform test
- final VerifyCMSSignatureResponse result = cadesInvoker.verifyCMSSignature(request);
+ final VerifyCMSSignatureResponse result = verifyCadesInvoker.verifyCMSSignature(request);
// verify result
assertNotNull("verification result", result);
@@ -260,4 +277,95 @@ public class CadesIntegrationTest extends AbstractIntegrationTest {
}
+ @Test
+ public void simpleCmsCreation() throws MOAException, ParserConfigurationException, SAXException, IOException {
+ // build request
+ Element cadesReqXml = DOMUtils.parseXmlNonValidating(
+ CadesIntegrationTest.class.getResourceAsStream("/testdata/cades/createCades_1.xml"));
+ CreateCMSSignatureRequest cadesReq = new CreateCMSSignatureRequestParser().parse(cadesReqXml);
+
+
+ // perform test
+ CreateCMSSignatureResponse cadesResp = signCadesInvoker.createCMSSignature(cadesReq, null);
+
+
+ // validate response
+ assertNotNull("cadesResp", cadesResp);
+ assertNotNull("cadesResp elements", cadesResp.getResponseElements());
+ assertFalse("cadesResp elements", cadesResp.getResponseElements().isEmpty());
+
+ CMSSignatureResponse cades = (CMSSignatureResponse) cadesResp.getResponseElements().get(0);
+ assertNotNull("cades Sig.", cades.getCMSSignature());
+
+ // signature
+ final VerifyCMSSignatureRequest request = buildVerfifyCmsRequest(
+ org.apache.commons.codec.binary.Base64.decodeBase64(cades.getCMSSignature()),
+ "jUnitSigning",
+ false,
+ false);
+
+ // perform test
+ final VerifyCMSSignatureResponse result = verifyCadesInvoker.verifyCMSSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+ assertEquals("wrong result size", 1, result.getResponseElements().size());
+
+ final VerifyCMSSignatureResponseElement cmsResult = (VerifyCMSSignatureResponseElement) result
+ .getResponseElements().get(0);
+ assertEquals("sigCode", 0, cmsResult.getSignatureCheck().getCode());
+ assertEquals("certCode", 0, cmsResult.getCertificateCheck().getCode());
+
+
+ }
+
+ @Test
+ public void simpleCadesCreation() throws MOAException, ParserConfigurationException, SAXException, IOException {
+ // build request
+ Element cadesReqXml = DOMUtils.parseXmlNonValidating(
+ CadesIntegrationTest.class.getResourceAsStream("/testdata/cades/createCades_2.xml"));
+ CreateCMSSignatureRequest cadesReq = new CreateCMSSignatureRequestParser().parse(cadesReqXml);
+
+
+ // perform test
+ CreateCMSSignatureResponse cadesResp = signCadesInvoker.createCMSSignature(cadesReq, null);
+
+
+ // validate response
+ assertNotNull("cadesResp", cadesResp);
+ assertNotNull("cadesResp elements", cadesResp.getResponseElements());
+ assertFalse("cadesResp elements", cadesResp.getResponseElements().isEmpty());
+
+ CMSSignatureResponse cades = (CMSSignatureResponse) cadesResp.getResponseElements().get(0);
+ assertNotNull("cades Sig.", cades.getCMSSignature());
+
+ // signature
+ final VerifyCMSSignatureRequest request = buildVerfifyCmsRequest(
+ org.apache.commons.codec.binary.Base64.decodeBase64(cades.getCMSSignature()),
+ "jUnitSigning",
+ false,
+ true);
+
+ // perform test
+ final VerifyCMSSignatureResponse result = verifyCadesInvoker.verifyCMSSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+ assertEquals("wrong result size", 1, result.getResponseElements().size());
+
+ final VerifyCMSSignatureResponseElement cmsResult = (VerifyCMSSignatureResponseElement) result
+ .getResponseElements().get(0);
+ assertEquals("sigCode", 0, cmsResult.getSignatureCheck().getCode());
+ assertEquals("certCode", 0, cmsResult.getCertificateCheck().getCode());
+
+ assertNotNull("form val. result", cmsResult.getAdESFormResults());
+ assertEquals("form val. result size", 4, cmsResult.getAdESFormResults().size());
+ for (final Object el : cmsResult.getAdESFormResults()) {
+ final AdESFormResults test = (AdESFormResults) el;
+ assertEquals("Find wrong form val status", 1, test.getCode().longValue());
+
+ }
+
+ }
+
}
diff --git a/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/XadesIntegrationTest.java b/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/XadesIntegrationTest.java
index cdbe5ab..ebbc334 100644
--- a/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/XadesIntegrationTest.java
+++ b/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/XadesIntegrationTest.java
@@ -11,6 +11,7 @@ import java.io.IOException;
import java.util.Collections;
import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.TransformerException;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.RandomStringUtils;
@@ -19,21 +20,30 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;
+import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
import at.gv.egovernment.moa.spss.MOAApplicationException;
import at.gv.egovernment.moa.spss.MOAException;
import at.gv.egovernment.moa.spss.api.common.InputData;
+import at.gv.egovernment.moa.spss.api.xmlbind.CreateXMLSignatureRequestParser;
+import at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureRequest;
+import at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureResponse;
+import at.gv.egovernment.moa.spss.api.xmlsign.SignatureEnvironmentResponse;
import at.gv.egovernment.moa.spss.api.xmlverify.AdESFormResults;
import at.gv.egovernment.moa.spss.api.xmlverify.VerifyXMLSignatureRequest;
import at.gv.egovernment.moa.spss.api.xmlverify.VerifyXMLSignatureResponse;
import at.gv.egovernment.moa.spss.server.config.ConfigurationException;
import at.gv.egovernment.moa.spss.server.init.SystemInitializer;
+import at.gv.egovernment.moa.spss.server.invoke.XMLSignatureCreationInvoker;
import at.gv.egovernment.moa.spss.server.invoke.XMLSignatureVerificationInvoker;
+import at.gv.egovernment.moaspss.util.DOMUtils;
@RunWith(BlockJUnit4ClassRunner.class)
public class XadesIntegrationTest extends AbstractIntegrationTest {
- XMLSignatureVerificationInvoker xadesInvoker;
+ XMLSignatureVerificationInvoker xadesVerifyInvoker;
+ XMLSignatureCreationInvoker xadesSignInvoker;
@BeforeClass
public static void classInitializer() throws IOException, ConfigurationException,
@@ -49,7 +59,8 @@ public class XadesIntegrationTest extends AbstractIntegrationTest {
@Before
public void initializer() throws ConfigurationException {
- xadesInvoker = XMLSignatureVerificationInvoker.getInstance();
+ xadesVerifyInvoker = XMLSignatureVerificationInvoker.getInstance();
+ xadesSignInvoker = XMLSignatureCreationInvoker.getInstance();
setUpContexts(RandomStringUtils.randomAlphabetic(10));
}
@@ -66,7 +77,7 @@ public class XadesIntegrationTest extends AbstractIntegrationTest {
null, Collections.emptyMap());
// perform test
- final MOAException error = assertThrows(MOAException.class, () -> xadesInvoker.verifyXMLSignature(
+ final MOAException error = assertThrows(MOAException.class, () -> xadesVerifyInvoker.verifyXMLSignature(
request));
assertEquals("wrong errorCode", "2203", error.getMessageId());
@@ -83,7 +94,7 @@ public class XadesIntegrationTest extends AbstractIntegrationTest {
null, Collections.emptyMap());
// perform test
- final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+ final VerifyXMLSignatureResponse result = xadesVerifyInvoker.verifyXMLSignature(request);
// verify result
assertNotNull("verification result", result);
@@ -116,7 +127,7 @@ public class XadesIntegrationTest extends AbstractIntegrationTest {
null, Collections.emptyMap());
// perform test
- final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+ final VerifyXMLSignatureResponse result = xadesVerifyInvoker.verifyXMLSignature(request);
// verify result
assertNotNull("verification result", result);
@@ -155,5 +166,75 @@ public class XadesIntegrationTest extends AbstractIntegrationTest {
assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
}
+
+ @Test
+ public void simpleXmlSignature() throws MOAException, ParserConfigurationException, SAXException, IOException, TransformerException {
+ // build request
+ Element xml = DOMUtils.parseXmlNonValidating(
+ CadesIntegrationTest.class.getResourceAsStream("/testdata/xades/sign/createXades_1.xml"));
+ CreateXMLSignatureRequest xmlReq = new CreateXMLSignatureRequestParser().parse(xml);
+
+ // create signature
+ CreateXMLSignatureResponse xmlResp = xadesSignInvoker.createXMLSignature(xmlReq, Collections.EMPTY_SET);
+
+
+ // verify response
+ assertNotNull("xadesResp", xmlResp);
+ assertNotNull("xadesResp elements", xmlResp.getResponseElements());
+ assertFalse("xadesResp elements", xmlResp.getResponseElements().isEmpty());
+
+ SignatureEnvironmentResponse signedXml = (SignatureEnvironmentResponse) xmlResp.getResponseElements().get(0);
+ assertNotNull("signed xml", signedXml.getSignatureEnvironment());
+
+
+ // verify signature
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(
+ DOMUtils.serializeNode(signedXml.getSignatureEnvironment()).getBytes(),
+ "jUnitSigning", false, null, DEFAULT_XPATH_SIGNATURE_LOCATION, null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesVerifyInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 0, result.getCertificateCheck().getCode());
+
+ }
+ @Test
+ public void simpleXadesSignature() throws MOAException, ParserConfigurationException, SAXException, IOException, TransformerException {
+ // build request
+ Element xml = DOMUtils.parseXmlNonValidating(
+ CadesIntegrationTest.class.getResourceAsStream("/testdata/xades/sign/createXades_2.xml"));
+ CreateXMLSignatureRequest xmlReq = new CreateXMLSignatureRequestParser().parse(xml);
+
+ // create signature
+ CreateXMLSignatureResponse xmlResp = xadesSignInvoker.createXMLSignature(xmlReq, Collections.EMPTY_SET);
+
+
+ // verify response
+ assertNotNull("xadesResp", xmlResp);
+ assertNotNull("xadesResp elements", xmlResp.getResponseElements());
+ assertFalse("xadesResp elements", xmlResp.getResponseElements().isEmpty());
+
+ SignatureEnvironmentResponse signedXml = (SignatureEnvironmentResponse) xmlResp.getResponseElements().get(0);
+ assertNotNull("signed xml", signedXml.getSignatureEnvironment());
+
+
+ // verify signature
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(
+ DOMUtils.serializeNode(signedXml.getSignatureEnvironment()).getBytes(),
+ "jUnitSigning", false, null, DEFAULT_XPATH_SIGNATURE_LOCATION, null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesVerifyInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 0, result.getCertificateCheck().getCode());
+
+ }
+
}
diff --git a/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/tsl/XadesTslEuTestset02Test.java b/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/tsl/XadesTslEuTestset02Test.java
index 698eb2f..f43ebf8 100644
--- a/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/tsl/XadesTslEuTestset02Test.java
+++ b/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/tsl/XadesTslEuTestset02Test.java
@@ -31,7 +31,12 @@ import at.gv.egovernment.moa.spss.server.init.SystemInitializer;
import at.gv.egovernment.moa.spss.server.invoke.XMLSignatureVerificationInvoker;
import at.gv.egovernment.moa.spss.server.monitoring.ServiceStatusContainer;
import at.gv.egovernment.moa.spss.test.integration.AbstractIntegrationTest;
-
+/**
+ * https://esignature.ec.europa.eu/efda/validation-tests/#/screen/home
+ *
+ * @author tlenz
+ *
+ */
@RunWith(BlockJUnit4ClassRunner.class)
public class XadesTslEuTestset02Test extends AbstractIntegrationTest {
@@ -149,22 +154,24 @@ public class XadesTslEuTestset02Test extends AbstractIntegrationTest {
assertNotNull("signerInfo", result.getSignerInfo());
assertEquals("issuerCC", "BE", result.getSignerInfo().getIssuerCountryCode());
assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
- assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+
+ //because this signature is not on TSL any more --> EC changes the test setup!!!
+ assertFalse("QC", result.getSignerInfo().isQualifiedCertificate());
assertTrue("SSCD", result.getSignerInfo().isSSCD());
- assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getQCSource());
assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
- assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
- assertEquals("TSL CC", "BE", result.getSignerInfo().getTslInfos().getTslIssuerCountry());
- assertEquals("TSL ServiceType", "http://uri.etsi.org/TrstSvc/Svctype/CA/QC",
- result.getSignerInfo().getTslInfos().getServiceTypeIdentifier());
- assertEquals("TSL ServiceStatus", "http://uri.etsi.org/TrstSvc/TrustedList/Svcstatus/granted",
- result.getSignerInfo().getTslInfos().getServiceTypeStatus());
- assertFalse("TSL addit. status", result.getSignerInfo().getTslInfos().getAdditionalServiceInformation()
- .isEmpty());
- assertEquals("TSL addit. status value",
- "http://uri.etsi.org/TrstSvc/TrustedList/SvcInfoExt/ForeSignatures",
- result.getSignerInfo().getTslInfos().getAdditionalServiceInformation().get(0));
+ assertNull("TSL infos", result.getSignerInfo().getTslInfos());
+ //assertEquals("TSL CC", "BE", result.getSignerInfo().getTslInfos().getTslIssuerCountry());
+ //assertEquals("TSL ServiceType", "http://uri.etsi.org/TrstSvc/Svctype/CA/QC",
+ // result.getSignerInfo().getTslInfos().getServiceTypeIdentifier());
+ //assertEquals("TSL ServiceStatus", "http://uri.etsi.org/TrstSvc/TrustedList/Svcstatus/granted",
+ // result.getSignerInfo().getTslInfos().getServiceTypeStatus());
+ //assertFalse("TSL addit. status", result.getSignerInfo().getTslInfos().getAdditionalServiceInformation()
+ // .isEmpty());
+ //assertEquals("TSL addit. status value",
+ // "http://uri.etsi.org/TrstSvc/TrustedList/SvcInfoExt/ForeSignatures",
+ // result.getSignerInfo().getTslInfos().getAdditionalServiceInformation().get(0));
assertNotNull("form val. result", result.getAdESFormResults());
assertNotNull("extended val. result", result.getExtendedCertificateCheck());
diff --git a/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/tsl/XadesTslEuTestset03Test.java b/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/tsl/XadesTslEuTestset03Test.java
index d6a1550..813e1df 100644
--- a/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/tsl/XadesTslEuTestset03Test.java
+++ b/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/tsl/XadesTslEuTestset03Test.java
@@ -33,7 +33,16 @@ import at.gv.egovernment.moa.spss.server.invoke.XMLSignatureVerificationInvoker;
import at.gv.egovernment.moa.spss.server.monitoring.ServiceStatusContainer;
import at.gv.egovernment.moa.spss.test.integration.AbstractIntegrationTest;
+/**
+ * EC changed the Test SET and TSL information!!!!!
+ *
+ * <b>We have to switch to a static version</b>
+ *
+ * @author tlenz
+ *
+ */
@RunWith(BlockJUnit4ClassRunner.class)
+@Ignore
public class XadesTslEuTestset03Test extends AbstractIntegrationTest {
XMLSignatureVerificationInvoker xadesInvoker;