From d9bc029c7c0fce88789a643ad32055711c9d4ff4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ce=C4=BEuch?= Date: Sun, 14 Apr 2024 00:49:46 +0200 Subject: [PATCH] generate pretty container names --- .../digital/slovensko/avm/core/SigningJob.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/java/digital/slovensko/avm/core/SigningJob.java b/src/main/java/digital/slovensko/avm/core/SigningJob.java index 97cfae8..f8e8d5e 100644 --- a/src/main/java/digital/slovensko/avm/core/SigningJob.java +++ b/src/main/java/digital/slovensko/avm/core/SigningJob.java @@ -63,10 +63,28 @@ public SignedDocument signDocument(DataToSignStructure dataToSignStructure, Stri throw new DataToSignMismatchException(); var doc = service.signDocument(document, signatureParameters, signatureValue); + doc.setName(generatePrettyName(doc.getName(), document.getName())); + return new SignedDocument(doc, token); } + private static String generatePrettyName(String newName, String originalName) { + var lastDotIndex = originalName.lastIndexOf('.'); + var nameWithoutExtension = lastDotIndex == -1 ? originalName : originalName.substring(0, lastDotIndex); + var extension = generatePrettyExtension(newName.substring(newName.lastIndexOf('.') + 1)); + + return nameWithoutExtension + "_signed." + extension; + } + + private static String generatePrettyExtension(String extension) { + return switch (extension) { + case "scs" -> "asics"; + case "sce" -> "asice"; + default -> extension; + }; + } + private static AbstractSignatureService getServiceForSignatureLevel(SignatureForm signatureForm, ASiCContainerType container, CertificateVerifier certificateVerifier) { return switch (signatureForm) { case XAdES -> container != null ? new ASiCWithXAdESService(certificateVerifier) : new XAdESService(certificateVerifier);