Skip to content

Commit 08b10fe

Browse files
SIVA-724 Add timestamp scopes for ASiC-S container report
1 parent de76d09 commit 08b10fe

File tree

17 files changed

+129
-47
lines changed

17 files changed

+129
-47
lines changed

validation-services-parent/generic-validation-service/src/main/java/ee/openeid/validation/service/generic/validator/report/GenericValidationReportBuilder.java

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package ee.openeid.validation.service.generic.validator.report;
1818

19-
import ee.openeid.siva.validation.document.Datafile;
2019
import ee.openeid.siva.validation.document.ValidationDocument;
2120
import ee.openeid.siva.validation.document.report.Certificate;
2221
import ee.openeid.siva.validation.document.report.CertificateType;
@@ -26,7 +25,7 @@
2625
import ee.openeid.siva.validation.document.report.Info;
2726
import ee.openeid.siva.validation.document.report.Reports;
2827
import ee.openeid.siva.validation.document.report.SignatureProductionPlace;
29-
import ee.openeid.siva.validation.document.report.SignatureScope;
28+
import ee.openeid.siva.validation.document.report.Scope;
3029
import ee.openeid.siva.validation.document.report.SignatureValidationData;
3130
import ee.openeid.siva.validation.document.report.SignerRole;
3231
import ee.openeid.siva.validation.document.report.SimpleReport;
@@ -46,7 +45,6 @@
4645
import eu.europa.esig.dss.diagnostic.TimestampWrapper;
4746
import eu.europa.esig.dss.diagnostic.jaxb.XmlRevocation;
4847
import eu.europa.esig.dss.diagnostic.jaxb.XmlSignature;
49-
import eu.europa.esig.dss.diagnostic.jaxb.XmlSignatureScope;
5048
import eu.europa.esig.dss.diagnostic.jaxb.XmlSignerRole;
5149
import eu.europa.esig.dss.enumerations.ASiCContainerType;
5250
import eu.europa.esig.dss.enumerations.DigestAlgorithm;
@@ -638,32 +636,13 @@ private static String mapDssXmlMessage(XmlMessage dssXmlMessage) {
638636
.orElse(null);
639637
}
640638

