diff options
author | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2016-06-27 15:50:43 +0200 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2016-06-27 15:50:43 +0200 |
commit | 6a75d8fee4aa8628bfa7884821594c8718678cf1 (patch) | |
tree | b194753bc492ff3e750479e81c3b5b7bf8173c9e /moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind | |
parent | 451171db528e8d8feff1b3fac7e3f04302b6f59f (diff) | |
download | moa-sig-6a75d8fee4aa8628bfa7884821594c8718678cf1.tar.gz moa-sig-6a75d8fee4aa8628bfa7884821594c8718678cf1.tar.bz2 moa-sig-6a75d8fee4aa8628bfa7884821594c8718678cf1.zip |
return signing time for pdf and ASICMOA-SPSS-3.0.0
Diffstat (limited to 'moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind')
4 files changed, 41 insertions, 2 deletions
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 193ea33..ef5a367 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 @@ -27,7 +27,13 @@ package at.gv.egovernment.moa.spss.api.xmlbind; import java.io.IOException; import java.security.cert.CertificateEncodingException; import java.security.cert.X509Certificate; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.Calendar; +import java.util.TimeZone; +import javax.xml.bind.DatatypeConverter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; @@ -285,6 +291,21 @@ public class ResponseBuilderUtils { root.appendChild(codeInfoElem); } + public static void addSigningTime(Document response, + Element root, + Date signingTime) { + if(signingTime != null) { + Element extElem = response.createElementNS(MOA_NS_URI, "SigningTime"); + TimeZone tz = TimeZone.getTimeZone("UTC"); + Calendar calendar = new GregorianCalendar(); + calendar.setTimeZone(tz); + calendar.setTime(signingTime); + String date = DatatypeConverter.printDateTime(calendar); + extElem.appendChild(response.createTextNode(date)); + 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 5bc7bec..b74ab38 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 @@ -51,6 +51,7 @@ public class VerifyCMSSignatureResponseBuilder { private Document responseDoc; /** The response <code>VerifyCMSSignatureResponse</code> DOM element. */ private Element responseElem; + private boolean includeSigningTime = false; /** * Create a new <code>VerifyCMSSignatureResponseBuilder</code>: @@ -64,9 +65,10 @@ public class VerifyCMSSignatureResponseBuilder { responseElem = responseDoc.getDocumentElement(); } - public VerifyCMSSignatureResponseBuilder(Document responseDoc, String name) throws MOASystemException { + public VerifyCMSSignatureResponseBuilder(Document responseDoc, String name, boolean includeSigningTime) throws MOASystemException { this.responseDoc = responseDoc; responseElem = responseDoc.createElementNS(Constants.MOA_NS_URI, name); + this.includeSigningTime = includeSigningTime; } public Element buildElement(VerifyCMSSignatureResponse response) throws MOAApplicationException { @@ -124,6 +126,11 @@ public class VerifyCMSSignatureResponseBuilder { signerInfo.getSSCDSource(), signerInfo.getIssuerCountryCode()); + if(this.includeSigningTime) { + ResponseBuilderUtils.addSigningTime(responseDoc, + responseElem, signerInfo.getSigningTime()); + } + 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 1826ffc..f60d86f 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 @@ -112,6 +112,10 @@ public class VerifyPDFSignatureResponseBuilder { signerInfo.getSSCDSource(), signerInfo.getIssuerCountryCode()); + ResponseBuilderUtils.addSigningTime(responseDoc, + responseElem, + signerInfo.getSigningTime()); + 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 771c276..716cca1 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 @@ -63,6 +63,7 @@ public class VerifyXMLSignatureResponseBuilder { /** The response <code>VerifyXMLSignatureResponse</code> DOM element. */ private Element responseElem; + private boolean includeSigningTime = false; /** * Create a new <code>VerifyXMLSignatureResponseBuilder</code>: * @@ -74,9 +75,10 @@ public class VerifyXMLSignatureResponseBuilder { responseElem = responseDoc.getDocumentElement(); } - public VerifyXMLSignatureResponseBuilder(Document responseDoc, String name) throws MOASystemException { + public VerifyXMLSignatureResponseBuilder(Document responseDoc, String name, boolean includeSigningTime) throws MOASystemException { this.responseDoc = responseDoc; responseElem = responseDoc.createElementNS(MOA_NS_URI, name); + this.includeSigningTime = includeSigningTime; } public Element buildElement(VerifyXMLSignatureResponse response) throws MOAApplicationException { @@ -108,6 +110,11 @@ public class VerifyXMLSignatureResponseBuilder { response.getSignerInfo().isSSCD(), response.getSignerInfo().getSSCDSource(), response.getSignerInfo().getIssuerCountryCode()); + if(this.includeSigningTime) { + ResponseBuilderUtils.addSigningTime(responseDoc, + responseElem, response.getSignerInfo().getSigningTime()); + } + // add HashInputData elements responseData = response.getHashInputDatas(); if (responseData != null && !responseData.isEmpty()) { |