summaryrefslogtreecommitdiff
path: root/STAL
diff options
context:
space:
mode:
authorAndreas Abraham <aabraham@iaik.tugraz.at>2018-04-23 09:48:33 +0200
committerAndreas Abraham <aabraham@iaik.tugraz.at>2018-04-23 09:48:33 +0200
commit9e24a02d80e13273ec5d1d4fa9b3a95d8ae486c2 (patch)
tree32decc21d7035250e02798733454868231036d8a /STAL
parent6386fb8e6ba691bce0cf129e7da4324935a9b333 (diff)
parentb9ccb62d35a755efb505d426ce924d5a8fbe937a (diff)
downloadmocca-9e24a02d80e13273ec5d1d4fa9b3a95d8ae486c2.tar.gz
mocca-9e24a02d80e13273ec5d1d4fa9b3a95d8ae486c2.tar.bz2
mocca-9e24a02d80e13273ec5d1d4fa9b3a95d8ae486c2.zip
Merge branch 'fb-bulksignature'
Diffstat (limited to 'STAL')
-rw-r--r--STAL/src/main/java/at/gv/egiz/stal/BulkSignRequest.java92
-rw-r--r--STAL/src/main/java/at/gv/egiz/stal/BulkSignResponse.java91
-rw-r--r--STAL/src/main/java/at/gv/egiz/stal/HashDataInput.java8
-rw-r--r--STAL/src/main/java/at/gv/egiz/stal/SignRequest.java56
-rw-r--r--STAL/src/main/java/at/gv/egiz/stal/SignatureInfo.java84
-rw-r--r--STAL/src/main/java/at/gv/egiz/stal/hashdata/StubHashDataInput.java101
6 files changed, 430 insertions, 2 deletions
diff --git a/STAL/src/main/java/at/gv/egiz/stal/BulkSignRequest.java b/STAL/src/main/java/at/gv/egiz/stal/BulkSignRequest.java
new file mode 100644
index 00000000..ce36a25c
--- /dev/null
+++ b/STAL/src/main/java/at/gv/egiz/stal/BulkSignRequest.java
@@ -0,0 +1,92 @@
+
+/*
+ * Copyright 2015 Datentechnik Innovation GmbH and Prime Sign GmbH, Austria
+ *
+ * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
+ * the European Commission - subsequent versions of the EUPL (the "Licence");
+ * You may not use this work except in compliance with the Licence.
+ * You may obtain a copy of the Licence at:
+ * http://www.osor.eu/eupl/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the Licence is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the Licence for the specific language governing permissions and
+ * limitations under the Licence.
+ *
+ * This product combines work with different licenses. See the "NOTICE" text
+ * file for details on the various modules and licenses.
+ * The "NOTICE" text file is part of the distribution. Any derivative works
+ * that you distribute must include a readable copy of the "NOTICE" text file.
+ */
+
+
+package at.gv.egiz.stal;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for BulkSignRequestType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="BulkSignRequestType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence maxOccurs="unbounded">
+ * &lt;element name="SignRequests" type="{http://www.egiz.gv.at/stal}SignRequestType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "BulkSignRequestType", propOrder = {
+ "signRequests"
+})
+public class BulkSignRequest extends STALRequest {
+
+ @XmlElement(name = "SignRequests", required = true)
+ protected List<SignRequest> signRequests;
+
+ /**
+ * Gets the value of the signRequests property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the signRequests property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getSignRequests().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link SignRequestType }
+ *
+ *
+ */
+ public List<SignRequest> getSignRequests() {
+ if (signRequests == null) {
+ signRequests = new ArrayList<SignRequest>();
+ }
+ return this.signRequests;
+ }
+
+}
diff --git a/STAL/src/main/java/at/gv/egiz/stal/BulkSignResponse.java b/STAL/src/main/java/at/gv/egiz/stal/BulkSignResponse.java
new file mode 100644
index 00000000..1cc6e73e
--- /dev/null
+++ b/STAL/src/main/java/at/gv/egiz/stal/BulkSignResponse.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2015 Datentechnik Innovation GmbH and Prime Sign GmbH, Austria
+ *
+ * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
+ * the European Commission - subsequent versions of the EUPL (the "Licence");
+ * You may not use this work except in compliance with the Licence.
+ * You may obtain a copy of the Licence at:
+ * http://www.osor.eu/eupl/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the Licence is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the Licence for the specific language governing permissions and
+ * limitations under the Licence.
+ *
+ * This product combines work with different licenses. See the "NOTICE" text
+ * file for details on the various modules and licenses.
+ * The "NOTICE" text file is part of the distribution. Any derivative works
+ * that you distribute must include a readable copy of the "NOTICE" text file.
+ */
+
+
+package at.gv.egiz.stal;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for BulkSignResponseType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="BulkSignResponseType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence maxOccurs="unbounded">
+ * &lt;element name="SignResponse" type="{http://www.egiz.gv.at/stal}SignResponseType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "BulkSignResponseType", propOrder = {
+ "signResponse"
+})
+public class BulkSignResponse extends STALResponse {
+
+ @XmlElement(name = "SignResponse", required = true)
+ protected List<SignResponse> signResponse;
+
+ /**
+ * Gets the value of the signResponse property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the signResponse property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>SignRequestType
+ * getSignResponse().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link SignResponseType }
+ *
+ *
+ */
+ public List<SignResponse> getSignResponse() {
+ if (signResponse == null) {
+ signResponse = new ArrayList<SignResponse>();
+ }
+ return this.signResponse;
+ }
+
+}
diff --git a/STAL/src/main/java/at/gv/egiz/stal/HashDataInput.java b/STAL/src/main/java/at/gv/egiz/stal/HashDataInput.java
index 05c9bf1e..06d47bc5 100644
--- a/STAL/src/main/java/at/gv/egiz/stal/HashDataInput.java
+++ b/STAL/src/main/java/at/gv/egiz/stal/HashDataInput.java
@@ -25,6 +25,7 @@
package at.gv.egiz.stal;
+import java.io.IOException;
import java.io.InputStream;
/**
@@ -34,7 +35,8 @@ import java.io.InputStream;
public interface HashDataInput {
public final static String CMS_DEF_REFERENCE_ID = "Reference-1";
-
+ public final static String DEFAULT_FILENAME = "SignatureData";
+
public String getReferenceId();
public String getMimeType();
@@ -42,7 +44,9 @@ public interface HashDataInput {
public String getEncoding();
public String getFilename();
+
+ public byte[] getDigest();
- public InputStream getHashDataInput();
+ public InputStream getHashDataInput() throws IOException;
}
diff --git a/STAL/src/main/java/at/gv/egiz/stal/SignRequest.java b/STAL/src/main/java/at/gv/egiz/stal/SignRequest.java
index d4212b24..37d43877 100644
--- a/STAL/src/main/java/at/gv/egiz/stal/SignRequest.java
+++ b/STAL/src/main/java/at/gv/egiz/stal/SignRequest.java
@@ -59,6 +59,8 @@ import javax.xml.bind.annotation.XmlValue;
* &lt;/element&gt;
* &lt;element name="SignatureMethod" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="DigestMethod" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
+ * &lt;element name="displayName" type="{http://www.w3.org/2001/XMLSchema}string minOccurs="0"&gt;
+ * &lt;element name="mimeType" type="{http://www.w3.org/2001/XMLSchema}string minOccurs="0"/&gt;
* &lt;element name="ExcludedByteRange" minOccurs="0"&gt;
* &lt;complexType&gt;
* &lt;complexContent&gt;
@@ -83,6 +85,7 @@ import javax.xml.bind.annotation.XmlValue;
"signedInfo",
"signatureMethod",
"digestMethod",
+ "mimeType",
"excludedByteRange"
})
public class SignRequest
@@ -96,6 +99,10 @@ public class SignRequest
protected String signatureMethod;
@XmlElement(name = "DigestMethod")
protected String digestMethod;
+ @XmlElement(name = "displayName")
+ protected String displayName;
+ @XmlElement(name = "mimeType")
+ protected String mimeType;
@XmlElement(name = "ExcludedByteRange")
protected SignRequest.ExcludedByteRange excludedByteRange;
@XmlTransient
@@ -194,6 +201,55 @@ public class SignRequest
public void setDigestMethod(String value) {
this.digestMethod = value;
}
+
+ /**
+ * Sets the value of the displayName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDisplayName(String value) {
+ this.displayName = value;
+ }
+
+ /**
+ * Gets the value of the displayName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ /**
+ * Gets the value of the mimeType property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMimeType() {
+ return mimeType;
+ }
+
+
+ /**
+ * Sets the value of the mimeType property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMimeType(String value) {
+ this.mimeType = value;
+ }
/**
* Gets the value of the excludedByteRange property.
diff --git a/STAL/src/main/java/at/gv/egiz/stal/SignatureInfo.java b/STAL/src/main/java/at/gv/egiz/stal/SignatureInfo.java
new file mode 100644
index 00000000..e0457b96
--- /dev/null
+++ b/STAL/src/main/java/at/gv/egiz/stal/SignatureInfo.java
@@ -0,0 +1,84 @@
+package at.gv.egiz.stal;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import at.gv.egiz.stal.signedinfo.ReferenceType;
+import at.gv.egiz.stal.signedinfo.SignatureMethodType;
+import at.gv.egiz.stal.signedinfo.SignedInfoType;
+
+/*
+ * Copyright 2015 Datentechnik Innovation GmbH and Prime Sign GmbH, Austria
+ *
+ * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
+ * the European Commission - subsequent versions of the EUPL (the "Licence");
+ * You may not use this work except in compliance with the Licence.
+ * You may obtain a copy of the Licence at:
+ * http://www.osor.eu/eupl/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the Licence is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the Licence for the specific language governing permissions and
+ * limitations under the Licence.
+ *
+ * This product combines work with different licenses. See the "NOTICE" text
+ * file for details on the various modules and licenses.
+ * The "NOTICE" text file is part of the distribution. Any derivative works
+ * that you distribute must include a readable copy of the "NOTICE" text file.
+ */
+
+/**
+ * This class wraps a {@link SignatureInfo} and adds the additional parameters displayName and mimeType.
+ * @author szoescher
+ *
+ */
+public class SignatureInfo {
+
+ private SignedInfoType signedInfo;
+
+ private String displayName;
+
+ private String mimeType;
+
+ public SignatureInfo(SignedInfoType signedInfo, String displayName, String mimeType) {
+ this.signedInfo = signedInfo;
+ this.displayName = displayName;
+ this.mimeType = mimeType;
+ }
+
+ public SignedInfoType getSignedInfo() {
+ return signedInfo;
+ }
+
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ public String getMimeType() {
+ return mimeType;
+ }
+
+ public SignatureMethodType getSignatureMethod() {
+ if (signedInfo != null) {
+ return signedInfo.getSignatureMethod();
+ }
+ return null;
+ }
+
+ public String getId() {
+ if (signedInfo != null) {
+ return signedInfo.getId();
+ }
+ return null;
+ }
+
+ public List<ReferenceType> getReference() {
+
+ if (signedInfo != null && signedInfo.getReference() != null) {
+
+ return signedInfo.getReference();
+ }
+ return new ArrayList<ReferenceType>();
+ }
+}
diff --git a/STAL/src/main/java/at/gv/egiz/stal/hashdata/StubHashDataInput.java b/STAL/src/main/java/at/gv/egiz/stal/hashdata/StubHashDataInput.java
new file mode 100644
index 00000000..3b74be50
--- /dev/null
+++ b/STAL/src/main/java/at/gv/egiz/stal/hashdata/StubHashDataInput.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2015 Datentechnik Innovation GmbH and Prime Sign GmbH, Austria
+ *
+ * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
+ * the European Commission - subsequent versions of the EUPL (the "Licence");
+ * You may not use this work except in compliance with the Licence.
+ * You may obtain a copy of the Licence at:
+ * http://www.osor.eu/eupl/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the Licence is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the Licence for the specific language governing permissions and
+ * limitations under the Licence.
+ *
+ * This product combines work with different licenses. See the "NOTICE" text
+ * file for details on the various modules and licenses.
+ * The "NOTICE" text file is part of the distribution. Any derivative works
+ * that you distribute must include a readable copy of the "NOTICE" text file.
+ */
+
+package at.gv.egiz.stal.hashdata;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+
+import at.gv.egiz.stal.HashDataInput;
+import at.gv.egiz.stal.signedinfo.ReferenceType;
+
+/**
+ * A StabHashDataInput is used as a placeholder at client side.
+ * The reference is used to load the corresponding HashDataInput from STAL.
+ * @author szoescher
+ */
+public class StubHashDataInput implements HashDataInput {
+
+ private byte[] data;
+ private String mimeType;
+ private ReferenceType reference;
+ private String fileName;
+
+
+ public StubHashDataInput(ReferenceType reference, String fileName, String mimeType) {
+ this.mimeType = mimeType;
+ this.fileName = fileName;
+ this.reference = reference;
+ }
+
+ @Override
+ public String getReferenceId() {
+ if (reference != null) {
+ return reference.getId();
+ }
+ return null;
+ }
+
+ @Override
+ public String getMimeType() {
+ return mimeType;
+ }
+
+ @Override
+ public String getEncoding() {
+ return null;
+ }
+
+ @Override
+ public String getFilename() {
+ if (fileName != null) {
+ return fileName;
+ }
+ return DEFAULT_FILENAME;
+ }
+
+ @Override
+ public InputStream getHashDataInput() {
+
+ if (data != null) {
+ return new ByteArrayInputStream(data);
+ }
+
+ return null;
+ }
+
+ @Override
+ public byte[] getDigest() {
+ if (reference != null) {
+ return reference.getDigestValue();
+ }
+ return null;
+ }
+
+ public void setFilename(String fileName) {
+ this.fileName = fileName;
+ }
+
+ public ReferenceType getReference() {
+ return reference;
+ }
+
+}