641-
private List<SignatureScope> parseSignatureScopes(String signatureId) {
639+
private List<Scope> parseSignatureScopes(String signatureId) {
642640
return dssReports.getDiagnosticData().getSignatureById(signatureId).getSignatureScopes()
643641
.stream()
644-
.map(this::parseSignatureScope)
642+
.map(s -> ReportBuilderUtils.parseScope(s, validationDocument.getDatafiles()))
645643
.collect(Collectors.toList());
646644
}
647645

648-
private SignatureScope parseSignatureScope(XmlSignatureScope dssSignatureScope) {
649-
SignatureScope signatureScope = new SignatureScope();
650-
signatureScope.setContent(emptyWhenNull(dssSignatureScope.getDescription()));
651-
signatureScope.setName(emptyWhenNull(dssSignatureScope.getName()));
652-
if (dssSignatureScope.getScope() != null)
653-
signatureScope.setScope(emptyWhenNull(dssSignatureScope.getScope().name()));
654-
if (CollectionUtils.isNotEmpty(validationDocument.getDatafiles())) {
655-
Optional<Datafile> dataFile = validationDocument.getDatafiles()
656-
.stream()
657-
.filter(datafile -> datafile.getFilename().equals(dssSignatureScope.getName()))
658-
.findFirst();
659-
if (dataFile.isPresent()) {
660-
signatureScope.setHash(dataFile.get().getHash());
661-
signatureScope.setHashAlgo(dataFile.get().getHashAlgo().toUpperCase());
662-
}
663-
}
664-
return signatureScope;
665-
}
666-
667646
private String parseClaimedSigningTime(String signatureId) {
668647
Date signingDate = dssReports.getSimpleReport().getSigningTime(signatureId);
669648
if (signingDate == null)

validation-services-parent/generic-validation-service/src/test/java/ee/openeid/validation/service/generic/HashcodeGenericValidationServiceTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import ee.openeid.siva.validation.document.report.CertificateType;
2323
import ee.openeid.siva.validation.document.report.Reports;
2424
import ee.openeid.siva.validation.document.report.SignatureProductionPlace;
25-
import ee.openeid.siva.validation.document.report.SignatureScope;
25+
import ee.openeid.siva.validation.document.report.Scope;
2626
import ee.openeid.siva.validation.document.report.SignatureValidationData;
2727
import ee.openeid.siva.validation.document.report.SignerRole;
2828
import ee.openeid.siva.validation.service.signature.policy.ConstraintLoadingSignaturePolicyService;
@@ -92,7 +92,7 @@ public void setUp() {
9292
@Test
9393
void validHashcodeRequest() throws Exception {
9494
Reports response = validationService.validate(getValidationDocumentSingletonList());
95-
SignatureScope signatureScope = response.getSimpleReport().getValidationConclusion().getSignatures().get(0).getSignatureScopes().get(0);
95+
Scope signatureScope = response.getSimpleReport().getValidationConclusion().getSignatures().get(0).getSignatureScopes().get(0);
9696
assertEquals("LvhnsrgBZBK9kTQ8asbPtcsjuEhBo9s3QDdCcIxlMmo=", signatureScope.getHash());
9797
assertEquals("SHA256", signatureScope.getHashAlgo());
9898
assertEquals("test.pdf", signatureScope.getName());
@@ -115,7 +115,7 @@ void validDataFromSignatureFile() throws Exception {
115115
List<ValidationDocument> validationDocuments = getValidationDocumentSingletonList();
116116
validationDocuments.get(0).setDatafiles(null);
117117
Reports response = validationService.validate(validationDocuments);
118-
SignatureScope signatureScope = response.getSimpleReport().getValidationConclusion().getSignatures().get(0).getSignatureScopes().get(0);
118+
Scope signatureScope = response.getSimpleReport().getValidationConclusion().getSignatures().get(0).getSignatureScopes().get(0);
119119
assertEquals("LvhnsrgBZBK9kTQ8asbPtcsjuEhBo9s3QDdCcIxlMmo=", signatureScope.getHash());
120120
assertEquals("SHA256", signatureScope.getHashAlgo());
121121
assertEquals("test.pdf", signatureScope.getName());

validation-services-parent/generic-validation-service/src/test/java/ee/openeid/validation/service/generic/PDFWithOneValidSignatureTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import ee.openeid.siva.validation.document.ValidationDocument;
2020
import ee.openeid.siva.validation.document.report.Reports;
21-
import ee.openeid.siva.validation.document.report.SignatureScope;
21+
import ee.openeid.siva.validation.document.report.Scope;
2222
import ee.openeid.siva.validation.document.report.SignatureValidationData;
2323
import ee.openeid.siva.validation.document.report.SimpleReport;
2424
import ee.openeid.siva.validation.document.report.ValidationConclusion;
@@ -93,7 +93,7 @@ void validatedSignatureShouldHaveFormatAndLevel() {
9393
void validationResultForValidPDFShouldHaveCorrectSignatureScopeForPDF() {
9494
SimpleReport report = validateAndAssertReports(
9595
buildValidationDocument(PDF_WITH_ONE_VALID_SIGNATURE)).getSimpleReport();
96-
SignatureScope scope = report.getValidationConclusion().getSignatures().get(0).getSignatureScopes().get(0);
96+
Scope scope = report.getValidationConclusion().getSignatures().get(0).getSignatureScopes().get(0);
9797

9898
assertEquals("The document ByteRange : [0, 14153, 52047, 491]", scope.getContent());
9999
assertEquals("PARTIAL", scope.getScope());

validation-services-parent/timemark-container-validation-service/src/main/java/ee/openeid/validation/service/timemark/report/AsicContainerValidationReportBuilder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import ee.openeid.siva.validation.document.ValidationDocument;
2020
import ee.openeid.siva.validation.document.report.Certificate;
2121
import ee.openeid.siva.validation.document.report.CertificateType;
22-
import ee.openeid.siva.validation.document.report.SignatureScope;
22+
import ee.openeid.siva.validation.document.report.Scope;
2323
import ee.openeid.siva.validation.document.report.SignatureValidationData;
2424
import ee.openeid.siva.validation.document.report.ValidationConclusion;
2525
import ee.openeid.siva.validation.document.report.ValidationWarning;
@@ -105,7 +105,7 @@ List<ValidationWarning> getExtraValidationWarnings() {
105105
}
106106

107107
@Override
108-
List<SignatureScope> getSignatureScopes(Signature signature, List<String> dataFilenames) {
108+
List<Scope> getSignatureScopes(Signature signature, List<String> dataFilenames) {
109109
AsicESignature bDocSignature = (AsicESignature) signature;
110110
return bDocSignature.getOrigin().getReferences()
111111
.stream()
@@ -125,8 +125,8 @@ String getSignatureFormat(SignatureProfile profile) {
125125
return XADES_FORMAT_PREFIX + profile.toString();
126126
}
127127

128-
private static SignatureScope createFullSignatureScopeForDataFile(String filename) {
129-
SignatureScope signatureScope = new SignatureScope();
128+
private static Scope createFullSignatureScopeForDataFile(String filename) {
129+
Scope signatureScope = new Scope();
130130
signatureScope.setName(filename);
131131
signatureScope.setScope(FULL_SIGNATURE_SCOPE);
132132
signatureScope.setContent(FULL_DOCUMENT);

validation-services-parent/timemark-container-validation-service/src/main/java/ee/openeid/validation/service/timemark/report/DDOCContainerValidationReportBuilder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package ee.openeid.validation.service.timemark.report;
1818

1919
import ee.openeid.siva.validation.document.ValidationDocument;
20-
import ee.openeid.siva.validation.document.report.SignatureScope;
20+
import ee.openeid.siva.validation.document.report.Scope;
2121
import ee.openeid.siva.validation.document.report.SignatureValidationData;
2222
import ee.openeid.siva.validation.document.report.ValidationConclusion;
2323
import ee.openeid.siva.validation.document.report.ValidationWarning;
@@ -83,7 +83,7 @@ List<ValidationWarning> getExtraValidationWarnings() {
8383
}
8484

8585
@Override
86-
List<SignatureScope> getSignatureScopes(Signature signature, List<String> dataFilenames) {
86+
List<Scope> getSignatureScopes(Signature signature, List<String> dataFilenames) {
8787
return dataFilenames
8888
.stream()
8989
.map(this::mapDataFile)
@@ -101,8 +101,8 @@ String getSignatureFormat(SignatureProfile profile) {
101101
return dDocFacade.getFormat().replaceAll("-", "_") + "_" + dDocFacade.getVersion();
102102
}
103103

104-
private SignatureScope mapDataFile(String filename) {
105-
SignatureScope signatureScope = new SignatureScope();
104+
private Scope mapDataFile(String filename) {
105+
Scope signatureScope = new Scope();
106106
signatureScope.setName(filename);
107107
signatureScope.setContent(FULL_DOCUMENT);
108108
signatureScope.setScope(FULL_SIGNATURE_SCOPE);

validation-services-parent/timemark-container-validation-service/src/main/java/ee/openeid/validation/service/timemark/report/TimemarkContainerValidationReportBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ protected Optional<ValidationResult> getSignatureValidationResult(String uniqueI
396396

397397
abstract List<ValidationWarning> getExtraValidationWarnings();
398398

399-
abstract List<SignatureScope> getSignatureScopes(Signature signature, List<String> dataFilenames);
399+
abstract List<Scope> getSignatureScopes(Signature signature, List<String> dataFilenames);
400400

401401
abstract String getSignatureForm();
402402

validation-services-parent/timemark-container-validation-service/src/test/java/ee/openeid/validation/service/timemark/DDOCServiceIntegrationTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import ee.openeid.siva.validation.document.report.DataFileData;
2525
import ee.openeid.siva.validation.document.report.DataFilesReport;
2626
import ee.openeid.siva.validation.document.report.Policy;
27-
import ee.openeid.siva.validation.document.report.SignatureScope;
27+
import ee.openeid.siva.validation.document.report.Scope;
2828
import ee.openeid.siva.validation.document.report.SignatureValidationData;
2929
import ee.openeid.siva.validation.document.report.SimpleReport;
3030
import ee.openeid.siva.validation.document.report.SubjectDistinguishedName;
@@ -190,7 +190,7 @@ void validationReportShouldHaveCorrectSignatureValidationDataForSignature1() {
190190
assertThat(sig1.getErrors(), empty());
191191
assertThat(sig1.getWarnings(), empty());
192192
assertThat(sig1.getSignatureScopes(), hasSize(1));
193-
SignatureScope scope = sig1.getSignatureScopes().get(0);
193+
Scope scope = sig1.getSignatureScopes().get(0);
194194
assertEquals("Šužlikud sõid ühe õuna ära.txt", scope.getName());
195195
assertEquals("2005-02-11T16:23:43Z", sig1.getInfo().getBestSignatureTime());
196196
assertEquals("7BWOmJnhm9HUbcnnnb/9SkYe1ok=", sig1.getInfo().getTimeAssertionMessageImprint());
@@ -224,7 +224,7 @@ void validationReportShouldHaveCorrectSignatureValidationDataForSignature2() {
224224
assertThat(sig2.getErrors(), empty());
225225
assertThat(sig2.getWarnings(), empty());
226226
assertThat(sig2.getSignatureScopes(), hasSize(1));
227-
SignatureScope scope = sig2.getSignatureScopes().get(0);
227+
Scope scope = sig2.getSignatureScopes().get(0);
228228
assertEquals("Šužlikud sõid ühe õuna ära.txt", scope.getName());
229229
assertEquals("Digest of the document content", scope.getContent());
230230
assertEquals("FullSignatureScope", scope.getScope());

validation-services-parent/timemark-container-validation-service/src/test/java/ee/openeid/validation/service/timemark/TimemarkContainerValidationServiceIntegrationTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import ee.openeid.siva.validation.document.report.CertificateType;
2222
import ee.openeid.siva.validation.document.report.Policy;
2323
import ee.openeid.siva.validation.document.report.Reports;
24-
import ee.openeid.siva.validation.document.report.SignatureScope;
24+
import ee.openeid.siva.validation.document.report.Scope;
2525
import ee.openeid.siva.validation.document.report.SignatureValidationData;
2626
import ee.openeid.siva.validation.document.report.SimpleReport;
2727
import ee.openeid.siva.validation.document.report.SubjectDistinguishedName;
@@ -193,7 +193,7 @@ void signatureScopeShouldBeCorrectWhenDatafilesContainSpacesOrParenthesis() {
193193
private void assertContainsScope(SignatureValidationData signature, String filename) {
194194
assertThat(signature.getSignatureScopes()
195195
.stream()
196-
.map(SignatureScope::getName)
196+
.map(Scope::getName)
197197
.filter(name -> StringUtils.equals(filename, name))
198198
.count(), greaterThan(0L));
199199
}
@@ -219,7 +219,7 @@ void validationReportShouldHaveCorrectSignatureValidationDataForSignature1() {
219219
assertThat(sig1.getErrors(), empty());
220220
assertThat(sig1.getWarnings(), empty());
221221
assertThat(sig1.getSignatureScopes(), hasSize(1));
222-
SignatureScope scope = sig1.getSignatureScopes().get(0);
222+
Scope scope = sig1.getSignatureScopes().get(0);
223223
assertEquals("test.txt", scope.getName());
224224
assertEquals("Digest of the document content", scope.getContent());
225225
assertEquals("FullSignatureScope", scope.getScope());
@@ -250,7 +250,7 @@ void validationReportShouldHaveCorrectSignatureValidationDataForSignature2() {
250250
assertThat(sig2.getErrors(), empty());
251251
assertThat(sig2.getWarnings(), empty());
252252
assertThat(sig2.getSignatureScopes(), hasSize(1));
253-
SignatureScope scope = sig2.getSignatureScopes().get(0);
253+
Scope scope = sig2.getSignatureScopes().get(0);
254254
assertEquals("test.txt", scope.getName());
255255
assertEquals("Digest of the document content", scope.getContent());
256256
assertEquals("FullSignatureScope", scope.getScope());

validation-services-parent/timestamptoken-validation-service/src/main/java/ee/openeid/validation/service/timestamptoken/validator/report/TimeStampTokenValidationReportBuilder.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ private List<TimeStampTokenValidationData> generateTimeStampTokenData() {
105105
timeStampTokenValidationData.setSignedBy(ts.getSigningCertificate().getCommonName());
106106
timeStampTokenValidationData.setSignedTime(getDateFormatterWithGMTZone().format(ts.getProductionTime()));
107107
timeStampTokenValidationData.setCertificates(getCertificateList(ts));
108+
timeStampTokenValidationData.setTimestampScopes(getTimestampScopes(ts));
108109
Optional.ofNullable(dssReports.getSimpleReport().getTimestampQualification(timestampId))
109110
.map(TimestampQualification::name)
110111
.ifPresent(timeStampTokenValidationData::setTimestampLevel);
@@ -133,6 +134,13 @@ private List<TimeStampTokenValidationData> generateTimeStampTokenData() {
133134
return timeStampTokenValidationDataList;
134135
}
135136

137+
private List<Scope> getTimestampScopes(TimestampWrapper ts) {
138+
return dssReports.getDiagnosticData().getTimestampById(ts.getId()).getTimestampScopes()
139+
.stream()
140+
.map(s -> ReportBuilderUtils.parseScope(s, validationDocument.getDatafiles()))
141+
.collect(Collectors.toList());
142+
}
143+
136144
private static void addWarningTo(TimeStampTokenValidationData timeStampTokenValidationData, String warningMessage) {
137145
List<Warning> warnings = timeStampTokenValidationData.getWarning();
138146
if (warnings == null) {

0 commit comments

Comments
 (0)