diff options
author | Thomas <> | 2021-04-27 20:48:49 +0200 |
---|---|---|
committer | Thomas <> | 2021-04-27 20:48:49 +0200 |
commit | 38c3a15d00414fb3967555481131e55e6a21fbd1 (patch) | |
tree | 76db3b61d459cd3a9b105f6712283b1386de64d9 | |
parent | 45860b07b44777b1ed2c9e76165da20f2655f92d (diff) | |
download | moa-sig-38c3a15d00414fb3967555481131e55e6a21fbd1.tar.gz moa-sig-38c3a15d00414fb3967555481131e55e6a21fbd1.tar.bz2 moa-sig-38c3a15d00414fb3967555481131e55e6a21fbd1.zip |
fix bug in ConfigurationProvider the ignore keyGroups for MOA-SS
add jUnit tests to test signature-creation
20 files changed, 713 insertions, 32 deletions
@@ -72,8 +72,8 @@ where - Mindestanforderung für JAVA 8 - Anpassungen an der TSL Implementierung - - Updates von Bibliotheken zur Stabilitätsverbesserung - - TrustStore Update in der Beispielkonfiguration +- Updates von Bibliotheken zur Stabilitätsverbesserung +- TrustStore Update in der Beispielkonfiguration **v3.1.3** diff --git a/moaSig/build.gradle b/moaSig/build.gradle index bff3147..1cc1551 100644 --- a/moaSig/build.gradle +++ b/moaSig/build.gradle @@ -37,7 +37,7 @@ subprojects { testImplementation 'junit:junit:4.13.2' } - version = '3.1.4-RC2' + version = '3.1.4-RC3' jar { manifest.attributes provider: 'EGIZ', 'Specification-Version': getCheckedOutGitCommitHash(), 'Implementation-Version': project.version } @@ -94,7 +94,7 @@ subprojects { authentication(userName: System.getenv("EGIZ_MAVEN_USER"), password: System.getenv("EGIZ_MAVEN_PASSWORD")) } - snapshotRepository(url: "sftp://apps.egiz.gv.at/maven-snaphot") { + snapshotRepository(url: "sftp://apps.egiz.gv.at/maven-snapshot") { authentication(userName: System.getenv("EGIZ_MAVEN_USER"), password: System.getenv("EGIZ_MAVEN_PASSWORD")) } diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/ConfigurationProvider.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/ConfigurationProvider.java index bffa489..64bd066 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/ConfigurationProvider.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/ConfigurationProvider.java @@ -375,7 +375,7 @@ public class ConfigurationProvider { allKeyModules = new ArrayList(hardwareKeyModules); allKeyModules.addAll(softwareKeyModules); keyGroups = builder.buildKeyGroups(allKeyModules); - builder.buildKeyGroupMappings(keyGroups, ANONYMOUS_ISSUER_SERIAL); + keyGroupMappings = builder.buildKeyGroupMappings(keyGroups, ANONYMOUS_ISSUER_SERIAL); this.connectionTimeout = builder.getConnectionTimeout(); Logger.debug("Set 'Connection-Timeout' to " + String.valueOf(this.connectionTimeout) + "[ms]"); 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; diff --git a/moaSig/moa-sig/src/test/resources/moaspss_config/MOASPSSConfiguration.xml b/moaSig/moa-sig/src/test/resources/moaspss_config/MOASPSSConfiguration.xml index aa9368e..44a04fa 100644 --- a/moaSig/moa-sig/src/test/resources/moaspss_config/MOASPSSConfiguration.xml +++ b/moaSig/moa-sig/src/test/resources/moaspss_config/MOASPSSConfiguration.xml @@ -7,7 +7,35 @@ <cfg:IP>192.168</cfg:IP> </cfg:BlackListUri> </cfg:PermitExternalUris> - </cfg:Common> + </cfg:Common> + + <cfg:SignatureCreation> + <cfg:KeyModules> + <cfg:SoftwareKeyModule> + <cfg:Id>SKM_junit</cfg:Id> + <cfg:FileName>keys/junit_signing.p12</cfg:FileName> + <cfg:Password>nichts</cfg:Password> + </cfg:SoftwareKeyModule> + </cfg:KeyModules> + <cfg:KeyGroup> + <cfg:Id>KG_junit</cfg:Id> + <cfg:Key> + <cfg:KeyModuleId>SKM_junit</cfg:KeyModuleId> + <cfg:KeyCertIssuerSerial> + <dsig:X509IssuerName>CN=MOA-SPSS signing,OU=jUnit Tests,O=EGIZ,C=AT</dsig:X509IssuerName> + <dsig:X509SerialNumber>1619541256</dsig:X509SerialNumber> + </cfg:KeyCertIssuerSerial> + </cfg:Key> + </cfg:KeyGroup> + <cfg:KeyGroupMapping> + <cfg:KeyGroupId>KG_junit</cfg:KeyGroupId> + </cfg:KeyGroupMapping> + <cfg:XMLDSig> + <cfg:CanonicalizationAlgorithm>http://www.w3.org/2001/10/xml-exc-c14n#</cfg:CanonicalizationAlgorithm> + <cfg:DigestMethodAlgorithm>http://www.w3.org/2000/09/xmldsig#sha256</cfg:DigestMethodAlgorithm> + </cfg:XMLDSig> + </cfg:SignatureCreation> + <cfg:SignatureVerification> <cfg:CertificateValidation> <cfg:PathConstruction> @@ -45,6 +73,10 @@ <cfg:Id>MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten</cfg:Id> <cfg:TrustAnchorsLocation>trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten</cfg:TrustAnchorsLocation> </cfg:TrustProfile> + <cfg:TrustProfile> + <cfg:Id>jUnitSigning</cfg:Id> + <cfg:TrustAnchorsLocation>trustProfiles/jUnitSigning</cfg:TrustAnchorsLocation> + </cfg:TrustProfile> </cfg:PathValidation> <cfg:RevocationChecking> <cfg:EnableChecking>false</cfg:EnableChecking> diff --git a/moaSig/moa-sig/src/test/resources/moaspss_config/certstore/subjectdn/09EC246B13947F627EF592995FC0E63691D5333C/B8AD35FEBC854E2FFFF5EA23AF7372B9341D4039 b/moaSig/moa-sig/src/test/resources/moaspss_config/certstore/subjectdn/09EC246B13947F627EF592995FC0E63691D5333C/B8AD35FEBC854E2FFFF5EA23AF7372B9341D4039 Binary files differnew file mode 100644 index 0000000..dc94677 --- /dev/null +++ b/moaSig/moa-sig/src/test/resources/moaspss_config/certstore/subjectdn/09EC246B13947F627EF592995FC0E63691D5333C/B8AD35FEBC854E2FFFF5EA23AF7372B9341D4039 diff --git a/moaSig/moa-sig/src/test/resources/moaspss_config/keys/junit_signing.crt b/moaSig/moa-sig/src/test/resources/moaspss_config/keys/junit_signing.crt new file mode 100644 index 0000000..fcc10a6 --- /dev/null +++ b/moaSig/moa-sig/src/test/resources/moaspss_config/keys/junit_signing.crt @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDETCCAfkCBGCIPQgwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQxDTAL +BgNVBAoMBEVHSVoxFDASBgNVBAsMC2pVbml0IFRlc3RzMRkwFwYDVQQDDBBNT0Et +U1BTUyBzaWduaW5nMB4XDTIxMDQyNzE2MzQxNloXDTQ4MDkxMTE2MzQxNlowTTEL +MAkGA1UEBhMCQVQxDTALBgNVBAoMBEVHSVoxFDASBgNVBAsMC2pVbml0IFRlc3Rz +MRkwFwYDVQQDDBBNT0EtU1BTUyBzaWduaW5nMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAr8tSafwFaLIOC0lzkN5Ymkuq9AXM3S7eBcO4i6U/QEPiTf5l +m+INTIsLqzFwXrkeJgHTR0CbdMkp/CFKjYbLnyc17jq9gGiFNvWYTIon17Tmy+ri +W8/8mWAADvBe4dyjelSQW0MBOV4pzeFWc5NlDyW2Jp1J77PYPb7muPY2RmS/38WD +ttRkz1nXOnibray2ZKz26hqnW1T3Om1s30EOB2+xMGhhBgdQ9+PdBn61HlP4UwN1 +RRWnLRaNkFTEnTK+YQEQF1LlGhriwCdfdGu65XTBWdGpXZoR9pjEGYzkF/UrYBAz +r0QSeXCM076uWT8/mJZOpxuBVBUukTZhQuf5uwIDAQABMA0GCSqGSIb3DQEBCwUA +A4IBAQAHBLlRY4dpmr8Pwp8rst0mzmRhIvm3MV2+D4K6ekLwDi/y1bMzSfyTXfLT +wLOCScYvwBfF1Fng5WylGbE69si1G7baq+VAbglTXyP5Hs/eLt9boGWAiFUz49o/ +2O4f89BWFY18zRg5ptDl5KNbcW9L0kOmHGsVwqJcKAT+6c3J15NV1IiUf3voE9LV +D4ita8he8/emHPRJxILVRNi6imx6O5cKGy+Sar2gK25Wc20oRAnSX/w9bpnQpJyh +Gp41K5taSZkPsm0wWBmvnJhA0TKA5ODeoqQD+eeQWC+I52dfAqEiwT76gWBSnhp1 +9yfgJqYU0ylD4DRlJ9S5krMhqbMl +-----END CERTIFICATE----- diff --git a/moaSig/moa-sig/src/test/resources/moaspss_config/keys/junit_signing.p12 b/moaSig/moa-sig/src/test/resources/moaspss_config/keys/junit_signing.p12 Binary files differnew file mode 100644 index 0000000..93c67e7 --- /dev/null +++ b/moaSig/moa-sig/src/test/resources/moaspss_config/keys/junit_signing.p12 diff --git a/moaSig/moa-sig/src/test/resources/moaspss_config/profiles/MOA-SPSS_signing.crt b/moaSig/moa-sig/src/test/resources/moaspss_config/profiles/MOA-SPSS_signing.crt new file mode 100644 index 0000000..fcc10a6 --- /dev/null +++ b/moaSig/moa-sig/src/test/resources/moaspss_config/profiles/MOA-SPSS_signing.crt @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDETCCAfkCBGCIPQgwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQxDTAL +BgNVBAoMBEVHSVoxFDASBgNVBAsMC2pVbml0IFRlc3RzMRkwFwYDVQQDDBBNT0Et +U1BTUyBzaWduaW5nMB4XDTIxMDQyNzE2MzQxNloXDTQ4MDkxMTE2MzQxNlowTTEL +MAkGA1UEBhMCQVQxDTALBgNVBAoMBEVHSVoxFDASBgNVBAsMC2pVbml0IFRlc3Rz +MRkwFwYDVQQDDBBNT0EtU1BTUyBzaWduaW5nMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAr8tSafwFaLIOC0lzkN5Ymkuq9AXM3S7eBcO4i6U/QEPiTf5l +m+INTIsLqzFwXrkeJgHTR0CbdMkp/CFKjYbLnyc17jq9gGiFNvWYTIon17Tmy+ri +W8/8mWAADvBe4dyjelSQW0MBOV4pzeFWc5NlDyW2Jp1J77PYPb7muPY2RmS/38WD +ttRkz1nXOnibray2ZKz26hqnW1T3Om1s30EOB2+xMGhhBgdQ9+PdBn61HlP4UwN1 +RRWnLRaNkFTEnTK+YQEQF1LlGhriwCdfdGu65XTBWdGpXZoR9pjEGYzkF/UrYBAz +r0QSeXCM076uWT8/mJZOpxuBVBUukTZhQuf5uwIDAQABMA0GCSqGSIb3DQEBCwUA +A4IBAQAHBLlRY4dpmr8Pwp8rst0mzmRhIvm3MV2+D4K6ekLwDi/y1bMzSfyTXfLT +wLOCScYvwBfF1Fng5WylGbE69si1G7baq+VAbglTXyP5Hs/eLt9boGWAiFUz49o/ +2O4f89BWFY18zRg5ptDl5KNbcW9L0kOmHGsVwqJcKAT+6c3J15NV1IiUf3voE9LV +D4ita8he8/emHPRJxILVRNi6imx6O5cKGy+Sar2gK25Wc20oRAnSX/w9bpnQpJyh +Gp41K5taSZkPsm0wWBmvnJhA0TKA5ODeoqQD+eeQWC+I52dfAqEiwT76gWBSnhp1 +9yfgJqYU0ylD4DRlJ9S5krMhqbMl +-----END CERTIFICATE----- diff --git a/moaSig/moa-sig/src/test/resources/moaspss_config/trustProfiles/jUnitSigning/junit_signing.crt b/moaSig/moa-sig/src/test/resources/moaspss_config/trustProfiles/jUnitSigning/junit_signing.crt new file mode 100644 index 0000000..fcc10a6 --- /dev/null +++ b/moaSig/moa-sig/src/test/resources/moaspss_config/trustProfiles/jUnitSigning/junit_signing.crt @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDETCCAfkCBGCIPQgwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQxDTAL +BgNVBAoMBEVHSVoxFDASBgNVBAsMC2pVbml0IFRlc3RzMRkwFwYDVQQDDBBNT0Et +U1BTUyBzaWduaW5nMB4XDTIxMDQyNzE2MzQxNloXDTQ4MDkxMTE2MzQxNlowTTEL +MAkGA1UEBhMCQVQxDTALBgNVBAoMBEVHSVoxFDASBgNVBAsMC2pVbml0IFRlc3Rz +MRkwFwYDVQQDDBBNT0EtU1BTUyBzaWduaW5nMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAr8tSafwFaLIOC0lzkN5Ymkuq9AXM3S7eBcO4i6U/QEPiTf5l +m+INTIsLqzFwXrkeJgHTR0CbdMkp/CFKjYbLnyc17jq9gGiFNvWYTIon17Tmy+ri +W8/8mWAADvBe4dyjelSQW0MBOV4pzeFWc5NlDyW2Jp1J77PYPb7muPY2RmS/38WD +ttRkz1nXOnibray2ZKz26hqnW1T3Om1s30EOB2+xMGhhBgdQ9+PdBn61HlP4UwN1 +RRWnLRaNkFTEnTK+YQEQF1LlGhriwCdfdGu65XTBWdGpXZoR9pjEGYzkF/UrYBAz +r0QSeXCM076uWT8/mJZOpxuBVBUukTZhQuf5uwIDAQABMA0GCSqGSIb3DQEBCwUA +A4IBAQAHBLlRY4dpmr8Pwp8rst0mzmRhIvm3MV2+D4K6ekLwDi/y1bMzSfyTXfLT +wLOCScYvwBfF1Fng5WylGbE69si1G7baq+VAbglTXyP5Hs/eLt9boGWAiFUz49o/ +2O4f89BWFY18zRg5ptDl5KNbcW9L0kOmHGsVwqJcKAT+6c3J15NV1IiUf3voE9LV +D4ita8he8/emHPRJxILVRNi6imx6O5cKGy+Sar2gK25Wc20oRAnSX/w9bpnQpJyh +Gp41K5taSZkPsm0wWBmvnJhA0TKA5ODeoqQD+eeQWC+I52dfAqEiwT76gWBSnhp1 +9yfgJqYU0ylD4DRlJ9S5krMhqbMl +-----END CERTIFICATE----- diff --git a/moaSig/moa-sig/src/test/resources/moaspss_config/tslworking/trust/eu/EU_Test_TSL_2_1.crt b/moaSig/moa-sig/src/test/resources/moaspss_config/tslworking/trust/eu/EU_Test_TSL_2_1.crt new file mode 100644 index 0000000..5734a7f --- /dev/null +++ b/moaSig/moa-sig/src/test/resources/moaspss_config/tslworking/trust/eu/EU_Test_TSL_2_1.crt @@ -0,0 +1,3 @@ +-----BEGIN CERTIFICATE----- +MIIDRjCCAi6gAwIBAgIBATANBgkqhkiG9w0BAQ0FADBVMRQwEgYDVQQDDAtDRVJULUxPVEwtMjEYMBYGA1UECgwPRVUgT3JnYW5pemF0aW9uMRYwFAYDVQQLDA1DRVJUIEZPUiBURVNUMQswCQYDVQQGEwJMVTAeFw0yMDA0MjQyMzAwMDZaFw0yMjA0MjQyMzAwMDZaMFUxFDASBgNVBAMMC0NFUlQtTE9UTC0yMRgwFgYDVQQKDA9FVSBPcmdhbml6YXRpb24xFjAUBgNVBAsMDUNFUlQgRk9SIFRFU1QxCzAJBgNVBAYTAkxVMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwmTKwpsl/UtiYo3mWUIiKn40QIJ6wv5wM9hty734M+ZZWxEIOKlMiIUo2nzWzMAJg4voCGScq+B5Cgtq+8M1QgLjeCnbUbCJtBgV9uAyn41zG66VhtxVVab8pAFBG3sRVphggWYZ/Y2j7AfpaVQDa14bFa9GfLze/yJnXJWHeabAZoLbKSIKiTRy/K9sw8DfBLFY0cjg3yHJktiw6KdkVd4tbfcNGKzL9UkHEwAfWpi41dKzmhBg3iyHkpmgeJSFK3zR4NCm0vIrDroiOwjQRuQLqKNk7cT6wJ5R6TJU0Pbd5MhWXwm40eGdFG8s0/VDuiUqRqCAZx/g0ZO3h6FIbQIDAQABoyEwHzAdBgNVHQ4EFgQUEZ9FMd7u5mrjSep0MuKiY4rSIxswDQYJKoZIhvcNAQENBQADggEBAE/nmC1Q6GG5B2k26SNtdqZbUnYV5iKeLzQXpt8TsloAA1e9jaRXEhlMSJWAL3HMU/KAvOu7xGAsF7mgb/yzdNZBL47RQ2OxzBINLbDEkQ66kVHZlgYKvEht8GfQfNRzC4c9drgUsL4jNSz6znAfCa5ZtdkxuvownboioJwJ1OK02hjiIn4m4bPNOboCWb7O7z3nFrMWO4viRNM/P3AMyzifOJSRduJWrRoVJ85zshpu3QinqUgyEVzhK7MNq5Ex5bTqCnWd7uiws2kq53hzQSZYCXy8S/86mw2q+ksCpEtbB+WY9lxRwcd//6bY0HxF7NSYCVh7epv6s4cpX5s1xTg= +-----END CERTIFICATE----- diff --git a/moaSig/moa-sig/src/test/resources/moaspss_config/tslworking/trust/eu/EU_Test_TSL_3_1.crt b/moaSig/moa-sig/src/test/resources/moaspss_config/tslworking/trust/eu/EU_Test_TSL_3_1.crt new file mode 100644 index 0000000..9596869 --- /dev/null +++ b/moaSig/moa-sig/src/test/resources/moaspss_config/tslworking/trust/eu/EU_Test_TSL_3_1.crt @@ -0,0 +1,3 @@ +-----BEGIN CERTIFICATE----- +MIIDRjCCAi6gAwIBAgIBATANBgkqhkiG9w0BAQ0FADBVMRQwEgYDVQQDDAtDRVJULUxPVEwtMzEYMBYGA1UECgwPRVUgT3JnYW5pemF0aW9uMRYwFAYDVQQLDA1DRVJUIEZPUiBURVNUMQswCQYDVQQGEwJMVTAeFw0yMDA0MjQyMzAwMDBaFw0yMjA0MjQyMzAwMDBaMFUxFDASBgNVBAMMC0NFUlQtTE9UTC0zMRgwFgYDVQQKDA9FVSBPcmdhbml6YXRpb24xFjAUBgNVBAsMDUNFUlQgRk9SIFRFU1QxCzAJBgNVBAYTAkxVMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtsnEky5JX96BZUuEO1121mPiY6aUyV/NL4TBEesupxzkXebi+mjmkK4ygqdMk/cqbJH6GaLLpFHdKfCGIdwTCEP3NWsnwKcRDE4rcMUDLNQcP60QbXkYWERnXVE/2mnlY0iGnfm+g9Euiq0vspaMr7uBiSWSelUMbGReO2sH2+0oaUgvC7F7A7OsmPpqBy94Y8+VhIuDnJY9I2ffqz3VA42R9mXHbjptXaf0AMGh0LR4Lhs83tjKtkpLvqvZxVwJnUzw/bHV5ZKzAsbGfq03Lx30dhET3OYcG7Bjv4w9lB/pvpomU2SpuItPVz+68rSCHi96a8/UvGWoukjGyNNwdwIDAQABoyEwHzAdBgNVHQ4EFgQUZEbJrRNBlBJ9/iv4OS0QenI8AvAwDQYJKoZIhvcNAQENBQADggEBAGhsZAK25NZ/EfFgjhiKxDpQ7Nbjr7f27F/Sww/W1Uxt/Ka1lvmFpn9GxndQiUAOE9aEH9XLFyPtTqKCZtecVFI9iD1+0dtrssnVwZiPl6CWSqBdm+YKbn5+3bdHYNnBuRog4B6Ca9RdW+ecB0CIFIRIom/3OwJHbQWa2zQTb3HoTOWmYlTirfqvzPzPaiqqP0E0rNESaCwVWRKDQ0V2j/259ot1+KCC5/LVJZxY5tnmMOyvgy9hsSmRetm27ofVcAiHmaybLlbn4knw71hzk8u1VPPUkf7tjWYR9H/LZkBFLRiQXcA5XkM9FV1zPYHh1BH8ILMg2OgrP6Ij2vBF8ZI= +-----END CERTIFICATE----- diff --git a/moaSig/moa-sig/src/test/resources/moaspss_config/tslworking/trust/eu/tsl_cert_20210427_2.crt b/moaSig/moa-sig/src/test/resources/moaspss_config/tslworking/trust/eu/tsl_cert_20210427_2.crt new file mode 100644 index 0000000..24c6d73 --- /dev/null +++ b/moaSig/moa-sig/src/test/resources/moaspss_config/tslworking/trust/eu/tsl_cert_20210427_2.crt @@ -0,0 +1,3 @@ +-----BEGIN CERTIFICATE----- +MIIG7zCCBNegAwIBAgIQEAAAAAAAnuXHXttK9Tyf2zANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQGEwJCRTERMA8GA1UEBxMIQnJ1c3NlbHMxHDAaBgNVBAoTE0NlcnRpcG9zdCBOLlYuL1MuQS4xEzARBgNVBAMTCkNpdGl6ZW4gQ0ExDzANBgNVBAUTBjIwMTgwMzAeFw0xODA2MDEyMjA0MTlaFw0yODA1MzAyMzU5NTlaMHAxCzAJBgNVBAYTAkJFMSMwIQYDVQQDExpQYXRyaWNrIEtyZW1lciAoU2lnbmF0dXJlKTEPMA0GA1UEBBMGS3JlbWVyMRUwEwYDVQQqEwxQYXRyaWNrIEplYW4xFDASBgNVBAUTCzcyMDIwMzI5OTcwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr7g7VriDY4as3R4LPOg7uPH5inHzaVMOwFb/8YOW+9IVMHz/V5dJAzeTKvhLG5S4Pk6Kd2E+h18FlRonp70Gv2+ijtkPk7ZQkfez0ycuAbLXiNx2S7fc5GG9LGJafDJgBgTQuQm1aDVLDQ653mqR5tAO+gEf6vs4zRESL3MkYXAUq+S/WocEaGpIheNVAF3iPSkvEe3LvUjF/xXHWF4aMvqGK6kXGseaTcn9hgTbceuW2PAiEr+eDTNczkwGBDFXwzmnGFPMRez3ONk/jIKhha8TylDSfI/MX3ODt0dU3jvJEKPIfUJixBPehxMJMwWxTjFbNu/CK7tJ8qT2i1S4VQIDAQABo4ICjzCCAoswHwYDVR0jBBgwFoAU2TQhPjpCJW3hu7++R0z4Aq3jL1QwcwYIKwYBBQUHAQEEZzBlMDkGCCsGAQUFBzAChi1odHRwOi8vY2VydHMuZWlkLmJlbGdpdW0uYmUvY2l0aXplbjIwMTgwMy5jcnQwKAYIKwYBBQUHMAGGHGh0dHA6Ly9vY3NwLmVpZC5iZWxnaXVtLmJlLzIwggEjBgNVHSAEggEaMIIBFjCCAQcGB2A4DAEBAgEwgfswLAYIKwYBBQUHAgEWIGh0dHA6Ly9yZXBvc2l0b3J5LmVpZC5iZWxnaXVtLmJlMIHKBggrBgEFBQcCAjCBvQyBukdlYnJ1aWsgb25kZXJ3b3JwZW4gYWFuIGFhbnNwcmFrZWxpamtoZWlkc2JlcGVya2luZ2VuLCB6aWUgQ1BTIC0gVXNhZ2Ugc291bWlzIMOgIGRlcyBsaW1pdGF0aW9ucyBkZSByZXNwb25zYWJpbGl0w6ksIHZvaXIgQ1BTIC0gVmVyd2VuZHVuZyB1bnRlcmxpZWd0IEhhZnR1bmdzYmVzY2hyw6Rua3VuZ2VuLCBnZW3DpHNzIENQUzAJBgcEAIvsQAECMDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwuZWlkLmJlbGdpdW0uYmUvZWlkYzIwMTgwMy5jcmwwDgYDVR0PAQH/BAQDAgZAMBMGA1UdJQQMMAoGCCsGAQUFBwMEMGwGCCsGAQUFBwEDBGAwXjAIBgYEAI5GAQEwCAYGBACORgEEMDMGBgQAjkYBBTApMCcWIWh0dHBzOi8vcmVwb3NpdG9yeS5laWQuYmVsZ2l1bS5iZRMCZW4wEwYGBACORgEGMAkGBwQAjkYBBgEwDQYJKoZIhvcNAQELBQADggIBACBY+OLhM7BryzXWklDUh9UK1+cDVboPg+lN1Et1lAEoxV4y9zuXUWLco9t8M5WfDcWFfDxyhatLedku2GurSJ1t8O/knDwLLyoJE1r2Db9VrdG+jtST+j/TmJHAX3yNWjn/9dsjiGQQuTJcce86rlzbGdUqjFTt5mGMm4zy4l/wKy6XiDKiZT8cFcOTevsl+l/vxiLiDnghOwTztVZhmWExeHG9ypqMFYmIucHQ0SFZre8mv3c7Df+VhqV/sY9xLERK3Ffk4l6B5qRPygImXqGzNSWiDISdYeUf4XoZLXJBEP7/36r4mlnP2NWQ+c1ORjesuDAZ8tD/yhMvR4DVG95EScjpTYv1wOmVB2lQrWnEtygZIi60HXfozo8uOekBnqWyDc1kuizZsYRfVNlwhCu7RsOq4zN8gkael0fejuSNtBf2J9A+rc9LQeu6AcdPauWmbxtJV93H46pFptsR8zXo+IJn5m2P9QPZ3mvDkzldNTGLG+ukhN7IF2CCcagt/WoVZLq3qKC35WVcqeoSMEE/XeSrf3/mIJ1OyFQm+tsfhTceOFDXuUgl3E86bR/f8Ur/bapwXpWpFxGIpXLGaJXbzQGSTtyNEYrdENlh71I3OeYdw3xmzU2B3tbaWREOXtj2xjyW2tIv+vvHG6sloR1QkIkGMFfzsT7W5U6ILetv +-----END CERTIFICATE----- diff --git a/moaSig/moa-sig/src/test/resources/testdata/cades/createCades_1.xml b/moaSig/moa-sig/src/test/resources/testdata/cades/createCades_1.xml new file mode 100644 index 0000000..5fe8e43 --- /dev/null +++ b/moaSig/moa-sig/src/test/resources/testdata/cades/createCades_1.xml @@ -0,0 +1,15 @@ +<ns:CreateCMSSignatureRequest xmlns:ns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + <ns:KeyIdentifier>KG_junit</ns:KeyIdentifier> + <ns:SingleSignatureInfo SecurityLayerConformity="false" PAdESConformity="false"> + <ns:DataObjectInfo Structure="enveloping"> + <ns:DataObject> + <ns:MetaInfo> + <ns:MimeType>application/securitylayer2+json</ns:MimeType> + </ns:MetaInfo> + <ns:Content> + <ns:Base64Content>ew0KICAiYXBwSWQiOiAiaHR0cHM6Ly9kZW1vU1AiLA0KICAiZnJpZW5kbHlOYW1lIjogIkZpcnN0IERlbW8gU1AiLA0KICAiY291bnRyeUNvZGUiOiAiQVQiLA0KICAiYXV0aCI6IHsNCiAgICAicHJvY2Vzc0lkIjogImFhYmJjY2RkZWVmZjEyMzQiLA0KICAgICJ1cm46b2lkOjEuMi40MC4wLjEwLjIuMS4xLjI2MS45MCI6ICIxMWFhMjJiYjMzY2M0NGVlIg0KICB9LA0KICAiYXR0cmlidXRlcyI6IHsNCiAgICAidXJuOm9pZDoxLjIuNDAuMC4xMC4yLjEuMS4yNjEuMjAiOiAiTmFjaG5hbWUiLA0KICAgICJ1cm46b2lkOjIuNS40LjQyIjogIlZvcm5hbWUiLA0KICAgICJ1cm46b2lkOjEuMi40MC4wLjEwLjIuMS4xLjU1IjogIkdlYnVydHNkYXR1bSIsDQogICAgInVybjpvaWQ6MS4yLjQwLjAuMTAuMi4xLjEuMTQ5IjogIkJlcmVpY2hzc3BlemlmaXNjaGVzIFBlcnNvbmVua2VubnplaWNoZW4iDQogIH0sDQogICJjb25zdHJhaW5zIjogew0KICAgICJ2YWxpZEZyb20iOiAiMjAxOS0wNC0yOVQwODo1MDo1Ni40NTBaIiwNCiAgICAidmFsaWRUbyI6ICIyMDE5LTA0LTI5VDA5OjUwOjU2LjQ1MFoiDQogIH0sDQogICJ2aWV3Ijogew0KICAgICJ0ZW1wbGF0ZVVSSSI6ICJ3d3cuaGFuZHktc2lnbmF0dXIuYXQvc2VjdXJpdHlsYXllcjIvdGVtcGxhdGUvMjM3NCIsDQogICAgImhhc2hUZW1wbGF0ZSI6ICJBZDkxMmphaGdsYXNkPSINCiAgfQ0KfQ==</ns:Base64Content> + </ns:Content> + </ns:DataObject> + </ns:DataObjectInfo> + </ns:SingleSignatureInfo> + </ns:CreateCMSSignatureRequest> diff --git a/moaSig/moa-sig/src/test/resources/testdata/cades/createCades_2.xml b/moaSig/moa-sig/src/test/resources/testdata/cades/createCades_2.xml new file mode 100644 index 0000000..c9d3e60 --- /dev/null +++ b/moaSig/moa-sig/src/test/resources/testdata/cades/createCades_2.xml @@ -0,0 +1,15 @@ +<ns:CreateCMSSignatureRequest xmlns:ns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + <ns:KeyIdentifier>KG_junit</ns:KeyIdentifier> + <ns:SingleSignatureInfo SecurityLayerConformity="true" PAdESConformity="false"> + <ns:DataObjectInfo Structure="enveloping"> + <ns:DataObject> + <ns:MetaInfo> + <ns:MimeType>application/securitylayer2+json</ns:MimeType> + </ns:MetaInfo> + <ns:Content> + <ns:Base64Content>ew0KICAiYXBwSWQiOiAiaHR0cHM6Ly9kZW1vU1AiLA0KICAiZnJpZW5kbHlOYW1lIjogIkZpcnN0IERlbW8gU1AiLA0KICAiY291bnRyeUNvZGUiOiAiQVQiLA0KICAiYXV0aCI6IHsNCiAgICAicHJvY2Vzc0lkIjogImFhYmJjY2RkZWVmZjEyMzQiLA0KICAgICJ1cm46b2lkOjEuMi40MC4wLjEwLjIuMS4xLjI2MS45MCI6ICIxMWFhMjJiYjMzY2M0NGVlIg0KICB9LA0KICAiYXR0cmlidXRlcyI6IHsNCiAgICAidXJuOm9pZDoxLjIuNDAuMC4xMC4yLjEuMS4yNjEuMjAiOiAiTmFjaG5hbWUiLA0KICAgICJ1cm46b2lkOjIuNS40LjQyIjogIlZvcm5hbWUiLA0KICAgICJ1cm46b2lkOjEuMi40MC4wLjEwLjIuMS4xLjU1IjogIkdlYnVydHNkYXR1bSIsDQogICAgInVybjpvaWQ6MS4yLjQwLjAuMTAuMi4xLjEuMTQ5IjogIkJlcmVpY2hzc3BlemlmaXNjaGVzIFBlcnNvbmVua2VubnplaWNoZW4iDQogIH0sDQogICJjb25zdHJhaW5zIjogew0KICAgICJ2YWxpZEZyb20iOiAiMjAxOS0wNC0yOVQwODo1MDo1Ni40NTBaIiwNCiAgICAidmFsaWRUbyI6ICIyMDE5LTA0LTI5VDA5OjUwOjU2LjQ1MFoiDQogIH0sDQogICJ2aWV3Ijogew0KICAgICJ0ZW1wbGF0ZVVSSSI6ICJ3d3cuaGFuZHktc2lnbmF0dXIuYXQvc2VjdXJpdHlsYXllcjIvdGVtcGxhdGUvMjM3NCIsDQogICAgImhhc2hUZW1wbGF0ZSI6ICJBZDkxMmphaGdsYXNkPSINCiAgfQ0KfQ==</ns:Base64Content> + </ns:Content> + </ns:DataObject> + </ns:DataObjectInfo> + </ns:SingleSignatureInfo> + </ns:CreateCMSSignatureRequest> diff --git a/moaSig/moa-sig/src/test/resources/testdata/xades/sign/createXades_1.xml b/moaSig/moa-sig/src/test/resources/testdata/xades/sign/createXades_1.xml new file mode 100644 index 0000000..dfe735a --- /dev/null +++ b/moaSig/moa-sig/src/test/resources/testdata/xades/sign/createXades_1.xml @@ -0,0 +1,286 @@ +<CreateXMLSignatureRequest xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + <KeyIdentifier>KG_junit</KeyIdentifier> + <SingleSignatureInfo SecurityLayerConformity="false"> + <DataObjectInfo Structure="detached"> + <DataObject Reference=""> + </DataObject> + <CreateTransformsInfoProfile> + <CreateTransformsInfo> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </dsig:Transforms> + <FinalDataMetaInfo> + <MimeType>text/plain</MimeType> + </FinalDataMetaInfo> + </CreateTransformsInfo> + </CreateTransformsInfoProfile> + </DataObjectInfo> + <CreateSignatureInfo> + <CreateSignatureEnvironment> + +<Base64Content>PEVudGl0eURlc2NyaXB0b3IgIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6bWV0 +YWRhdGEiIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiB4bWxu +czpzaGlibWQ9InVybjptYWNlOnNoaWJib2xldGg6bWV0YWRhdGE6MS4wIiB4bWxuczp4bWw9Imh0 +dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIgeG1sbnM6bWR1aT0idXJuOm9hc2lz +Om5hbWVzOnRjOlNBTUw6bWV0YWRhdGE6dWkiIHhtbG5zOnJlcS1hdHRyPSJ1cm46b2FzaXM6bmFt +ZXM6dGM6U0FNTDpwcm90b2NvbDpleHQ6cmVxLWF0dHIiIGVudGl0eUlEPSJodHRwczovL2xhYmRh +LmlhaWsudHVncmF6LmF0OjY0NDMvaWRwL3NoaWJib2xldGgiPg0KDQogICAgPElEUFNTT0Rlc2Ny +aXB0b3IgcHJvdG9jb2xTdXBwb3J0RW51bWVyYXRpb249InVybjpvYXNpczpuYW1lczp0YzpTQU1M +OjIuMDpwcm90b2NvbCB1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoxLjE6cHJvdG9jb2wgdXJuOm1h +Y2U6c2hpYmJvbGV0aDoxLjAiPg0KDQogICAgICAgIDxFeHRlbnNpb25zPg0KICAgICAgICAgICAg +PHNoaWJtZDpTY29wZSByZWdleHA9ImZhbHNlIj5lZ2l6Lmd2LmF0PC9zaGlibWQ6U2NvcGU+DQo8 +IS0tDQogICAgRmlsbCBpbiB0aGUgZGV0YWlscyBmb3IgeW91ciBJZFAgaGVyZSANCiAgICAtLT4N +CiAgICAgICAgICAgIDxtZHVpOlVJSW5mbz4NCiAgICAgICAgICAgICAgICA8bWR1aTpEaXNwbGF5 +TmFtZSB4bWw6bGFuZz0iZW4iPkRlbW8gSWRQIGF0IGxhYmRhLmlhaWsudHVncmF6LmF0OjY0NDM8 +L21kdWk6RGlzcGxheU5hbWU+DQogICAgICAgICAgICAgICAgPG1kdWk6RGVzY3JpcHRpb24geG1s +Omxhbmc9ImVuIj5TaGliYm9sZXRoIElkUCBsYWJkYS5pYWlrLnR1Z3Jhei5hdDo2NDQzPC9tZHVp +OkRlc2NyaXB0aW9uPg0KICAgICAgICAgICAgICAgIDwhLS0gPG1kdWk6TG9nbyBoZWlnaHQ9Ijgw +IiB3aWR0aD0iODAiPmh0dHBzOi8vbGFiZGEuaWFpay50dWdyYXouYXQ6NjQ0My9QYXRoL1RvL0xv +Z28ucG5nPC9tZHVpOkxvZ28+IC0tPg0KICAgICAgICAgICAgPC9tZHVpOlVJSW5mbz4NCg0KICAg +ICAgICA8L0V4dGVuc2lvbnM+DQoNCiAgICAgICAgPCEtLSBGaXJzdCBzaWduaW5nIGNlcnRpZmlj +YXRlIGlzIEJhY2tDaGFubmVsLCB0aGUgU2Vjb25kIGlzIEZyb250Q2hhbm5lbCAtLT4NCiAgICAg +ICAgPEtleURlc2NyaXB0b3IgdXNlPSJzaWduaW5nIj4NCiAgICAgICAgICAgIDxkczpLZXlJbmZv +Pg0KICAgICAgICAgICAgICAgICAgICA8ZHM6WDUwOURhdGE+DQogICAgICAgICAgICAgICAgICAg +ICAgICA8ZHM6WDUwOUNlcnRpZmljYXRlPg0KTUlJRUpEQ0NBb3lnQXdJQkFnSVZBTWMrUFByY2NC +TlZFb0pTVTQ4djdpeTg2YjVYTUEwR0NTcUdTSWIzRFFFQg0KQ3dVQU1Ca3hGekFWQmdOVkJBTU1E +bVZwWkM1bFoybDZMbWQyTG1GME1CNFhEVEU1TURJeE9ERXpNek16T1ZvWA0KRFRNNU1ESXhPREV6 +TXpNek9Wb3dHVEVYTUJVR0ExVUVBd3dPWldsa0xtVm5hWG91WjNZdVlYUXdnZ0dpTUEwRw0KQ1Nx +R1NJYjNEUUVCQVFVQUE0SUJqd0F3Z2dHS0FvSUJnUUNsRk4vczM2RnBjYTExaG1VQ0VLZEM5R25O +eU0yYw0KSWdYYjdzOUJwdk9aQkdFVEkwMGhBQ3lUTGtLQlFKR1NZK0dnVlhIK1p1MmpXSEF0Vjdz +T2c3U2wrM1NQN0tkMw0KUmw0TnBzcUV6dkpoWXp2TFNlcWpPTW9uUk5aOWN0RmR0Y0tEeXU1dWx2 +UHRaZSs0dXRIUzRHUUpOR3lXYStPdw0KQjNzUE9kUXkyaVlKM2NaSU9jUGNDbGVRaFROaTV1anVZ +TVFidDIyNS8xeDlnZnNCbklEUFh6OHFxV1ZKOTQ1bg0KeG10eXNuRXJsTXlXd21PSnZnL1hVbWxm +dEhaTDRMSkdGYWh1bmdLY0tKNVUrR2Y0bjRRcTdvQTFPMzUxcHB0Mg0KYXFKZmxRVE9uaU4vMW83 +aThEQ3B3MzVRWVJLNEdsdmtGaG1OQ1cxanhOdzloV3hMTjQ0RVlhc3JETWs0ZHkzNQ0KdXBVaWNs +SXRvbGU0Mm83Z0Y2YVJFQjV6QjFBUDQwNkxCZno2NVN6anNLNVFZS3JsVDNqbVdoR3Z1ZXhlV0hh +aA0KakJKM3VocnloRzJWV0xFME5RU0s2NW9ORHZTTkJielpvSDlVQW5xT0FUN3RZRXJWbWN3UmN0 +bnpwU25CS1ZJcA0Kem1abkpGRHFKNHFFU2pxamw2YzRtTkk3dTlncHBTczNHK1VDQXdFQUFhTmpN +R0V3SFFZRFZSME9CQllFRkw3Vg0KcmxSWHlTUVh0VU83R284WTEzdFNRNTJCTUVBR0ExVWRFUVE1 +TURlQ0RtVnBaQzVsWjJsNkxtZDJMbUYwaGlWbw0KZEhSd2N6b3ZMMlZwWkM1bFoybDZMbWQyTG1G +MEwybGtjQzl6YUdsaVltOXNaWFJvTUEwR0NTcUdTSWIzRFFFQg0KQ3dVQUE0SUJnUUFMaVdpaUhn +aGNhWDFTcGhrbTFEaVhVMmJhZlNCMGgyVlpycFFpVXdoQldCWC9XZDRjRlJneg0KazEvUm4xL0ht +TFZlNUdOQzZmb2VyQU1tLzQwZ2tUY3VKTmZwdFB1YU96UVJXaUo2VmZPcW1QOFhpTW9tQmVsMw0K +WDFjczRuaVVEKytMREtVakJTbG94ZWFwZW9KUVV4VDBnNzlJTGJQTTFLdGpNMm9ESHBXR0ZxOEdY +a3FBaXJHZw0KUHNPNmdnbnhrRnZKTGJxRHZkM0p6NVBKNzV2ZjNmWEdZNmlvVTBFcCtXbm5RSmJK +WHU3SEtCQmNqWXNSYVZHRw0Kem0yU2RuK2FQbUdmNEk4aFpEcndqdTRyQThRQUdWWmt5cFQwTFNm +MitvdnN0QnNQOStnN20waEJONWErOFl1Uw0KTGJsNnF1V1BNVXZDN1Q4VU01Y1laZG8yUEoyV2tX +YWVvL0I2QVVIdlZseDlHZTNIT0g0RmIwZlB0Z3dTelJENg0KS1lTWDdCZWtxSVRmblVCZC9SeEo5 +U2lJcThXUEo1L29ET0ZvS01XaUlJZUJ2MjhZNWNWdzUrcUdPZkJDcjhRQw0KZ2NPU2N5OE9xMHBE +NDBvMjFZRjlTeDBLOURtQTl2bGZKbXVEK2R2Y3RRNmE4ejl1bFpIbVljdG5OVDZTb3NYTw0KdkFP +L2RxT2VlbTA9DQogICAgICAgICAgICAgICAgICAgICAgICA8L2RzOlg1MDlDZXJ0aWZpY2F0ZT4N +CiAgICAgICAgICAgICAgICAgICAgPC9kczpYNTA5RGF0YT4NCiAgICAgICAgICAgIDwvZHM6S2V5 +SW5mbz4NCg0KICAgICAgICA8L0tleURlc2NyaXB0b3I+DQogICAgICAgIDxLZXlEZXNjcmlwdG9y +IHVzZT0ic2lnbmluZyI+DQogICAgICAgICAgICA8ZHM6S2V5SW5mbz4NCiAgICAgICAgICAgICAg +ICAgICAgPGRzOlg1MDlEYXRhPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRzOlg1MDlDZXJ0 +aWZpY2F0ZT4NCk1JSUVKRENDQW95Z0F3SUJBZ0lWQUxOanN1djM1akZMOXYwZkxiRkR1LzB3UzJs +Rk1BMEdDU3FHU0liM0RRRUINCkN3VUFNQmt4RnpBVkJnTlZCQU1NRG1WcFpDNWxaMmw2TG1kMkxt +RjBNQjRYRFRFNU1ESXhPREV6TXpNek9Gb1gNCkRUTTVNREl4T0RFek16TXpPRm93R1RFWE1CVUdB +MVVFQXd3T1pXbGtMbVZuYVhvdVozWXVZWFF3Z2dHaU1BMEcNCkNTcUdTSWIzRFFFQkFRVUFBNElC +andBd2dnR0tBb0lCZ1FEeU0xcTVPdmxYeHFWSklOR0F5U0N3djBmdENIbysNCkdrZ2tYY0laRU1o +YzdLVHU1aHFQSzFYMy9ScWZQRkZFY2d6ZlBwbXJSRkZLMTN0T1V3VVNOVUdrSUpPck1GSncNCkxy +aFRZdEtzQWFmL0FFcXVjcmtqazhhckNTM045NmhaOUJmZnlVSVMwdmFjQm5GbytOY29RMTNldmNY +ZTNhUkwNCllldytXZWlyNC9oQ3VienlFMzQ2a2J0SlFJRGUzQmtPM2NKRGVmeXRJTG92VXZ5cXNV +Yy9Rc0hWTWhaM0xmdDYNCmRqajdBMlJiaHNCR1FXZmxyejFFNlp2ZzZKNWhxVXZndEdRS3A5cXNL +aXdjazNWR3NNZVR4dzIvTnA5TXhSOXANCnpFSHdneTg5Wk9jcWtvZjhJR0VWS0ozQ2xpOUFrUmNH +aHpsYmoyTmpGaVUxaURLZFQ3djNHZXZYZ1ZzM1RHeEYNCjRxN1ZubXJ4REMwMGFkRmIwdTZtemFv +d1NKQ1VwMVE2ZE1jdVNiQzV4ZzBsSWlJYVE4MjQyVCs4RktHNTFzaDINCjBiKzQvbnloa1VYM3Zq +bGpxdi9kN2lLdUh1Vk9sbitPMi9nR1JXSkphZnM5SWNDZ0xjSFlKUGhPWVVFK2pyVWsNClFhczdo +dUJaSmozQ3E3TkE5cVEwVWdqNHBzVjI0RXorNzNFQ0F3RUFBYU5qTUdFd0hRWURWUjBPQkJZRUZQ +M1INClpTK0cyZy9YOG9GbVE1VFoybExQOUdQbU1FQUdBMVVkRVFRNU1EZUNEbVZwWkM1bFoybDZM +bWQyTG1GMGhpVm8NCmRIUndjem92TDJWcFpDNWxaMmw2TG1kMkxtRjBMMmxrY0M5emFHbGlZbTlz +WlhSb01BMEdDU3FHU0liM0RRRUINCkN3VUFBNElCZ1FBbmpxUHVhOWhla1BDbmRTSUV0WnNYbnph +NFJxWDN6YkVWbXVMTVVHa0dSTW8vcUV0OUhESjkNCndTVDk4dmZZODdQRDlHOTFGeS9TRDhrVmUx +MXQ5QmIxM3pxMGNEc0k0UXlFaEUvcWtYQnVKdjJMYXdmdmovQ2MNCnRlRDhNeXlEckxHeGtZQ1Va +V1BtMTdpcmVWY1dpOU41NHlCVnJ5ai9vdFV0OUNnZmVxUnhQOE1LZ0h4R2lzYmsNCk4rdCtTb2V1 +LzVWVG9jWWIvSDZNUXVOaHB1eUlDZ1ZZeVFPRzZsaVRRZEorQUdXdXFQVnFsVFEyZ3RQcnZIUzIN +ClptL0dQTXlvekh5VGtjQXhqbDNHQTR3bTBTNzBTTHlqZ0I0ZWxGWVdHY0RCaXhLc3BtdVBXellR +anltczVlVkkNCldGV2NRQXRva2NiM0llRjUrTVZhU0pJaS8zd3ZTbjNXT0RHYjFheEVIUVFKeDY2 +UTJmSktVbHJrTUx1bTNLdkcNCmVMc01CV3VYZGVCYlMwWFd0Y09LcFFmKzdaaTFtcUsycHJiTWZu +d0wvZURyTitjOHQzZzA2K0ZSQ2pkMjJQN1oNCmJxNm5PZWNoWEduZlI0YXNYRnRkTll4clljQjdV +ZklLeHRJQVA5c29Dd3VUY3B5QnFNelZuRTRMamxCdTVmbzcNClRxYmRYUUV6NzlFPQ0KICAgICAg +ICAgICAgICAgICAgICAgICAgPC9kczpYNTA5Q2VydGlmaWNhdGU+DQogICAgICAgICAgICAgICAg +ICAgIDwvZHM6WDUwOURhdGE+DQogICAgICAgICAgICA8L2RzOktleUluZm8+DQoNCiAgICAgICAg +PC9LZXlEZXNjcmlwdG9yPg0KICAgICAgICA8S2V5RGVzY3JpcHRvciB1c2U9ImVuY3J5cHRpb24i +Pg0KICAgICAgICAgICAgPGRzOktleUluZm8+DQogICAgICAgICAgICAgICAgICAgIDxkczpYNTA5 +RGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkczpYNTA5Q2VydGlmaWNhdGU+DQpNSUlF +SkRDQ0FveWdBd0lCQWdJVkFLRk1zNWUwVkFJN3FEeGFCb2swWHVyQVA4K3dNQTBHQ1NxR1NJYjNE +UUVCDQpDd1VBTUJreEZ6QVZCZ05WQkFNTURtVnBaQzVsWjJsNkxtZDJMbUYwTUI0WERURTVNREl4 +T0RFek16TXpPVm9YDQpEVE01TURJeE9ERXpNek16T1Zvd0dURVhNQlVHQTFVRUF3d09aV2xrTG1W +bmFYb3VaM1l1WVhRd2dnR2lNQTBHDQpDU3FHU0liM0RRRUJBUVVBQTRJQmp3QXdnZ0dLQW9JQmdR +Q1dPWmFkYzg3UmwrTVZJTy9SZURoekY0bXFxdnpoDQpvZzdZOUpkVURQNHlDUHFwaUhMRk9TajV2 +K3p0d0tTcG5sbWFtNU1NbEdid282ampvQ2xHcDBVRjUrelNLL3hYDQpERSs2a2hpcHhXbFZ0U0dR +aTdldTVYUTNxR3Y1RmtCNWFORFJxRTNWcy81MTZrRU9EaDY1RUtZOGNWcnprYnJjDQpLRE1QWE9y +MWtLQ1V4S3F4QzBlR1VqSjJ0bnNGYVYzc0ZnN0M3QTEyaVN6K0lUaVRPQzhMS3ZsbHErU0RyU0FI +DQpncmhhWU1Rb2s5YTRHV0pTN0kwam5NRFZvSUlGWFVEaEhjRHQwR3JXSkh5eUV4U1FJNFZISUts +bnBHTHhxc21tDQpVU3ZneEIxSjNPaDZxb0VjVkRWUXVNOXVoZVMxOW9PZ3VMZ1dVS2J5bzBZdEs0 +alhVeUpJenVNL3p4ZEUrbFVQDQppeEpzMUdoU2J6VFBLaStjeEdmcFNHNk5lSk1XTkMrWFhXTHVK +UlJZc1g0UVA5cHJQNXpOQ2dIVVN3bi9FMWxmDQorL2tSYVlIUFhKNXZEZ0hXUHlreGRKeHQzLy9K +M0U3K0cvc3RTdGpsZU40MGlpU1lVWG5MRnArNEhtS3FZckVMDQoxRTdLa0JGZTZhbDdiMzVGNGdy +cTZmNllSdC9mVnRDNTM3Y0NBd0VBQWFOak1HRXdIUVlEVlIwT0JCWUVGQ2J2DQpibzdESjdRcTRQ +Tmx5ZENWdFVnR2RCamxNRUFHQTFVZEVRUTVNRGVDRG1WcFpDNWxaMmw2TG1kMkxtRjBoaVZvDQpk +SFJ3Y3pvdkwyVnBaQzVsWjJsNkxtZDJMbUYwTDJsa2NDOXphR2xpWW05c1pYUm9NQTBHQ1NxR1NJ +YjNEUUVCDQpDd1VBQTRJQmdRQWRLUVN4T3gwVHR3ZmtXb2Z1cDNTb0xTOTUyZGE4Zmd0SXdlZm1s +VFlaT0lZbTBGMU5ZeHMxDQpCYXl0c0crUDZBL0xWK1dpVWdySEFFNzVqR2VycDdXY29zZjZmeWZO +bW9NaW1sQjdLNnZtUGFQWG12dU10alFYDQp5ZkhOZXVkbldrbjc1NFRBTzRQNHUyc1Fkd0RQZWVR +Y2IwOGljVlE1ck1RWlg4djliZHVQeS9EQmRuRmt3OUErDQpXek5zOTRrQlRsTGdTT0VIUFJsZGRI +aDlJNUU3c3BGMUhwSC8ybzBkWS9sazZsYVdtOGpYMm13bDdKWTQ2WHBODQo1VUFTUUJFaExOdXp1 +MEI3dnhmNlZmRUYvVVREcnVwUzAraGxac2p4S1pkckl4QVg0VU1hK0VCZmo0QVFFL1NrDQpBT3VE +em9heUpoUnhkQ2dmbTBmdGxVcUVZQS9QNDU4NVQyZmpWMW5KTXYvV3ZpL1FzTHBUbWtUY3FraHJ6 +R29IDQpSM2dnMHl4ejlacDY3N2pyZVcvTkxTc2tWbVYxNDdYUXRhbVAyazlLNFF4UUVXbVdmME8w +cHdJdlEzVEtSZ3Y1DQp3UlowZGo2aCt2b0VGdmpwYk81SGJTRUFMU0U0TlJvOG44SzlGTTUwRjVu +NTY3STZ1TjQrWDFUU1NhcUlaV0hJDQo4c3ZXa2NvM1NPWT0NCiAgICAgICAgICAgICAgICAgICAg +ICAgIDwvZHM6WDUwOUNlcnRpZmljYXRlPg0KICAgICAgICAgICAgICAgICAgICA8L2RzOlg1MDlE +YXRhPg0KICAgICAgICAgICAgPC9kczpLZXlJbmZvPg0KDQogICAgICAgIDwvS2V5RGVzY3JpcHRv +cj4NCg0KICAgICAgICA8QXJ0aWZhY3RSZXNvbHV0aW9uU2VydmljZSBCaW5kaW5nPSJ1cm46b2Fz +aXM6bmFtZXM6dGM6U0FNTDoxLjA6YmluZGluZ3M6U09BUC1iaW5kaW5nIiBMb2NhdGlvbj0iaHR0 +cHM6Ly9sYWJkYS5pYWlrLnR1Z3Jhei5hdDo2NDQzL2lkcC9wcm9maWxlL1NBTUwxL1NPQVAvQXJ0 +aWZhY3RSZXNvbHV0aW9uIiBpbmRleD0iMSIvPg0KICAgICAgICA8QXJ0aWZhY3RSZXNvbHV0aW9u +U2VydmljZSBCaW5kaW5nPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YmluZGluZ3M6U09B +UCIgTG9jYXRpb249Imh0dHBzOi8vbGFiZGEuaWFpay50dWdyYXouYXQ6NjQ0My9pZHAvcHJvZmls +ZS9TQU1MMi9TT0FQL0FydGlmYWN0UmVzb2x1dGlvbiIgaW5kZXg9IjIiLz4NCg0KICAgICAgICA8 +IS0tDQogICAgICAgIDxTaW5nbGVMb2dvdXRTZXJ2aWNlIEJpbmRpbmc9InVybjpvYXNpczpuYW1l +czp0YzpTQU1MOjIuMDpiaW5kaW5nczpIVFRQLVJlZGlyZWN0IiBMb2NhdGlvbj0iaHR0cHM6Ly9s +YWJkYS5pYWlrLnR1Z3Jhei5hdDo2NDQzL2lkcC9wcm9maWxlL1NBTUwyL1JlZGlyZWN0L1NMTyIv +Pg0KICAgICAgICA8U2luZ2xlTG9nb3V0U2VydmljZSBCaW5kaW5nPSJ1cm46b2FzaXM6bmFtZXM6 +dGM6U0FNTDoyLjA6YmluZGluZ3M6SFRUUC1QT1NUIiBMb2NhdGlvbj0iaHR0cHM6Ly9sYWJkYS5p +YWlrLnR1Z3Jhei5hdDo2NDQzL2lkcC9wcm9maWxlL1NBTUwyL1BPU1QvU0xPIi8+DQogICAgICAg +IDxTaW5nbGVMb2dvdXRTZXJ2aWNlIEJpbmRpbmc9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIu +MDpiaW5kaW5nczpIVFRQLVBPU1QtU2ltcGxlU2lnbiIgTG9jYXRpb249Imh0dHBzOi8vbGFiZGEu +aWFpay50dWdyYXouYXQ6NjQ0My9pZHAvcHJvZmlsZS9TQU1MMi9QT1NULVNpbXBsZVNpZ24vU0xP +Ii8+DQogICAgICAgIDxTaW5nbGVMb2dvdXRTZXJ2aWNlIEJpbmRpbmc9InVybjpvYXNpczpuYW1l +czp0YzpTQU1MOjIuMDpiaW5kaW5nczpTT0FQIiBMb2NhdGlvbj0iaHR0cHM6Ly9sYWJkYS5pYWlr +LnR1Z3Jhei5hdDo2NDQzL2lkcC9wcm9maWxlL1NBTUwyL1NPQVAvU0xPIi8+DQogICAgICAgIC0t +Pg0KDQogICAgICAgIDxTaW5nbGVTaWduT25TZXJ2aWNlIEJpbmRpbmc9InVybjptYWNlOnNoaWJi +b2xldGg6MS4wOnByb2ZpbGVzOkF1dGhuUmVxdWVzdCIgTG9jYXRpb249Imh0dHBzOi8vbGFiZGEu +aWFpay50dWdyYXouYXQ6NjQ0My9pZHAvcHJvZmlsZS9TaGliYm9sZXRoL1NTTyIvPg0KICAgICAg +ICA8U2luZ2xlU2lnbk9uU2VydmljZSBCaW5kaW5nPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoy +LjA6YmluZGluZ3M6SFRUUC1QT1NUIiByZXEtYXR0cjpzdXBwb3J0c1JlcXVlc3RlZEF0dHJpYnV0 +ZXM9InRydWUiIExvY2F0aW9uPSJodHRwczovL2xhYmRhLmlhaWsudHVncmF6LmF0OjY0NDMvaWRw +L3Byb2ZpbGUvU0FNTDIvUE9TVC9TU08iLz4NCiAgICAgICAgPFNpbmdsZVNpZ25PblNlcnZpY2Ug +QmluZGluZz0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmJpbmRpbmdzOkhUVFAtUE9TVC1T +aW1wbGVTaWduIiByZXEtYXR0cjpzdXBwb3J0c1JlcXVlc3RlZEF0dHJpYnV0ZXM9InRydWUiIExv +Y2F0aW9uPSJodHRwczovL2xhYmRhLmlhaWsudHVncmF6LmF0OjY0NDMvaWRwL3Byb2ZpbGUvU0FN +TDIvUE9TVC1TaW1wbGVTaWduL1NTTyIvPg0KICAgICAgICA8U2luZ2xlU2lnbk9uU2VydmljZSBC +aW5kaW5nPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YmluZGluZ3M6SFRUUC1SZWRpcmVj +dCIgcmVxLWF0dHI6c3VwcG9ydHNSZXF1ZXN0ZWRBdHRyaWJ1dGVzPSJ0cnVlIiBMb2NhdGlvbj0i +aHR0cHM6Ly9sYWJkYS5pYWlrLnR1Z3Jhei5hdDo2NDQzL2lkcC9wcm9maWxlL1NBTUwyL1JlZGly +ZWN0L1NTTyIvPg0KDQogICAgPC9JRFBTU09EZXNjcmlwdG9yPg0KDQoNCiAgICA8QXR0cmlidXRl +QXV0aG9yaXR5RGVzY3JpcHRvciBwcm90b2NvbFN1cHBvcnRFbnVtZXJhdGlvbj0idXJuOm9hc2lz +Om5hbWVzOnRjOlNBTUw6MS4xOnByb3RvY29sIj4NCg0KICAgICAgICA8RXh0ZW5zaW9ucz4NCiAg +ICAgICAgICAgIDxzaGlibWQ6U2NvcGUgcmVnZXhwPSJmYWxzZSI+ZWdpei5ndi5hdDwvc2hpYm1k +OlNjb3BlPg0KICAgICAgICA8L0V4dGVuc2lvbnM+DQoNCiAgICAgICAgPCEtLSBGaXJzdCBzaWdu +aW5nIGNlcnRpZmljYXRlIGlzIEJhY2tDaGFubmVsLCB0aGUgU2Vjb25kIGlzIEZyb250Q2hhbm5l +bCAtLT4NCiAgICAgICAgPEtleURlc2NyaXB0b3IgdXNlPSJzaWduaW5nIj4NCiAgICAgICAgICAg +IDxkczpLZXlJbmZvPg0KICAgICAgICAgICAgICAgICAgICA8ZHM6WDUwOURhdGE+DQogICAgICAg +ICAgICAgICAgICAgICAgICA8ZHM6WDUwOUNlcnRpZmljYXRlPg0KTUlJRUpEQ0NBb3lnQXdJQkFn +SVZBTWMrUFByY2NCTlZFb0pTVTQ4djdpeTg2YjVYTUEwR0NTcUdTSWIzRFFFQg0KQ3dVQU1Ca3hG +ekFWQmdOVkJBTU1EbVZwWkM1bFoybDZMbWQyTG1GME1CNFhEVEU1TURJeE9ERXpNek16T1ZvWA0K +RFRNNU1ESXhPREV6TXpNek9Wb3dHVEVYTUJVR0ExVUVBd3dPWldsa0xtVm5hWG91WjNZdVlYUXdn +Z0dpTUEwRw0KQ1NxR1NJYjNEUUVCQVFVQUE0SUJqd0F3Z2dHS0FvSUJnUUNsRk4vczM2RnBjYTEx +aG1VQ0VLZEM5R25OeU0yYw0KSWdYYjdzOUJwdk9aQkdFVEkwMGhBQ3lUTGtLQlFKR1NZK0dnVlhI +K1p1MmpXSEF0VjdzT2c3U2wrM1NQN0tkMw0KUmw0TnBzcUV6dkpoWXp2TFNlcWpPTW9uUk5aOWN0 +RmR0Y0tEeXU1dWx2UHRaZSs0dXRIUzRHUUpOR3lXYStPdw0KQjNzUE9kUXkyaVlKM2NaSU9jUGND +bGVRaFROaTV1anVZTVFidDIyNS8xeDlnZnNCbklEUFh6OHFxV1ZKOTQ1bg0KeG10eXNuRXJsTXlX +d21PSnZnL1hVbWxmdEhaTDRMSkdGYWh1bmdLY0tKNVUrR2Y0bjRRcTdvQTFPMzUxcHB0Mg0KYXFK +ZmxRVE9uaU4vMW83aThEQ3B3MzVRWVJLNEdsdmtGaG1OQ1cxanhOdzloV3hMTjQ0RVlhc3JETWs0 +ZHkzNQ0KdXBVaWNsSXRvbGU0Mm83Z0Y2YVJFQjV6QjFBUDQwNkxCZno2NVN6anNLNVFZS3JsVDNq +bVdoR3Z1ZXhlV0hhaA0KakJKM3VocnloRzJWV0xFME5RU0s2NW9ORHZTTkJielpvSDlVQW5xT0FU +N3RZRXJWbWN3UmN0bnpwU25CS1ZJcA0Kem1abkpGRHFKNHFFU2pxamw2YzRtTkk3dTlncHBTczNH +K1VDQXdFQUFhTmpNR0V3SFFZRFZSME9CQllFRkw3Vg0KcmxSWHlTUVh0VU83R284WTEzdFNRNTJC +TUVBR0ExVWRFUVE1TURlQ0RtVnBaQzVsWjJsNkxtZDJMbUYwaGlWbw0KZEhSd2N6b3ZMMlZwWkM1 +bFoybDZMbWQyTG1GMEwybGtjQzl6YUdsaVltOXNaWFJvTUEwR0NTcUdTSWIzRFFFQg0KQ3dVQUE0 +SUJnUUFMaVdpaUhnaGNhWDFTcGhrbTFEaVhVMmJhZlNCMGgyVlpycFFpVXdoQldCWC9XZDRjRlJn +eg0KazEvUm4xL0htTFZlNUdOQzZmb2VyQU1tLzQwZ2tUY3VKTmZwdFB1YU96UVJXaUo2VmZPcW1Q +OFhpTW9tQmVsMw0KWDFjczRuaVVEKytMREtVakJTbG94ZWFwZW9KUVV4VDBnNzlJTGJQTTFLdGpN +Mm9ESHBXR0ZxOEdYa3FBaXJHZw0KUHNPNmdnbnhrRnZKTGJxRHZkM0p6NVBKNzV2ZjNmWEdZNmlv +VTBFcCtXbm5RSmJKWHU3SEtCQmNqWXNSYVZHRw0Kem0yU2RuK2FQbUdmNEk4aFpEcndqdTRyQThR +QUdWWmt5cFQwTFNmMitvdnN0QnNQOStnN20waEJONWErOFl1Uw0KTGJsNnF1V1BNVXZDN1Q4VU01 +Y1laZG8yUEoyV2tXYWVvL0I2QVVIdlZseDlHZTNIT0g0RmIwZlB0Z3dTelJENg0KS1lTWDdCZWtx +SVRmblVCZC9SeEo5U2lJcThXUEo1L29ET0ZvS01XaUlJZUJ2MjhZNWNWdzUrcUdPZkJDcjhRQw0K +Z2NPU2N5OE9xMHBENDBvMjFZRjlTeDBLOURtQTl2bGZKbXVEK2R2Y3RRNmE4ejl1bFpIbVljdG5O +VDZTb3NYTw0KdkFPL2RxT2VlbTA9DQogICAgICAgICAgICAgICAgICAgICAgICA8L2RzOlg1MDlD +ZXJ0aWZpY2F0ZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kczpYNTA5RGF0YT4NCiAgICAgICAg +ICAgIDwvZHM6S2V5SW5mbz4NCg0KICAgICAgICA8L0tleURlc2NyaXB0b3I+DQogICAgICAgIDxL +ZXlEZXNjcmlwdG9yIHVzZT0ic2lnbmluZyI+DQogICAgICAgICAgICA8ZHM6S2V5SW5mbz4NCiAg +ICAgICAgICAgICAgICAgICAgPGRzOlg1MDlEYXRhPg0KICAgICAgICAgICAgICAgICAgICAgICAg +PGRzOlg1MDlDZXJ0aWZpY2F0ZT4NCk1JSUVKRENDQW95Z0F3SUJBZ0lWQUxOanN1djM1akZMOXYw +ZkxiRkR1LzB3UzJsRk1BMEdDU3FHU0liM0RRRUINCkN3VUFNQmt4RnpBVkJnTlZCQU1NRG1WcFpD +NWxaMmw2TG1kMkxtRjBNQjRYRFRFNU1ESXhPREV6TXpNek9Gb1gNCkRUTTVNREl4T0RFek16TXpP +Rm93R1RFWE1CVUdBMVVFQXd3T1pXbGtMbVZuYVhvdVozWXVZWFF3Z2dHaU1BMEcNCkNTcUdTSWIz +RFFFQkFRVUFBNElCandBd2dnR0tBb0lCZ1FEeU0xcTVPdmxYeHFWSklOR0F5U0N3djBmdENIbysN +CkdrZ2tYY0laRU1oYzdLVHU1aHFQSzFYMy9ScWZQRkZFY2d6ZlBwbXJSRkZLMTN0T1V3VVNOVUdr +SUpPck1GSncNCkxyaFRZdEtzQWFmL0FFcXVjcmtqazhhckNTM045NmhaOUJmZnlVSVMwdmFjQm5G +bytOY29RMTNldmNYZTNhUkwNCllldytXZWlyNC9oQ3VienlFMzQ2a2J0SlFJRGUzQmtPM2NKRGVm +eXRJTG92VXZ5cXNVYy9Rc0hWTWhaM0xmdDYNCmRqajdBMlJiaHNCR1FXZmxyejFFNlp2ZzZKNWhx +VXZndEdRS3A5cXNLaXdjazNWR3NNZVR4dzIvTnA5TXhSOXANCnpFSHdneTg5Wk9jcWtvZjhJR0VW +S0ozQ2xpOUFrUmNHaHpsYmoyTmpGaVUxaURLZFQ3djNHZXZYZ1ZzM1RHeEYNCjRxN1ZubXJ4REMw +MGFkRmIwdTZtemFvd1NKQ1VwMVE2ZE1jdVNiQzV4ZzBsSWlJYVE4MjQyVCs4RktHNTFzaDINCjBi +KzQvbnloa1VYM3ZqbGpxdi9kN2lLdUh1Vk9sbitPMi9nR1JXSkphZnM5SWNDZ0xjSFlKUGhPWVVF +K2pyVWsNClFhczdodUJaSmozQ3E3TkE5cVEwVWdqNHBzVjI0RXorNzNFQ0F3RUFBYU5qTUdFd0hR +WURWUjBPQkJZRUZQM1INClpTK0cyZy9YOG9GbVE1VFoybExQOUdQbU1FQUdBMVVkRVFRNU1EZUNE +bVZwWkM1bFoybDZMbWQyTG1GMGhpVm8NCmRIUndjem92TDJWcFpDNWxaMmw2TG1kMkxtRjBMMmxr +Y0M5emFHbGlZbTlzWlhSb01BMEdDU3FHU0liM0RRRUINCkN3VUFBNElCZ1FBbmpxUHVhOWhla1BD +bmRTSUV0WnNYbnphNFJxWDN6YkVWbXVMTVVHa0dSTW8vcUV0OUhESjkNCndTVDk4dmZZODdQRDlH +OTFGeS9TRDhrVmUxMXQ5QmIxM3pxMGNEc0k0UXlFaEUvcWtYQnVKdjJMYXdmdmovQ2MNCnRlRDhN +eXlEckxHeGtZQ1VaV1BtMTdpcmVWY1dpOU41NHlCVnJ5ai9vdFV0OUNnZmVxUnhQOE1LZ0h4R2lz +YmsNCk4rdCtTb2V1LzVWVG9jWWIvSDZNUXVOaHB1eUlDZ1ZZeVFPRzZsaVRRZEorQUdXdXFQVnFs +VFEyZ3RQcnZIUzINClptL0dQTXlvekh5VGtjQXhqbDNHQTR3bTBTNzBTTHlqZ0I0ZWxGWVdHY0RC +aXhLc3BtdVBXellRanltczVlVkkNCldGV2NRQXRva2NiM0llRjUrTVZhU0pJaS8zd3ZTbjNXT0RH +YjFheEVIUVFKeDY2UTJmSktVbHJrTUx1bTNLdkcNCmVMc01CV3VYZGVCYlMwWFd0Y09LcFFmKzda +aTFtcUsycHJiTWZud0wvZURyTitjOHQzZzA2K0ZSQ2pkMjJQN1oNCmJxNm5PZWNoWEduZlI0YXNY +RnRkTll4clljQjdVZklLeHRJQVA5c29Dd3VUY3B5QnFNelZuRTRMamxCdTVmbzcNClRxYmRYUUV6 +NzlFPQ0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kczpYNTA5Q2VydGlmaWNhdGU+DQogICAg +ICAgICAgICAgICAgICAgIDwvZHM6WDUwOURhdGE+DQogICAgICAgICAgICA8L2RzOktleUluZm8+ +DQoNCiAgICAgICAgPC9LZXlEZXNjcmlwdG9yPg0KICAgICAgICA8S2V5RGVzY3JpcHRvciB1c2U9 +ImVuY3J5cHRpb24iPg0KICAgICAgICAgICAgPGRzOktleUluZm8+DQogICAgICAgICAgICAgICAg +ICAgIDxkczpYNTA5RGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkczpYNTA5Q2VydGlm +aWNhdGU+DQpNSUlFSkRDQ0FveWdBd0lCQWdJVkFLRk1zNWUwVkFJN3FEeGFCb2swWHVyQVA4K3dN +QTBHQ1NxR1NJYjNEUUVCDQpDd1VBTUJreEZ6QVZCZ05WQkFNTURtVnBaQzVsWjJsNkxtZDJMbUYw +TUI0WERURTVNREl4T0RFek16TXpPVm9YDQpEVE01TURJeE9ERXpNek16T1Zvd0dURVhNQlVHQTFV +RUF3d09aV2xrTG1WbmFYb3VaM1l1WVhRd2dnR2lNQTBHDQpDU3FHU0liM0RRRUJBUVVBQTRJQmp3 +QXdnZ0dLQW9JQmdRQ1dPWmFkYzg3UmwrTVZJTy9SZURoekY0bXFxdnpoDQpvZzdZOUpkVURQNHlD +UHFwaUhMRk9TajV2K3p0d0tTcG5sbWFtNU1NbEdid282ampvQ2xHcDBVRjUrelNLL3hYDQpERSs2 +a2hpcHhXbFZ0U0dRaTdldTVYUTNxR3Y1RmtCNWFORFJxRTNWcy81MTZrRU9EaDY1RUtZOGNWcnpr +YnJjDQpLRE1QWE9yMWtLQ1V4S3F4QzBlR1VqSjJ0bnNGYVYzc0ZnN0M3QTEyaVN6K0lUaVRPQzhM +S3ZsbHErU0RyU0FIDQpncmhhWU1Rb2s5YTRHV0pTN0kwam5NRFZvSUlGWFVEaEhjRHQwR3JXSkh5 +eUV4U1FJNFZISUtsbnBHTHhxc21tDQpVU3ZneEIxSjNPaDZxb0VjVkRWUXVNOXVoZVMxOW9PZ3VM +Z1dVS2J5bzBZdEs0alhVeUpJenVNL3p4ZEUrbFVQDQppeEpzMUdoU2J6VFBLaStjeEdmcFNHNk5l +Sk1XTkMrWFhXTHVKUlJZc1g0UVA5cHJQNXpOQ2dIVVN3bi9FMWxmDQorL2tSYVlIUFhKNXZEZ0hX +UHlreGRKeHQzLy9KM0U3K0cvc3RTdGpsZU40MGlpU1lVWG5MRnArNEhtS3FZckVMDQoxRTdLa0JG +ZTZhbDdiMzVGNGdycTZmNllSdC9mVnRDNTM3Y0NBd0VBQWFOak1HRXdIUVlEVlIwT0JCWUVGQ2J2 +DQpibzdESjdRcTRQTmx5ZENWdFVnR2RCamxNRUFHQTFVZEVRUTVNRGVDRG1WcFpDNWxaMmw2TG1k +MkxtRjBoaVZvDQpkSFJ3Y3pvdkwyVnBaQzVsWjJsNkxtZDJMbUYwTDJsa2NDOXphR2xpWW05c1pY +Um9NQTBHQ1NxR1NJYjNEUUVCDQpDd1VBQTRJQmdRQWRLUVN4T3gwVHR3ZmtXb2Z1cDNTb0xTOTUy +ZGE4Zmd0SXdlZm1sVFlaT0lZbTBGMU5ZeHMxDQpCYXl0c0crUDZBL0xWK1dpVWdySEFFNzVqR2Vy +cDdXY29zZjZmeWZObW9NaW1sQjdLNnZtUGFQWG12dU10alFYDQp5ZkhOZXVkbldrbjc1NFRBTzRQ +NHUyc1Fkd0RQZWVRY2IwOGljVlE1ck1RWlg4djliZHVQeS9EQmRuRmt3OUErDQpXek5zOTRrQlRs +TGdTT0VIUFJsZGRIaDlJNUU3c3BGMUhwSC8ybzBkWS9sazZsYVdtOGpYMm13bDdKWTQ2WHBODQo1 +VUFTUUJFaExOdXp1MEI3dnhmNlZmRUYvVVREcnVwUzAraGxac2p4S1pkckl4QVg0VU1hK0VCZmo0 +QVFFL1NrDQpBT3VEem9heUpoUnhkQ2dmbTBmdGxVcUVZQS9QNDU4NVQyZmpWMW5KTXYvV3ZpL1Fz +THBUbWtUY3FraHJ6R29IDQpSM2dnMHl4ejlacDY3N2pyZVcvTkxTc2tWbVYxNDdYUXRhbVAyazlL +NFF4UUVXbVdmME8wcHdJdlEzVEtSZ3Y1DQp3UlowZGo2aCt2b0VGdmpwYk81SGJTRUFMU0U0TlJv +OG44SzlGTTUwRjVuNTY3STZ1TjQrWDFUU1NhcUlaV0hJDQo4c3ZXa2NvM1NPWT0NCiAgICAgICAg +ICAgICAgICAgICAgICAgIDwvZHM6WDUwOUNlcnRpZmljYXRlPg0KICAgICAgICAgICAgICAgICAg +ICA8L2RzOlg1MDlEYXRhPg0KICAgICAgICAgICAgPC9kczpLZXlJbmZvPg0KDQogICAgICAgIDwv +S2V5RGVzY3JpcHRvcj4NCg0KICAgICAgICA8QXR0cmlidXRlU2VydmljZSBCaW5kaW5nPSJ1cm46 +b2FzaXM6bmFtZXM6dGM6U0FNTDoxLjA6YmluZGluZ3M6U09BUC1iaW5kaW5nIiBMb2NhdGlvbj0i +aHR0cHM6Ly9sYWJkYS5pYWlrLnR1Z3Jhei5hdDo2NDQzL2lkcC9wcm9maWxlL1NBTUwxL1NPQVAv +QXR0cmlidXRlUXVlcnkiLz4NCiAgICAgICAgPCEtLSA8QXR0cmlidXRlU2VydmljZSBCaW5kaW5n +PSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YmluZGluZ3M6U09BUCIgTG9jYXRpb249Imh0 +dHBzOi8vbGFiZGEuaWFpay50dWdyYXouYXQ6NjQ0My9pZHAvcHJvZmlsZS9TQU1MMi9TT0FQL0F0 +dHJpYnV0ZVF1ZXJ5Ii8+IC0tPg0KICAgICAgICA8IS0tIElmIHlvdSB1bmNvbW1lbnQgdGhlIGFi +b3ZlIHlvdSBzaG91bGQgYWRkIHVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpwcm90b2NvbCB0 +byB0aGUgcHJvdG9jb2xTdXBwb3J0RW51bWVyYXRpb24gYWJvdmUgLS0+DQoNCiAgICA8L0F0dHJp +YnV0ZUF1dGhvcml0eURlc2NyaXB0b3I+DQoNCjwvRW50aXR5RGVzY3JpcHRvcj4=</Base64Content> + + + </CreateSignatureEnvironment> + <CreateSignatureEnvironmentProfile> + <CreateSignatureLocation xmlns:meta='urn:oasis:names:tc:SAML:2.0:metadata' + xmlns:md='urn:oasis:names:tc:SAML:2.0:metadata' + Index='1'>/md:EntityDescriptor</CreateSignatureLocation> + </CreateSignatureEnvironmentProfile> + </CreateSignatureInfo> + </SingleSignatureInfo> +</CreateXMLSignatureRequest> diff --git a/moaSig/moa-sig/src/test/resources/testdata/xades/sign/createXades_2.xml b/moaSig/moa-sig/src/test/resources/testdata/xades/sign/createXades_2.xml new file mode 100644 index 0000000..72f819b --- /dev/null +++ b/moaSig/moa-sig/src/test/resources/testdata/xades/sign/createXades_2.xml @@ -0,0 +1,62 @@ + <moa:CreateXMLSignatureRequest xmlns:moa="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <moa:KeyIdentifier>KG_junit</moa:KeyIdentifier> + <moa:SingleSignatureInfo SecurityLayerConformity="true"> + + <moa:DataObjectInfo Structure="detached" ChildOfManifest="false"> + <moa:DataObject Reference=""/> + <moa:CreateTransformsInfoProfile> + <moa:CreateTransformsInfo> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <dsig:XPath>not(ancestor-or-self::pr:Identification)</dsig:XPath> + </dsig:Transform> + <dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> + </dsig:Transforms> + <moa:FinalDataMetaInfo> + <moa:MimeType>text/xml</moa:MimeType> + </moa:FinalDataMetaInfo> + </moa:CreateTransformsInfo> + </moa:CreateTransformsInfoProfile> + </moa:DataObjectInfo> + + <moa:DataObjectInfo Structure="detached" ChildOfManifest="true"> + <moa:DataObject Reference=""/> + <moa:CreateTransformsInfoProfile> + <moa:CreateTransformsInfo> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <dsig:XPath>not(ancestor-or-self::dsig:Signature)</dsig:XPath> + </dsig:Transform> + </dsig:Transforms> + <moa:FinalDataMetaInfo> + <moa:MimeType>text/xml</moa:MimeType> + </moa:FinalDataMetaInfo> + </moa:CreateTransformsInfo> + </moa:CreateTransformsInfoProfile> + </moa:DataObjectInfo> + + <moa:CreateSignatureInfo> + <moa:CreateSignatureEnvironment> + <moa:XMLContent><saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:ecdsa="http://www.w3.org/2001/04/xmldsig-more#" xmlns:pr="http://reference.e-government.gv.at/namespace/persondata/20020228#" xmlns:si="http://www.w3.org/2001/XMLSchema-instance" AssertionID="szr.bmi.gv.at-AssertionID13231274415215238" IssueInstant="2011-12-06T00:24:01+01:00" Issuer="http://portal.bmi.gv.at/ref/szr/issuer" MajorVersion="1" MinorVersion="0"> + <saml:AttributeStatement> + <saml:Subject> + <saml:SubjectConfirmation> + <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:sender-vouches</saml:ConfirmationMethod> + <saml:SubjectConfirmationData> + <pr:Person si:type="pr:PhysicalPersonType"><pr:Identification><pr:Value>adfasfsafsafsafsafsadfsa</pr:Value><pr:Type>urn:publicid:gv.at:baseid</pr:Type></pr:Identification><pr:Name><pr:GivenName>Georg Max</pr:GivenName><pr:FamilyName primary="undefined">Gehtnichtmehr</pr:FamilyName></pr:Name><pr:DateOfBirth>1970-10-07</pr:DateOfBirth></pr:Person> + </saml:SubjectConfirmationData> + </saml:SubjectConfirmation> + </saml:Subject> + <saml:Attribute AttributeName="CitizenPublicKey" AttributeNamespace="urn:publicid:gv.at:namespaces:identitylink:1.2"><saml:AttributeValue><ecdsa:ECDSAKeyValue><ecdsa:DomainParameters><ecdsa:NamedCurve URN="urn:oid:1.2.840.10045.3.1.7"/></ecdsa:DomainParameters><ecdsa:PublicKey><ecdsa:X Value="30182780990795840910396548931819898671707742888036046362327117589598976109577" si:type="ecdsa:PrimeFieldElemType"/><ecdsa:Y Value="107112196457062351517299791458741371657831961314729500352055528678053697367827" si:type="ecdsa:PrimeFieldElemType"/></ecdsa:PublicKey></ecdsa:ECDSAKeyValue></saml:AttributeValue></saml:Attribute><saml:Attribute AttributeName="CitizenPublicKey" AttributeNamespace="urn:publicid:gv.at:namespaces:identitylink:1.2"><saml:AttributeValue><dsig:RSAKeyValue><dsig:Modulus>hCZLl3qKckwEWV3l4UBG14o7fvbxoHKxCfrTcJW/yJJvIZa2VUzL7rYpEGZSKFpur0v9cDjIZOtn +jCt/8pmDSSpdRF4Yrem3wnhv2jE+UuiwUOZtOymcsv5g3I5NXFjaBJlXnXbQF3djAd0YcU6tAzpr +Md8x0ko+J9CVBxWj6VFJeP4muTI/XvEUSU4QVxmmAyUPCYM6mzlYoYUPEYpw5oWA1p++dvM8USdh +0pB5mmXboFfPGvN/DvfV4BKKT8xX</dsig:Modulus><dsig:Exponent>AQAB</dsig:Exponent></dsig:RSAKeyValue></saml:AttributeValue></saml:Attribute></saml:AttributeStatement> +</saml:Assertion></moa:XMLContent> + </moa:CreateSignatureEnvironment> + <moa:CreateSignatureEnvironmentProfile> + <moa:CreateSignatureLocation xmlns:saml='urn:oasis:names:tc:SAML:1.0:assertion' Index='2'> + /saml:Assertion</moa:CreateSignatureLocation> + </moa:CreateSignatureEnvironmentProfile> + </moa:CreateSignatureInfo> + </moa:SingleSignatureInfo> +</moa:CreateXMLSignatureRequest> |