aboutsummaryrefslogtreecommitdiff
path: root/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/CadesIntegrationTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/CadesIntegrationTest.java')
-rw-r--r--moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/CadesIntegrationTest.java122
1 files changed, 115 insertions, 7 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());
+
+ }
+
+ }
+
}