From a9feaaeb19126c474b0b390fcdccaa1a6066afa6 Mon Sep 17 00:00:00 2001
From: Pierrick Vandenbroucke <pierrick.vandenbroucke@nowina.lu>
Date: Thu, 16 Aug 2018 10:57:01 +0200
Subject: [PATCH] DSS-1473 : investigation ODT

---
 .../validation/AbstractASiCContainerValidator.java |   4 ++
 .../ASiCContainerWithXAdESValidator.java           |   6 +-
 .../asic/validation/LibreOfficeValidationTest.java |  26 ++++++++
 .../src/test/resources/validation/libreoffice.odt  | Bin 0 -> 14384 bytes
 .../eu/europa/esig/dss/xades/XPathQueryHolder.java |   1 +
 .../esig/dss/xades/validation/XAdESSignature.java  |  67 ++++++++++++++++-----
 6 files changed, 88 insertions(+), 16 deletions(-)
 create mode 100644 dss-asic-xades/src/test/java/eu/europa/esig/dss/asic/validation/LibreOfficeValidationTest.java
 create mode 100644 dss-asic-xades/src/test/resources/validation/libreoffice.odt

diff --git a/dss-asic-common/src/main/java/eu/europa/esig/dss/asic/validation/AbstractASiCContainerValidator.java b/dss-asic-common/src/main/java/eu/europa/esig/dss/asic/validation/AbstractASiCContainerValidator.java
index 3d9086c98..0f259eb62 100644
--- a/dss-asic-common/src/main/java/eu/europa/esig/dss/asic/validation/AbstractASiCContainerValidator.java
+++ b/dss-asic-common/src/main/java/eu/europa/esig/dss/asic/validation/AbstractASiCContainerValidator.java
@@ -126,6 +126,10 @@ public abstract class AbstractASiCContainerValidator extends SignedDocumentValid
 		return extractResult.getSignatureDocuments();
 	}
 
+	protected DSSDocument getMimeTypeDocument() {
+		return extractResult.getMimeTypeDocument();
+	}
+
 	protected List<DSSDocument> getSignedDocuments() {
 		return extractResult.getSignedDocuments();
 	}
diff --git a/dss-asic-xades/src/main/java/eu/europa/esig/dss/asic/validation/ASiCContainerWithXAdESValidator.java b/dss-asic-xades/src/main/java/eu/europa/esig/dss/asic/validation/ASiCContainerWithXAdESValidator.java
index a6f568014..9f0b604ff 100644
--- a/dss-asic-xades/src/main/java/eu/europa/esig/dss/asic/validation/ASiCContainerWithXAdESValidator.java
+++ b/dss-asic-xades/src/main/java/eu/europa/esig/dss/asic/validation/ASiCContainerWithXAdESValidator.java
@@ -48,7 +48,11 @@ public class ASiCContainerWithXAdESValidator extends AbstractASiCContainerValida
 				xadesValidator.setProcessExecutor(processExecutor);
 				xadesValidator.setValidationCertPool(validationCertPool);
 				xadesValidator.setSignaturePolicyProvider(signaturePolicyProvider);
-				xadesValidator.setDetachedContents(getSignedDocuments());
+				List<DSSDocument> docs = new ArrayList<DSSDocument>();
+				docs.addAll(getSignedDocuments());
+				docs.addAll(getManifestDocuments());
+				docs.add(getMimeTypeDocument());
+				xadesValidator.setDetachedContents(docs);
 				validators.add(xadesValidator);
 			}
 		}
diff --git a/dss-asic-xades/src/test/java/eu/europa/esig/dss/asic/validation/LibreOfficeValidationTest.java b/dss-asic-xades/src/test/java/eu/europa/esig/dss/asic/validation/LibreOfficeValidationTest.java
new file mode 100644
index 000000000..ce6c38763
--- /dev/null
+++ b/dss-asic-xades/src/test/java/eu/europa/esig/dss/asic/validation/LibreOfficeValidationTest.java
@@ -0,0 +1,26 @@
+package eu.europa.esig.dss.asic.validation;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+import eu.europa.esig.dss.FileDocument;
+import eu.europa.esig.dss.validation.CommonCertificateVerifier;
+import eu.europa.esig.dss.validation.SignedDocumentValidator;
+import eu.europa.esig.dss.validation.reports.Reports;
+import eu.europa.esig.dss.validation.reports.wrapper.DiagnosticData;
+
+public class LibreOfficeValidationTest {
+
+	@Test
+	public void test() {
+		FileDocument doc = new FileDocument("src/test/resources/validation/libreoffice.odt");
+		SignedDocumentValidator validator = SignedDocumentValidator.fromDocument(doc);
+		validator.setCertificateVerifier(new CommonCertificateVerifier());
+		Reports reports = validator.validateDocument();
+
+		DiagnosticData diagnosticData = reports.getDiagnosticData();
+		assertTrue(diagnosticData.isBLevelTechnicallyValid(diagnosticData.getFirstSignatureId()));
+	}
+
+}
diff --git a/dss-asic-xades/src/test/resources/validation/libreoffice.odt b/dss-asic-xades/src/test/resources/validation/libreoffice.odt
new file mode 100644
index 0000000000000000000000000000000000000000..bca9d19d963d312923a7402f7aab793e30945352
GIT binary patch
literal 14384
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

literal 0
HcmV?d00001

