aboutsummaryrefslogtreecommitdiff
path: root/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind
diff options
context:
space:
mode:
Diffstat (limited to 'moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind')
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/ResponseBuilderUtils.java21
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureResponseBuilder.java9
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyPDFSignatureResponseBuilder.java4
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureResponseBuilder.java9
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()) {