diff --git a/validation-services-parent/timemark-container-validation-service/src/main/java/ee/openeid/validation/service/timemark/report/TimemarkContainerValidationReportBuilder.java b/validation-services-parent/timemark-container-validation-service/src/main/java/ee/openeid/validation/service/timemark/report/TimemarkContainerValidationReportBuilder.java index df3c5ae76..22f1e8066 100644 --- a/validation-services-parent/timemark-container-validation-service/src/main/java/ee/openeid/validation/service/timemark/report/TimemarkContainerValidationReportBuilder.java +++ b/validation-services-parent/timemark-container-validation-service/src/main/java/ee/openeid/validation/service/timemark/report/TimemarkContainerValidationReportBuilder.java @@ -224,7 +224,7 @@ eu.europa.esig.dss.simplereport.SimpleReport getDssSimpleReport(AsicESignature b private Info getInfo(Signature signature) { Info info = new Info(); info.setBestSignatureTime(getBestSignatureTime(signature)); - if (signature.getProfile() == SignatureProfile.LT) { + if (List.of(SignatureProfile.T, SignatureProfile.LT, SignatureProfile.LTA).contains(signature.getProfile())) { info.setTimestampCreationTime(getTimestampTime(signature)); } info.setOcspResponseCreationTime(getOcspTime(signature)); diff --git a/validation-services-parent/timemark-container-validation-service/src/test/java/ee/openeid/validation/service/timemark/BDOCTestUtils.java b/validation-services-parent/timemark-container-validation-service/src/test/java/ee/openeid/validation/service/timemark/BDOCTestUtils.java index 9b7c2c17d..42244f826 100644 --- a/validation-services-parent/timemark-container-validation-service/src/test/java/ee/openeid/validation/service/timemark/BDOCTestUtils.java +++ b/validation-services-parent/timemark-container-validation-service/src/test/java/ee/openeid/validation/service/timemark/BDOCTestUtils.java @@ -33,6 +33,8 @@ final class BDOCTestUtils { static final String BDOC_TEST_OF_KLASS3_CHAIN = "etoken_CPP.bdoc"; static final String BDOC_TEST_FILE_UNSIGNED = "3f_2s_1f_unsigned.bdoc"; static final String BDOC_TEST_FILE_ALL_SIGNED = "2f_all_signed.bdoc"; + static final String BDOC_TEST_FILE_T_LEVEL_SIGNATURE = "TS-05_23634_TS_unknown_TSA.bdoc"; + static final String ASICE_TEST_FILE_LTA_LEVEL_SIGNATURE = "valid-asice-lta.asice"; static ValidationDocument buildValidationDocument(String testFile) { return DummyValidationDocumentBuilder diff --git a/validation-services-parent/timemark-container-validation-service/src/test/java/ee/openeid/validation/service/timemark/TimemarkContainerValidationServiceIntegrationTest.java b/validation-services-parent/timemark-container-validation-service/src/test/java/ee/openeid/validation/service/timemark/TimemarkContainerValidationServiceIntegrationTest.java index 8c3306dfa..e76e4abd3 100644 --- a/validation-services-parent/timemark-container-validation-service/src/test/java/ee/openeid/validation/service/timemark/TimemarkContainerValidationServiceIntegrationTest.java +++ b/validation-services-parent/timemark-container-validation-service/src/test/java/ee/openeid/validation/service/timemark/TimemarkContainerValidationServiceIntegrationTest.java @@ -65,6 +65,8 @@ import static ee.openeid.validation.service.timemark.BDOCTestUtils.ASICE_CRL_ONLY; import static ee.openeid.validation.service.timemark.BDOCTestUtils.BDOC_TEST_FILE_ALL_SIGNED; +import static ee.openeid.validation.service.timemark.BDOCTestUtils.ASICE_TEST_FILE_LTA_LEVEL_SIGNATURE; +import static ee.openeid.validation.service.timemark.BDOCTestUtils.BDOC_TEST_FILE_T_LEVEL_SIGNATURE; import static ee.openeid.validation.service.timemark.BDOCTestUtils.BDOC_TEST_FILE_UNSIGNED; import static ee.openeid.validation.service.timemark.BDOCTestUtils.BDOC_TEST_OF_KLASS3_CHAIN; import static ee.openeid.validation.service.timemark.BDOCTestUtils.VALID_ASICE; @@ -72,6 +74,7 @@ import static ee.openeid.validation.service.timemark.BDOCTestUtils.VALID_BDOC_TM_2_SIGNATURES; import static ee.openeid.validation.service.timemark.BDOCTestUtils.VALID_ID_CARD_MOB_ID; import static ee.openeid.validation.service.timemark.BDOCTestUtils.buildValidationDocument; +import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsInAnyOrder; @@ -79,6 +82,7 @@ import static org.hamcrest.Matchers.emptyOrNullString; import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.Matchers.hasSize; +import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.beans.HasPropertyWithValue.hasProperty; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -471,6 +475,24 @@ void certificatePresentLT() throws Exception { assertEquals("SK TIMESTAMPING AUTHORITY", timestampCertificate.getCommonName()); } + @Test + void validateDocument_ProfileLevelIsT_TimestampCreationTimeIsPresent() { + SimpleReport validationResult = timemarkContainerValidationService.validateDocument(buildValidationDocument(BDOC_TEST_FILE_T_LEVEL_SIGNATURE)).getSimpleReport(); + + String tsCreationTime = validationResult.getValidationConclusion().getSignatures().get(0).getInfo().getTimestampCreationTime(); + assertThat(tsCreationTime, notNullValue()); + assertThat(tsCreationTime, equalTo("2014-05-19T10:45:19Z")); + } + + @Test + void validateDocument_ProfileLevelIsLTA_TimestampCreationTimeIsPresent() { + SimpleReport validationResult = timemarkContainerValidationService.validateDocument(buildValidationDocument(ASICE_TEST_FILE_LTA_LEVEL_SIGNATURE)).getSimpleReport(); + + String tsCreationTime = validationResult.getValidationConclusion().getSignatures().get(0).getInfo().getTimestampCreationTime(); + assertThat(tsCreationTime, notNullValue()); + assertThat(tsCreationTime, equalTo("2018-11-23T12:24:04Z")); + } + private void assertSubjectDNPresent(SignatureValidationData signature, String serialNumber, String commonName, String givenName, String surname) { SubjectDistinguishedName subjectDistinguishedName = signature.getSubjectDistinguishedName(); diff --git a/validation-services-parent/timemark-container-validation-service/src/test/resources/test-files/TS-05_23634_TS_unknown_TSA.bdoc b/validation-services-parent/timemark-container-validation-service/src/test/resources/test-files/TS-05_23634_TS_unknown_TSA.bdoc new file mode 100644 index 000000000..fa71a22ca Binary files /dev/null and b/validation-services-parent/timemark-container-validation-service/src/test/resources/test-files/TS-05_23634_TS_unknown_TSA.bdoc differ diff --git a/validation-services-parent/timemark-container-validation-service/src/test/resources/test-files/valid-asice-lta.asice b/validation-services-parent/timemark-container-validation-service/src/test/resources/test-files/valid-asice-lta.asice new file mode 100644 index 000000000..81fc969e6 Binary files /dev/null and b/validation-services-parent/timemark-container-validation-service/src/test/resources/test-files/valid-asice-lta.asice differ