diff options
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.java | 122 |
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()); + + } + + } + } |