From 00e4e0cbaf7fe6b2ecb08011995f00e503981911 Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Tue, 13 Feb 2018 11:27:02 +0100 Subject: add infos about signature and hash algorithms into responses --- .../moa/spss/api/xmlbind/ResponseBuilderUtils.java | 20 ++++++++++++++++++++ .../xmlbind/VerifyCMSSignatureResponseBuilder.java | 5 +++++ .../xmlbind/VerifyPDFSignatureResponseBuilder.java | 7 +++++++ .../xmlbind/VerifyXMLSignatureResponseBuilder.java | 11 +++++++++++ 4 files changed, 43 insertions(+) (limited to 'moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind') diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/ResponseBuilderUtils.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/ResponseBuilderUtils.java index 91dc6b9..a21e693 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/ResponseBuilderUtils.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/ResponseBuilderUtils.java @@ -389,6 +389,26 @@ public class ResponseBuilderUtils { } } + public static void addSignatureAlgorithm(Document response, + Element root, + String algorithm) { + if(algorithm != null) { + Element extElem = response.createElementNS(MOA_NS_URI, "SignatureAlgorithm"); + extElem.appendChild(response.createTextNode(algorithm)); + root.appendChild(extElem); + } + } + + public static void addHashAlgorithm(Document response, + Element root, + String algorithm) { + if(algorithm != null) { + Element extElem = response.createElementNS(MOA_NS_URI, "HashAlgorithm"); + extElem.appendChild(response.createTextNode(algorithm)); + root.appendChild(extElem); + } +} + public static void addExtendendResult(Document response, Element root, ExtendedCertificateCheckResult result) { diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureResponseBuilder.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureResponseBuilder.java index 30bf3c4..de39948 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureResponseBuilder.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureResponseBuilder.java @@ -132,6 +132,11 @@ public class VerifyCMSSignatureResponseBuilder { responseElem, signerInfo.getSigningTime()); } + ResponseBuilderUtils.addSignatureAlgorithm(responseDoc, + responseElem, + responseElement.getSignatureAlgorithm()); + + ResponseBuilderUtils.addCodeInfoElement( responseDoc, responseElem, diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyPDFSignatureResponseBuilder.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyPDFSignatureResponseBuilder.java index 0ca6f8f..8b10191 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyPDFSignatureResponseBuilder.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyPDFSignatureResponseBuilder.java @@ -123,11 +123,18 @@ public class VerifyPDFSignatureResponseBuilder { responseElem, signerInfo.getSigningTime()); + } else { Logger.info("Find signature result with no 'SignerInfo'. Maybe a signature verification Failed"); } + + ResponseBuilderUtils.addSignatureAlgorithm(responseDoc, + responseElem, + responseElement.getSignatureAlgorithm()); + + ResponseBuilderUtils.addCodeInfoElement( responseDoc, responseElem, diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureResponseBuilder.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureResponseBuilder.java index 0042464..82d01c0 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureResponseBuilder.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureResponseBuilder.java @@ -35,6 +35,7 @@ import org.w3c.dom.NodeList; import at.gv.egovernment.moaspss.logging.Logger; import at.gv.egovernment.moaspss.util.Base64Utils; import at.gv.egovernment.moaspss.util.Constants; +import at.gv.egovernment.moaspss.util.MiscUtil; import at.gv.egovernment.moa.spss.MOAApplicationException; import at.gv.egovernment.moa.spss.MOASystemException; import at.gv.egovernment.moa.spss.api.common.Content; @@ -134,6 +135,9 @@ public class VerifyXMLSignatureResponseBuilder { } } + //add hash algorithm + ResponseBuilderUtils.addSignatureAlgorithm(responseDoc, responseElem, response.getSignatureAlgorithm()); + // add the SignatureCheck addReferencesCheckResult("SignatureCheck", response.getSignatureCheck()); @@ -204,6 +208,11 @@ public class VerifyXMLSignatureResponseBuilder { contentElem.setAttributeNS(null, "ReferringSigReference", Integer.toString(inputData.getReferringReferenceNumber())); + if (MiscUtil.isNotEmpty(inputData.getHashAlgorithm())) { + contentElem.setAttribute("HashAlgorithm", inputData.getHashAlgorithm()); + + } + switch (inputData.getContentType()) { case Content.XML_CONTENT: ContentXML contentXml = (ContentXML) inputData; @@ -236,6 +245,7 @@ public class VerifyXMLSignatureResponseBuilder { responseElem.appendChild(contentElem); break; } + } /** @@ -267,6 +277,7 @@ public class VerifyXMLSignatureResponseBuilder { } ResponseBuilderUtils.addCodeInfoElement(responseDoc, responseElem, elementName, checkResult.getCode(), info); + } /** -- cgit v1.2.3