aboutsummaryrefslogtreecommitdiff
path: root/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/tsl/XadesTslEuTestset03Test.java
diff options
context:
space:
mode:
Diffstat (limited to 'moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/tsl/XadesTslEuTestset03Test.java')
-rw-r--r--moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/tsl/XadesTslEuTestset03Test.java1860
1 files changed, 1860 insertions, 0 deletions
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
new file mode 100644
index 0000000..d6a1550
--- /dev/null
+++ b/moaSig/moa-sig/src/test/java/at/gv/egovernment/moa/spss/test/integration/tsl/XadesTslEuTestset03Test.java
@@ -0,0 +1,1860 @@
+package at.gv.egovernment.moa.spss.test.integration.tsl;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.BlockJUnit4ClassRunner;
+
+import at.gv.egovernment.moa.sig.tsl.engine.data.TSLProcessingResultElement;
+import at.gv.egovernment.moa.spss.MOAException;
+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.XMLSignatureVerificationInvoker;
+import at.gv.egovernment.moa.spss.server.monitoring.ServiceStatusContainer;
+import at.gv.egovernment.moa.spss.test.integration.AbstractIntegrationTest;
+
+@RunWith(BlockJUnit4ClassRunner.class)
+public class XadesTslEuTestset03Test extends AbstractIntegrationTest {
+
+ XMLSignatureVerificationInvoker xadesInvoker;
+
+ public static final Map<String, Boolean> TSL_LOAD_STATUS;
+
+ static {
+ final Map<String, Boolean> intMap = new HashMap<>();
+ intMap.put("EU", true);
+ intMap.put("LU", true);
+ intMap.put("FR", true);
+ intMap.put("IT", true);
+ intMap.put("CZ", true);
+ intMap.put("BG", true);
+ intMap.put("UK", true);
+ TSL_LOAD_STATUS = Collections.unmodifiableMap(intMap);
+
+ }
+
+ @BeforeClass
+ public static void classInitializer() throws IOException, ConfigurationException,
+ NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
+ jvmStateReset();
+
+ final String current = new java.io.File(".").getCanonicalPath();
+ System.setProperty("moa.spss.server.configuration",
+ current + "/src/test/resources/moaspss_config/MOASPSSConfiguration_tsl_eu_test_2.xml");
+ System.setProperty("iaik.esi.sva.configuration.location",
+ current + "/src/test/resources/moaspss_config/svaconfig.example");
+ moaSpssCore = SystemInitializer.init();
+
+ }
+
+ @Before
+ public void initializer() throws ConfigurationException {
+ xadesInvoker = XMLSignatureVerificationInvoker.getInstance();
+ setUpContexts(RandomStringUtils.randomAlphabetic(10));
+
+ }
+
+ @Test
+ public void checkTslState() {
+ assertTrue("TSL not active", ServiceStatusContainer.getStatus());
+
+ final List<TSLProcessingResultElement> loadedTsl = ServiceStatusContainer.getTslDetailStatus();
+ assertFalse("no TSL loaded", loadedTsl.isEmpty());
+ assertEquals("wrong TSL size", 7, loadedTsl.size());
+
+ assertEquals("loaded TSL CC", "EU", loadedTsl.get(0).getCountryCode());
+ assertEquals("loaded TSL URL",
+ "https://esignature.ec.europa.eu/efda/validation-tests/testcase/tl/LOTL-3.xml",
+ loadedTsl.get(0).getTslURL());
+ assertTrue("loaded TSL processed", loadedTsl.get(0).isProcessed());
+ assertTrue("loaded TSL verified", loadedTsl.get(0).isVerified());
+
+ for (final TSLProcessingResultElement el : loadedTsl) {
+ assertTrue("TSL entry unknown", TSL_LOAD_STATUS.containsKey(el.getCountryCode()));
+ assertEquals("wrong statusCode", TSL_LOAD_STATUS.get(el.getCountryCode()), el.isProcessed());
+ assertEquals("wrong statusCode", TSL_LOAD_STATUS.get(el.getCountryCode()), el.isVerified());
+
+ }
+ }
+
+ @Test
+ public void euTestFile3_1_1() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/3.1.1-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "LU", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertFalse("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNull("TSL infos", result.getSignerInfo().getTslInfos());
+
+ assertNotNull("form val. result", result.getAdESFormResults());
+ assertNotNull("extended val. result", result.getExtendedCertificateCheck());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile3_1_2() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/3.1.2-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "LU", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertFalse("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "LU", result.getSignerInfo().getTslInfos().getTslIssuerCountry());
+ assertEquals("TSL ServiceType", "http://uri.etsi.org/TrstSvc/Svctype/CA/PKC",
+ 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ // TODO: check if it should be trusted
+ @Ignore
+ @Test
+ public void euTestFile3_1_3() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/3.1.3-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "LU", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertFalse("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+ assertNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertNotNull("form val. result", result.getAdESFormResults());
+ assertNotNull("extended val. result", result.getExtendedCertificateCheck());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ // TODO: TSL contains multiple values --> should we throw an error in that case?
+ @Test
+ public void euTestFile3_3_1() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/3.3.1-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "LU", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "LU", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ // TODO: should be not QC???
+ @Test
+ public void euTestFile4_1_1() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.1.1-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_1_2() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.1.2-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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/undersupervision",
+ result.getSignerInfo().getTslInfos().getServiceTypeStatus());
+ assertTrue("TSL addit. status", result.getSignerInfo().getTslInfos().getAdditionalServiceInformation()
+ .isEmpty());
+
+ assertNotNull("form val. result", result.getAdESFormResults());
+ assertNotNull("extended val. result", result.getExtendedCertificateCheck());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_1_3() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.1.3-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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/accredited",
+ result.getSignerInfo().getTslInfos().getServiceTypeStatus());
+ assertTrue("TSL addit. status", result.getSignerInfo().getTslInfos().getAdditionalServiceInformation()
+ .isEmpty());
+
+ assertNotNull("form val. result", result.getAdESFormResults());
+ assertNotNull("extended val. result", result.getExtendedCertificateCheck());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_1_4() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.1.4-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertFalse("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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/undersupervision",
+ result.getSignerInfo().getTslInfos().getServiceTypeStatus());
+ assertTrue("TSL addit. status", result.getSignerInfo().getTslInfos().getAdditionalServiceInformation()
+ .isEmpty());
+
+ assertNotNull("form val. result", result.getAdESFormResults());
+ assertNotNull("extended val. result", result.getExtendedCertificateCheck());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile3_2_2() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/3.2.2-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "LU", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "LU", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_2_1() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.2.1-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertFalse("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertFalse("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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/ForeSeals",
+ result.getSignerInfo().getTslInfos().getAdditionalServiceInformation().get(0));
+
+ assertNotNull("form val. result", result.getAdESFormResults());
+ assertNotNull("extended val. result", result.getExtendedCertificateCheck());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_2_2() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.2.2-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertFalse("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertFalse("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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/ForeSeals",
+ result.getSignerInfo().getTslInfos().getAdditionalServiceInformation().get(0));
+
+ assertNotNull("form val. result", result.getAdESFormResults());
+ assertNotNull("extended val. result", result.getExtendedCertificateCheck());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_2_3() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.2.3-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertFalse("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_4_1() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.1-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_4_2() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.2-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ // TODO: should be no-QC!!!
+ @Ignore
+ @Test
+ public void euTestFile4_4_3() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.3-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertFalse("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertFalse("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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/ForeSeals",
+ result.getSignerInfo().getTslInfos().getAdditionalServiceInformation().get(0));
+
+ assertNotNull("form val. result", result.getAdESFormResults());
+ assertNotNull("extended val. result", result.getExtendedCertificateCheck());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_4_4() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.4-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ // TODO: should not be QC
+ @Test
+ public void euTestFile4_4_5() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.5-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_4_6() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.6-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_4_7() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.7-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_4_8() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.8-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ // TODO: should not be QC
+ @Test
+ public void euTestFile4_4_9() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.9-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_4_10() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.10-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertFalse("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_4_11() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.11-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertFalse("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertFalse("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNull("TSL infos", result.getSignerInfo().getTslInfos());
+
+ assertNotNull("form val. result", result.getAdESFormResults());
+ assertNotNull("extended val. result", result.getExtendedCertificateCheck());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_4_12() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.12-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertFalse("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertFalse("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNull("TSL infos", result.getSignerInfo().getTslInfos());
+
+ assertNotNull("form val. result", result.getAdESFormResults());
+ assertNotNull("extended val. result", result.getExtendedCertificateCheck());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_4_13() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.13-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_4_14() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.14-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertFalse("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_4_15() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.15-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("sscdSource", "TSL", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_4_16() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.16-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertFalse("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("sscdSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_4_17() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.17-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+//TODO: should not be QC
+ @Test
+ public void euTestFile4_4_18() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.18-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertFalse("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_4_19() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.19-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ // TODO: should not be QC
+ @Test
+ public void euTestFile4_4_20() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.20-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertFalse("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ // TODO: should not be QC
+ @Test
+ public void euTestFile4_4_21() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.4.21-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_5_1() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.5.1-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertFalse("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_5_2() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.5.2-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertFalse("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile4_5_3() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.5.3-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertFalse("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ // TODO: maybe wrong result
+ @Test
+ public void euTestFile4_5_4() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/4.5.4-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "FR", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "FR", 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/undersupervision",
+ result.getSignerInfo().getTslInfos().getServiceTypeStatus());
+ assertTrue("TSL addit. status", result.getSignerInfo().getTslInfos().getAdditionalServiceInformation()
+ .isEmpty());
+
+ assertNotNull("form val. result", result.getAdESFormResults());
+ assertNotNull("extended val. result", result.getExtendedCertificateCheck());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile5_2_1() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/5.2.1-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "IT", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "IT", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ // TODO: should be not QC
+ @Test
+ public void euTestFile5_2_2() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/5.2.2-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "IT", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "IT", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile5_2_3() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/5.2.3-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "IT", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertFalse("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "IT", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+ @Test
+ public void euTestFile5_2_4() throws MOAException, IOException, ParserConfigurationException {
+ final VerifyXMLSignatureRequest request = buildVerifyXmlRequest(IOUtils.resourceToByteArray(
+ "/testdata/xades/5.2.4-TEST FILE.xml"),
+ "OnlyTSL", true,
+ null,
+ DEFAULT_XPATH_SIGNATURE_LOCATION,
+ null, Collections.emptyMap());
+
+ // perform test
+ final VerifyXMLSignatureResponse result = xadesInvoker.verifyXMLSignature(request);
+
+ // verify result
+ assertNotNull("verification result", result);
+
+ assertEquals("sigCode", 0, result.getSignatureCheck().getCode());
+ assertEquals("certCode", 1, result.getCertificateCheck().getCode());
+
+ assertNotNull("signerInfo", result.getSignerInfo());
+ assertEquals("issuerCC", "IT", result.getSignerInfo().getIssuerCountryCode());
+ assertFalse("publicAuthority", result.getSignerInfo().isPublicAuthority());
+ assertTrue("QC", result.getSignerInfo().isQualifiedCertificate());
+ assertTrue("SSCD", result.getSignerInfo().isSSCD());
+ assertEquals("qcSource", "TSL", result.getSignerInfo().getQCSource());
+ assertEquals("qcSource", "Certificate", result.getSignerInfo().getSSCDSource());
+
+ assertNotNull("TSL infos", result.getSignerInfo().getTslInfos());
+ assertEquals("TSL CC", "IT", 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());
+ assertEquals("used sig alg", "SHA256withRSA", result.getSignatureAlgorithm());
+
+ }
+
+}