diff --git a/dss-xades/src/main/java/eu/europa/esig/dss/xades/XPathQueryHolder.java b/dss-xades/src/main/java/eu/europa/esig/dss/xades/XPathQueryHolder.java
index 96eb9f693..32f646f73 100644
--- a/dss-xades/src/main/java/eu/europa/esig/dss/xades/XPathQueryHolder.java
+++ b/dss-xades/src/main/java/eu/europa/esig/dss/xades/XPathQueryHolder.java
@@ -57,6 +57,7 @@ public class XPathQueryHolder implements Serializable {
 	public static final String XMLE_SIG_AND_REFS_TIME_STAMP_V2 = "SigAndRefsTimeStampV2";
 
 	public String XADES_SIGNED_PROPERTIES = "http://uri.etsi.org/01903#SignedProperties";
+	public String XADES_SIGNED_PROPERTIES_NODE_NAME = "SignedProperties";
 
 	public String XADES_COUNTERSIGNED_SIGNATURE = "http://uri.etsi.org/01903#CountersignedSignature";
 
diff --git a/dss-xades/src/main/java/eu/europa/esig/dss/xades/validation/XAdESSignature.java b/dss-xades/src/main/java/eu/europa/esig/dss/xades/validation/XAdESSignature.java
index 292146012..a9e4cf9c4 100644
--- a/dss-xades/src/main/java/eu/europa/esig/dss/xades/validation/XAdESSignature.java
+++ b/dss-xades/src/main/java/eu/europa/esig/dss/xades/validation/XAdESSignature.java
@@ -1142,30 +1142,26 @@ public class XAdESSignature extends DefaultAdvancedSignature {
 				}
 				certificateNumber++;
 			}
-			if (!coreValidity) {
-				LOG.warn("Determining signing certificate from certificate candidates list failed: {}", preliminaryErrorMessages);
-				for (String preliminaryErrorMessage : preliminaryErrorMessages) {
-					signatureCryptographicVerification.setErrorMessage(preliminaryErrorMessage);
-				}
-			}
+
 			final SignedInfo signedInfo = santuarioSignature.getSignedInfo();
+			collectReferences(signedInfo);
+
 			final int length = signedInfo.getLength();
 
 			boolean referenceDataFound = length > 0;
 			boolean referenceDataHashValid = length > 0;
 
-			boolean foundSignedProperties = false;
-			for (int ii = 0; ii < length; ii++) {
-				final Reference reference = signedInfo.item(ii);
-				if (xPathQueryHolder.XADES_SIGNED_PROPERTIES.equals(reference.getType())) {
-					foundSignedProperties = true;
-				}
-				if (!coreValidity) {
-					referenceDataHashValid = referenceDataHashValid && reference.verify();
+			if (!coreValidity) {
+				LOG.warn("Determining signing certificate from certificate candidates list failed: {}", preliminaryErrorMessages);
+				for (String preliminaryErrorMessage : preliminaryErrorMessages) {
+					signatureCryptographicVerification.setErrorMessage(preliminaryErrorMessage);
 				}
-				references.add(reference);
+
+				referenceDataHashValid = isReferenceDataHashValid(signedInfo);
 			}
 
+			boolean foundSignedProperties = isSignedPropertiesCovered(signedInfo);
+
 			// 1 reference for SignedProperties + 1 reference / signed object
 			referenceDataFound = referenceDataFound && foundSignedProperties;
 
@@ -1191,6 +1187,47 @@ public class XAdESSignature extends DefaultAdvancedSignature {
 		}
 	}
 
+	private void collectReferences(final SignedInfo signedInfo) throws XMLSecurityException {
+		for (int ii = 0; ii < signedInfo.getLength(); ii++) {
+			references.add(signedInfo.item(ii));
+		}
+	}
+
+	private boolean isReferenceDataHashValid(SignedInfo signedInfo) throws XMLSecurityException {
+		for (int ii = 0; ii < signedInfo.getLength(); ii++) {
+			final Reference reference = signedInfo.item(ii);
+			if (!reference.verify()) {
+				return false;
+			}
+		}
+		return true;
+	}
+
+	private boolean isSignedPropertiesCovered(SignedInfo signedInfo) throws XMLSecurityException {
+		for (int ii = 0; ii < signedInfo.getLength(); ii++) {
+			final Reference reference = signedInfo.item(ii);
+			if (xPathQueryHolder.XADES_SIGNED_PROPERTIES.equals(reference.getType())) {
+				return true;
+			}
+		}
+
+		LOG.warn("Not clearly defined SignedProperties (type attribute not present on the ds:reference)");
+
+		for (int ii = 0; ii < signedInfo.getLength(); ii++) {
+			final Reference reference = signedInfo.item(ii);
+			final String content = new String(reference.getReferencedBytes());
+			if (content.startsWith("<")) {
+				Document buildDOM = DomUtils.buildDOM(content);
+				Element element = buildDOM.getDocumentElement();
+				if (xPathQueryHolder.canUseThisXPathQueryHolder(element.getNamespaceURI())
+						&& xPathQueryHolder.XADES_SIGNED_PROPERTIES_NODE_NAME.equals(element.getLocalName())) {
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+
 	/**
 	 * This method returns a {@code List} of {@code SigningCertificateValidity} base on the certificates extracted from
 	 * the signature or on the
-- 
2.16.2.windows.1

