aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-lib/src
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2013-11-12 12:26:10 +0100
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2013-11-12 12:26:10 +0100
commit7b2e2b640b0f392183f7927f692936950d3fabfc (patch)
treeffd4acccb62f2679ff613bf0cd8cd0850186b465 /pdf-as-lib/src
parentdd43264f702c5e0351cc63835862c55f3e847634 (diff)
downloadpdf-as-4-7b2e2b640b0f392183f7927f692936950d3fabfc.tar.gz
pdf-as-4-7b2e2b640b0f392183f7927f692936950d3fabfc.tar.bz2
pdf-as-4-7b2e2b640b0f392183f7927f692936950d3fabfc.zip
SecurityLayer commands included
Diffstat (limited to 'pdf-as-lib/src')
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/IPlainSigner.java6
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java34
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java5
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PdfboxSignerWrapper.java55
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/AllSignatoriesType.java55
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/AnyChildrenType.java78
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/AnyMixedChildrenType.java85
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/Base64ContentType.java71
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/Base64OptRefContentType.java69
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/Base64XMLContentType.java99
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/BindingType.java72
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/CMSDataObjectOptionalMetaType.java129
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/CMSDataObjectRequiredMetaType.java44
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/CreateCMSSignatureRequestType.java137
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/CreateCMSSignatureResponseType.java67
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/ErrorResponseType.java89
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/ExcludedByteRangeType.java101
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/GetPropertiesRequest.java41
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/GetPropertiesRequestType.java41
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/GetPropertiesResponseType.java249
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/GetStatusRequestType.java100
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/GetStatusResponseType.java69
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxAssocArrayPairType.java67
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadDataAssocArrayType.java116
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadParamsAssocArrayType.java434
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadParamsBinaryFileType.java69
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadRequestType.java160
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadResponseType.java99
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/MetaInfoType.java136
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/NullOperationRequestType.java37
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/NullOperationResponseType.java37
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/ObjectFactory.java368
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/QualifiedBoxIdentifierType.java108
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/TokenStatusType.java58
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/VerifyCMSSignatureRequestType.java161
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/XMLContentType.java70
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/package-info.java9
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BKUSLConnector.java165
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BaseSLConnector.java120
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/util/ISLConnector.java15
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/util/SLMarschaller.java49
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/util/package-info.java8
42 files changed, 3947 insertions, 35 deletions
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/IPlainSigner.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/IPlainSigner.java
index 6155a245..0ad40cc4 100644
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/IPlainSigner.java
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/IPlainSigner.java
@@ -7,9 +7,11 @@ import java.io.IOException;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.exceptions.SignatureException;
+import at.gv.egiz.pdfas.common.exceptions.PdfAsException;
+
public interface IPlainSigner {
- public X509Certificate getCertificate();
- public byte[] sign(byte[] input) throws SignatureException, IOException;
+ public X509Certificate getCertificate() throws PdfAsException;
+ public byte[] sign(byte[] input, int[] byteRange) throws PdfAsException;
public String getPDFSubFilter();
public String getPDFFilter();
}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java
index 6f74303c..75408567 100644
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java
@@ -23,6 +23,7 @@ import at.gv.egiz.pdfas.common.exceptions.PdfAsSettingsException;
import at.gv.egiz.pdfas.common.settings.ISettings;
import at.gv.egiz.pdfas.common.settings.Settings;
import at.gv.egiz.pdfas.common.settings.SignatureProfileSettings;
+import at.gv.egiz.pdfas.common.utils.PDFUtils;
import at.gv.egiz.pdfas.lib.api.Configuration;
import at.gv.egiz.pdfas.lib.api.IConfigurationConstants;
import at.gv.egiz.pdfas.lib.api.PdfAs;
@@ -47,6 +48,7 @@ import at.gv.egiz.pdfas.lib.impl.status.OperationStatus;
import at.gv.egiz.pdfas.lib.impl.status.RequestedSignature;
import at.gv.egiz.pdfas.lib.impl.verify.IVerifyFilter;
import at.gv.egiz.pdfas.lib.impl.verify.VerifierDispatcher;
+import at.knowcenter.wag.egov.egiz.pdf.PDFUtilities;
import at.knowcenter.wag.egov.egiz.pdf.PositioningInstruction;
import at.knowcenter.wag.egov.egiz.pdf.TablePos;
import at.knowcenter.wag.egov.egiz.table.Table;
@@ -83,6 +85,8 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants {
RequestedSignature requestedSignature = new RequestedSignature(
status);
+ status.setRequestedSignature(requestedSignature);
+
requestedSignature.setCertificate(status.getSignParamter()
.getPlainSigner().getCertificate());
@@ -334,13 +338,25 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants {
SignatureDataExtractor signatureDataExtractor = new SignatureDataExtractor(
request.getCertificate(), pdfFilter, pdfSubFilter,
status.getSigningDate());
-
+
IPdfSigner signer = PdfSignerFactory.createPdfSigner();
signer.signPDF(status.getPdfObject(),
status.getRequestedSignature(), signatureDataExtractor);
+
+ StringBuilder sb = new StringBuilder();
+
+ int[] byteRange = PDFUtils.extractSignatureByteRange(signatureDataExtractor
+ .getSignatureData());
+
+ for(int i = 0; i < byteRange.length; i++) {
+ sb.append(" " + byteRange[i]);
+ }
+
+ logger.info("ByteRange: " + sb.toString());
+
request.setSignatureData(signatureDataExtractor
.getSignatureData());
- request.setByteRange(signatureDataExtractor.getByteRange());
+ request.setByteRange(byteRange);
request.setNeedSignature(true);
} catch (Throwable e) {
@@ -349,12 +365,14 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants {
}
} else if (request.needSignature()) {
request.setNeedSignature(false);
- // TODO: Inject signature byte[] into signedDocument
- int offset = request.getSignatureData().length;
-
- for (int i = 0; i < request.getSignature().length; i++) {
- status.getPdfObject().getSignedDocument()[offset + i] = request
- .getSignature()[i];
+ // Inject signature byte[] into signedDocument
+ int offset = request.getSignatureDataByteRange()[1] + 1;
+
+ String signature = new COSString(request.getSignature()).getHexString();
+ byte[] pdfSignature = signature.getBytes();
+
+ for (int i = 0; i < pdfSignature.length; i++) {
+ status.getPdfObject().getSignedDocument()[offset + i] = pdfSignature[i];
}
/*
*
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java
index 3f566f06..2e5dc62b 100644
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java
@@ -22,7 +22,6 @@ import at.gv.egiz.pdfas.common.messages.MessageResolver;
import at.gv.egiz.pdfas.common.settings.SignatureProfileSettings;
import at.gv.egiz.pdfas.common.utils.StreamUtils;
import at.gv.egiz.pdfas.common.utils.TempFileHelper;
-import at.gv.egiz.pdfas.lib.api.sign.IPlainSigner;
import at.gv.egiz.pdfas.lib.impl.signing.IPdfSigner;
import at.gv.egiz.pdfas.lib.impl.signing.sig_interface.PDFASSignatureInterface;
import at.gv.egiz.pdfas.lib.impl.stamping.TableFactory;
@@ -109,7 +108,7 @@ public class PADESPDFBOXSigner implements IPdfSigner {
}
}
-
+/*
public void signPDF(String src, String dst, SignatureInterface signer) throws Exception {
//ByteArrayOutputStream os = new ByteArrayOutputStream();
FileInputStream fis = new FileInputStream(new File(src));
@@ -144,5 +143,5 @@ public class PADESPDFBOXSigner implements IPdfSigner {
fos.close();
// FileUtils.writeByteArrayToFile(new File(dst), os.toByteArray());
}
-
+*/
}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PdfboxSignerWrapper.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PdfboxSignerWrapper.java
index 91734312..6ded2d8a 100644
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PdfboxSignerWrapper.java
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PdfboxSignerWrapper.java
@@ -10,6 +10,9 @@ import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import at.gv.egiz.pdfas.common.exceptions.PdfAsException;
+import at.gv.egiz.pdfas.common.exceptions.PdfAsWrappedIOException;
+import at.gv.egiz.pdfas.common.utils.PDFUtils;
import at.gv.egiz.pdfas.common.utils.StreamUtils;
import at.gv.egiz.pdfas.common.utils.StringUtils;
import at.gv.egiz.pdfas.lib.api.sign.IPlainSigner;
@@ -17,27 +20,35 @@ import at.gv.egiz.pdfas.lib.impl.signing.sig_interface.PDFASSignatureInterface;
public class PdfboxSignerWrapper implements PDFASSignatureInterface {
- private static final Logger logger = LoggerFactory.getLogger(PdfboxSignerWrapper.class);
-
- private IPlainSigner signer;
- private PDSignature signature;
- private int[] byteRange;
- private Calendar date;
-
- public PdfboxSignerWrapper(IPlainSigner signer) {
- this.signer = signer;
- this.date = Calendar.getInstance();
- }
-
- public byte[] sign(InputStream inputStream) throws SignatureException, IOException {
- byteRange = this.signature.getByteRange();
- byte[] signature = signer.sign(StreamUtils.inputStreamToByteArray(inputStream));
- logger.debug("Signature Data: " + StringUtils.bytesToHexString(signature));
- FileOutputStream fos = new FileOutputStream("/tmp/fos.bin");
- fos.write(signature);
- fos.close();
- return signature;
- }
+ private static final Logger logger = LoggerFactory
+ .getLogger(PdfboxSignerWrapper.class);
+
+ private IPlainSigner signer;
+ private PDSignature signature;
+ private int[] byteRange;
+ private Calendar date;
+
+ public PdfboxSignerWrapper(IPlainSigner signer) {
+ this.signer = signer;
+ this.date = Calendar.getInstance();
+ }
+
+ public byte[] sign(InputStream inputStream) throws SignatureException,
+ IOException {
+ byte[] data = StreamUtils.inputStreamToByteArray(inputStream);
+ byteRange = PDFUtils.extractSignatureByteRange(data);
+ try {
+ byte[] signature = signer.sign(data, byteRange);
+ logger.debug("Signature Data: "
+ + StringUtils.bytesToHexString(signature));
+ FileOutputStream fos = new FileOutputStream("/tmp/fos.bin");
+ fos.write(signature);
+ fos.close();
+ return signature;
+ } catch (PdfAsException e) {
+ throw new PdfAsWrappedIOException(e);
+ }
+ }
public int[] getByteRange() {
return byteRange;
@@ -52,7 +63,7 @@ public class PdfboxSignerWrapper implements PDFASSignatureInterface {
}
public void setPDSignature(PDSignature signature) {
- this.signature = signature;
+ this.signature = signature;
}
public Calendar getSigningDate() {
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/AllSignatoriesType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/AllSignatoriesType.java
new file mode 100644
index 00000000..6951073c
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/AllSignatoriesType.java
@@ -0,0 +1,55 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for AllSignatoriesType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="AllSignatoriesType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="all"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "AllSignatoriesType")
+@XmlEnum
+public enum AllSignatoriesType {
+
+ @XmlEnumValue("all")
+ ALL("all");
+ private final String value;
+
+ AllSignatoriesType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static AllSignatoriesType fromValue(String v) {
+ for (AllSignatoriesType c: AllSignatoriesType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/AnyChildrenType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/AnyChildrenType.java
new file mode 100644
index 00000000..cebf21ae
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/AnyChildrenType.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+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.XmlAnyElement;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for AnyChildrenType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AnyChildrenType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence maxOccurs="unbounded" minOccurs="0">
+ * &lt;any processContents='lax'/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AnyChildrenType", propOrder = {
+ "any"
+})
+public class AnyChildrenType {
+
+ @XmlAnyElement(lax = true)
+ protected List<Object> any;
+
+ /**
+ * Gets the value of the any 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 any property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getAny().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Element }
+ * {@link Object }
+ *
+ *
+ */
+ public List<Object> getAny() {
+ if (any == null) {
+ any = new ArrayList<Object>();
+ }
+ return this.any;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/AnyMixedChildrenType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/AnyMixedChildrenType.java
new file mode 100644
index 00000000..03afc871
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/AnyMixedChildrenType.java
@@ -0,0 +1,85 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+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.XmlAnyElement;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for AnyMixedChildrenType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AnyMixedChildrenType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence maxOccurs="unbounded" minOccurs="0">
+ * &lt;any processContents='lax'/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AnyMixedChildrenType", propOrder = {
+ "content"
+})
+@XmlSeeAlso({
+ XMLContentType.class
+})
+public class AnyMixedChildrenType {
+
+ @XmlMixed
+ @XmlAnyElement(lax = true)
+ protected List<Object> content;
+
+ /**
+ * Gets the value of the content 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 content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Element }
+ * {@link String }
+ * {@link Object }
+ *
+ *
+ */
+ public List<Object> getContent() {
+ if (content == null) {
+ content = new ArrayList<Object>();
+ }
+ return this.content;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/Base64ContentType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/Base64ContentType.java
new file mode 100644
index 00000000..7bbb4448
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/Base64ContentType.java
@@ -0,0 +1,71 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Base64ContentType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="Base64ContentType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;choice minOccurs="0">
+ * &lt;element name="Base64Content" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * &lt;/choice>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Base64ContentType", propOrder = {
+ "base64Content"
+})
+@XmlSeeAlso({
+ Base64OptRefContentType.class
+})
+public class Base64ContentType {
+
+ @XmlElement(name = "Base64Content")
+ protected byte[] base64Content;
+
+ /**
+ * Gets the value of the base64Content property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getBase64Content() {
+ return base64Content;
+ }
+
+ /**
+ * Sets the value of the base64Content property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setBase64Content(byte[] value) {
+ this.base64Content = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/Base64OptRefContentType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/Base64OptRefContentType.java
new file mode 100644
index 00000000..44094a72
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/Base64OptRefContentType.java
@@ -0,0 +1,69 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Base64OptRefContentType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="Base64OptRefContentType">
+ * &lt;complexContent>
+ * &lt;extension base="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}Base64ContentType">
+ * &lt;attribute name="Reference" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Base64OptRefContentType")
+public class Base64OptRefContentType
+ extends Base64ContentType
+{
+
+ @XmlAttribute(name = "Reference")
+ @XmlSchemaType(name = "anyURI")
+ protected String reference;
+
+ /**
+ * Gets the value of the reference property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getReference() {
+ return reference;
+ }
+
+ /**
+ * Sets the value of the reference property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setReference(String value) {
+ this.reference = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/Base64XMLContentType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/Base64XMLContentType.java
new file mode 100644
index 00000000..dd0055a6
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/Base64XMLContentType.java
@@ -0,0 +1,99 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Base64XMLContentType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="Base64XMLContentType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;choice minOccurs="0">
+ * &lt;element name="Base64Content" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * &lt;element name="XMLContent" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}XMLContentType"/>
+ * &lt;/choice>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Base64XMLContentType", propOrder = {
+ "base64Content",
+ "xmlContent"
+})
+@XmlSeeAlso({
+ InfoboxAssocArrayPairType.class
+})
+public class Base64XMLContentType {
+
+ @XmlElement(name = "Base64Content")
+ protected byte[] base64Content;
+ @XmlElement(name = "XMLContent")
+ protected XMLContentType xmlContent;
+
+ /**
+ * Gets the value of the base64Content property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getBase64Content() {
+ return base64Content;
+ }
+
+ /**
+ * Sets the value of the base64Content property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setBase64Content(byte[] value) {
+ this.base64Content = value;
+ }
+
+ /**
+ * Gets the value of the xmlContent property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLContentType }
+ *
+ */
+ public XMLContentType getXMLContent() {
+ return xmlContent;
+ }
+
+ /**
+ * Sets the value of the xmlContent property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLContentType }
+ *
+ */
+ public void setXMLContent(XMLContentType value) {
+ this.xmlContent = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/BindingType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/BindingType.java
new file mode 100644
index 00000000..55baaa94
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/BindingType.java
@@ -0,0 +1,72 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 12:58:46 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for BindingType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="BindingType">
+ * &lt;complexContent>
+ * &lt;extension base="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}AnyChildrenType">
+ * &lt;attribute name="Identifier" use="required" type="{http://www.w3.org/2001/XMLSchema}token" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "BindingType")
+public class BindingType
+ extends AnyChildrenType
+{
+
+ @XmlAttribute(name = "Identifier", required = true)
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlSchemaType(name = "token")
+ protected String identifier;
+
+ /**
+ * Gets the value of the identifier property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getIdentifier() {
+ return identifier;
+ }
+
+ /**
+ * Sets the value of the identifier property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setIdentifier(String value) {
+ this.identifier = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/CMSDataObjectOptionalMetaType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/CMSDataObjectOptionalMetaType.java
new file mode 100644
index 00000000..36ae9398
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/CMSDataObjectOptionalMetaType.java
@@ -0,0 +1,129 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CMSDataObjectOptionalMetaType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CMSDataObjectOptionalMetaType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="MetaInfo" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}MetaInfoType" minOccurs="0"/>
+ * &lt;element name="Content" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}Base64OptRefContentType"/>
+ * &lt;element name="ExcludedByteRange" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}ExcludedByteRangeType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CMSDataObjectOptionalMetaType", propOrder = {
+ "metaInfo",
+ "content",
+ "excludedByteRange"
+})
+@XmlSeeAlso({
+ CMSDataObjectRequiredMetaType.class
+})
+public class CMSDataObjectOptionalMetaType {
+
+ @XmlElement(name = "MetaInfo")
+ protected MetaInfoType metaInfo;
+ @XmlElement(name = "Content", required = true)
+ protected Base64OptRefContentType content;
+ @XmlElement(name = "ExcludedByteRange")
+ protected ExcludedByteRangeType excludedByteRange;
+
+ /**
+ * Gets the value of the metaInfo property.
+ *
+ * @return
+ * possible object is
+ * {@link MetaInfoType }
+ *
+ */
+ public MetaInfoType getMetaInfo() {
+ return metaInfo;
+ }
+
+ /**
+ * Sets the value of the metaInfo property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MetaInfoType }
+ *
+ */
+ public void setMetaInfo(MetaInfoType value) {
+ this.metaInfo = value;
+ }
+
+ /**
+ * Gets the value of the content property.
+ *
+ * @return
+ * possible object is
+ * {@link Base64OptRefContentType }
+ *
+ */
+ public Base64OptRefContentType getContent() {
+ return content;
+ }
+
+ /**
+ * Sets the value of the content property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Base64OptRefContentType }
+ *
+ */
+ public void setContent(Base64OptRefContentType value) {
+ this.content = value;
+ }
+
+ /**
+ * Gets the value of the excludedByteRange property.
+ *
+ * @return
+ * possible object is
+ * {@link ExcludedByteRangeType }
+ *
+ */
+ public ExcludedByteRangeType getExcludedByteRange() {
+ return excludedByteRange;
+ }
+
+ /**
+ * Sets the value of the excludedByteRange property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ExcludedByteRangeType }
+ *
+ */
+ public void setExcludedByteRange(ExcludedByteRangeType value) {
+ this.excludedByteRange = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/CMSDataObjectRequiredMetaType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/CMSDataObjectRequiredMetaType.java
new file mode 100644
index 00000000..87440ef3
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/CMSDataObjectRequiredMetaType.java
@@ -0,0 +1,44 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CMSDataObjectRequiredMetaType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CMSDataObjectRequiredMetaType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}CMSDataObjectOptionalMetaType">
+ * &lt;sequence>
+ * &lt;element name="MetaInfo" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}MetaInfoType"/>
+ * &lt;element name="Content" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}Base64OptRefContentType"/>
+ * &lt;element name="ExcludedByteRange" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}ExcludedByteRangeType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CMSDataObjectRequiredMetaType")
+public class CMSDataObjectRequiredMetaType
+ extends CMSDataObjectOptionalMetaType
+{
+
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/CreateCMSSignatureRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/CreateCMSSignatureRequestType.java
new file mode 100644
index 00000000..8d5599e6
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/CreateCMSSignatureRequestType.java
@@ -0,0 +1,137 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for CreateCMSSignatureRequestType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CreateCMSSignatureRequestType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="KeyboxIdentifier" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}BoxIdentifierType"/>
+ * &lt;element name="DataObject" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}CMSDataObjectRequiredMetaType"/>
+ * &lt;/sequence>
+ * &lt;attribute name="Structure" use="required">
+ * &lt;simpleType>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="detached"/>
+ * &lt;enumeration value="enveloping"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * &lt;/attribute>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CreateCMSSignatureRequestType", propOrder = {
+ "keyboxIdentifier",
+ "dataObject"
+})
+@XmlRootElement
+public class CreateCMSSignatureRequestType {
+
+ @XmlElement(name = "KeyboxIdentifier", required = true)
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ protected String keyboxIdentifier;
+ @XmlElement(name = "DataObject", required = true)
+ protected CMSDataObjectRequiredMetaType dataObject;
+ @XmlAttribute(name = "Structure", required = true)
+ protected String structure;
+
+ /**
+ * Gets the value of the keyboxIdentifier property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getKeyboxIdentifier() {
+ return keyboxIdentifier;
+ }
+
+ /**
+ * Sets the value of the keyboxIdentifier property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setKeyboxIdentifier(String value) {
+ this.keyboxIdentifier = value;
+ }
+
+ /**
+ * Gets the value of the dataObject property.
+ *
+ * @return
+ * possible object is
+ * {@link CMSDataObjectRequiredMetaType }
+ *
+ */
+ public CMSDataObjectRequiredMetaType getDataObject() {
+ return dataObject;
+ }
+
+ /**
+ * Sets the value of the dataObject property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CMSDataObjectRequiredMetaType }
+ *
+ */
+ public void setDataObject(CMSDataObjectRequiredMetaType value) {
+ this.dataObject = value;
+ }
+
+ /**
+ * Gets the value of the structure property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getStructure() {
+ return structure;
+ }
+
+ /**
+ * Sets the value of the structure property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setStructure(String value) {
+ this.structure = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/CreateCMSSignatureResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/CreateCMSSignatureResponseType.java
new file mode 100644
index 00000000..d5a68de8
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/CreateCMSSignatureResponseType.java
@@ -0,0 +1,67 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+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 CreateCMSSignatureResponseType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CreateCMSSignatureResponseType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="CMSSignature" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CreateCMSSignatureResponseType", propOrder = {
+ "cmsSignature"
+})
+public class CreateCMSSignatureResponseType {
+
+ @XmlElement(name = "CMSSignature", required = true)
+ protected byte[] cmsSignature;
+
+ /**
+ * Gets the value of the cmsSignature property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getCMSSignature() {
+ return cmsSignature;
+ }
+
+ /**
+ * Sets the value of the cmsSignature property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setCMSSignature(byte[] value) {
+ this.cmsSignature = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/ErrorResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/ErrorResponseType.java
new file mode 100644
index 00000000..2a30b430
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/ErrorResponseType.java
@@ -0,0 +1,89 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+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 ErrorResponseType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="ErrorResponseType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="ErrorCode" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}ErrorCodeType"/>
+ * &lt;element name="Info" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ErrorResponseType", propOrder = {
+ "errorCode",
+ "info"
+})
+public class ErrorResponseType {
+
+ @XmlElement(name = "ErrorCode")
+ protected int errorCode;
+ @XmlElement(name = "Info", required = true)
+ protected String info;
+
+ /**
+ * Gets the value of the errorCode property.
+ *
+ */
+ public int getErrorCode() {
+ return errorCode;
+ }
+
+ /**
+ * Sets the value of the errorCode property.
+ *
+ */
+ public void setErrorCode(int value) {
+ this.errorCode = value;
+ }
+
+ /**
+ * Gets the value of the info property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getInfo() {
+ return info;
+ }
+
+ /**
+ * Sets the value of the info property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setInfo(String value) {
+ this.info = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/ExcludedByteRangeType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/ExcludedByteRangeType.java
new file mode 100644
index 00000000..bc1bc303
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/ExcludedByteRangeType.java
@@ -0,0 +1,101 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import java.math.BigInteger;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ExcludedByteRangeType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="ExcludedByteRangeType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="From" type="{http://www.w3.org/2001/XMLSchema}unsignedLong"/>
+ * &lt;element name="To" type="{http://www.w3.org/2001/XMLSchema}unsignedLong"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ExcludedByteRangeType", propOrder = {
+ "from",
+ "to"
+})
+public class ExcludedByteRangeType {
+
+ @XmlElement(name = "From", required = true)
+ @XmlSchemaType(name = "unsignedLong")
+ protected BigInteger from;
+ @XmlElement(name = "To", required = true)
+ @XmlSchemaType(name = "unsignedLong")
+ protected BigInteger to;
+
+ /**
+ * Gets the value of the from property.
+ *
+ * @return
+ * possible object is
+ * {@link BigInteger }
+ *
+ */
+ public BigInteger getFrom() {
+ return from;
+ }
+
+ /**
+ * Sets the value of the from property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigInteger }
+ *
+ */
+ public void setFrom(BigInteger value) {
+ this.from = value;
+ }
+
+ /**
+ * Gets the value of the to property.
+ *
+ * @return
+ * possible object is
+ * {@link BigInteger }
+ *
+ */
+ public BigInteger getTo() {
+ return to;
+ }
+
+ /**
+ * Sets the value of the to property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigInteger }
+ *
+ */
+ public void setTo(BigInteger value) {
+ this.to = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/GetPropertiesRequest.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/GetPropertiesRequest.java
new file mode 100644
index 00000000..448a45d5
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/GetPropertiesRequest.java
@@ -0,0 +1,41 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 12:58:46 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}GetPropertiesRequestType">
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "")
+@XmlRootElement(name = "GetPropertiesRequest")
+public class GetPropertiesRequest
+ extends GetPropertiesRequestType
+{
+
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/GetPropertiesRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/GetPropertiesRequestType.java
new file mode 100644
index 00000000..5a455ab0
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/GetPropertiesRequestType.java
@@ -0,0 +1,41 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 12:58:46 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for GetPropertiesRequestType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="GetPropertiesRequestType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "GetPropertiesRequestType")
+@XmlSeeAlso({
+ GetPropertiesRequest.class
+})
+public class GetPropertiesRequestType {
+
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/GetPropertiesResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/GetPropertiesResponseType.java
new file mode 100644
index 00000000..4fa8a9c4
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/GetPropertiesResponseType.java
@@ -0,0 +1,249 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 12:58:46 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+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.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for GetPropertiesResponseType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="GetPropertiesResponseType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="ViewerMediaType" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}MimeTypeType" maxOccurs="unbounded"/>
+ * &lt;element name="XMLSignatureTransform" type="{http://www.w3.org/2001/XMLSchema}anyURI" maxOccurs="unbounded"/>
+ * &lt;element name="KeyboxIdentifier" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}QualifiedBoxIdentifierType" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;element name="Binding" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}BindingType" maxOccurs="unbounded"/>
+ * &lt;element name="ProtocolVersion" type="{http://www.w3.org/2001/XMLSchema}token" maxOccurs="unbounded"/>
+ * &lt;any namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "GetPropertiesResponseType", propOrder = {
+ "viewerMediaType",
+ "xmlSignatureTransform",
+ "keyboxIdentifier",
+ "binding",
+ "protocolVersion",
+ "any"
+})
+public class GetPropertiesResponseType {
+
+ @XmlElement(name = "ViewerMediaType", required = true)
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ protected List<String> viewerMediaType;
+ @XmlElement(name = "XMLSignatureTransform", required = true)
+ @XmlSchemaType(name = "anyURI")
+ protected List<String> xmlSignatureTransform;
+ @XmlElement(name = "KeyboxIdentifier")
+ protected List<QualifiedBoxIdentifierType> keyboxIdentifier;
+ @XmlElement(name = "Binding", required = true)
+ protected List<BindingType> binding;
+ @XmlElement(name = "ProtocolVersion", required = true)
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlSchemaType(name = "token")
+ protected List<String> protocolVersion;
+ @XmlAnyElement(lax = true)
+ protected List<Object> any;
+
+ /**
+ * Gets the value of the viewerMediaType 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 viewerMediaType property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getViewerMediaType().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getViewerMediaType() {
+ if (viewerMediaType == null) {
+ viewerMediaType = new ArrayList<String>();
+ }
+ return this.viewerMediaType;
+ }
+
+ /**
+ * Gets the value of the xmlSignatureTransform 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 xmlSignatureTransform property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getXMLSignatureTransform().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getXMLSignatureTransform() {
+ if (xmlSignatureTransform == null) {
+ xmlSignatureTransform = new ArrayList<String>();
+ }
+ return this.xmlSignatureTransform;
+ }
+
+ /**
+ * Gets the value of the keyboxIdentifier 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 keyboxIdentifier property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getKeyboxIdentifier().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link QualifiedBoxIdentifierType }
+ *
+ *
+ */
+ public List<QualifiedBoxIdentifierType> getKeyboxIdentifier() {
+ if (keyboxIdentifier == null) {
+ keyboxIdentifier = new ArrayList<QualifiedBoxIdentifierType>();
+ }
+ return this.keyboxIdentifier;
+ }
+
+ /**
+ * Gets the value of the binding 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 binding property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getBinding().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link BindingType }
+ *
+ *
+ */
+ public List<BindingType> getBinding() {
+ if (binding == null) {
+ binding = new ArrayList<BindingType>();
+ }
+ return this.binding;
+ }
+
+ /**
+ * Gets the value of the protocolVersion 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 protocolVersion property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getProtocolVersion().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getProtocolVersion() {
+ if (protocolVersion == null) {
+ protocolVersion = new ArrayList<String>();
+ }
+ return this.protocolVersion;
+ }
+
+ /**
+ * Gets the value of the any 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 any property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getAny().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Object }
+ *
+ *
+ */
+ public List<Object> getAny() {
+ if (any == null) {
+ any = new ArrayList<Object>();
+ }
+ return this.any;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/GetStatusRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/GetStatusRequestType.java
new file mode 100644
index 00000000..78a6d941
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/GetStatusRequestType.java
@@ -0,0 +1,100 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import java.math.BigInteger;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for GetStatusRequestType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="GetStatusRequestType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence minOccurs="0">
+ * &lt;element name="TokenStatus" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}TokenStatusType"/>
+ * &lt;element name="MaxDelay" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "GetStatusRequestType", propOrder = {
+ "tokenStatus",
+ "maxDelay"
+})
+public class GetStatusRequestType {
+
+ @XmlElement(name = "TokenStatus")
+ protected TokenStatusType tokenStatus;
+ @XmlElement(name = "MaxDelay")
+ @XmlSchemaType(name = "nonNegativeInteger")
+ protected BigInteger maxDelay;
+
+ /**
+ * Gets the value of the tokenStatus property.
+ *
+ * @return
+ * possible object is
+ * {@link TokenStatusType }
+ *
+ */
+ public TokenStatusType getTokenStatus() {
+ return tokenStatus;
+ }
+
+ /**
+ * Sets the value of the tokenStatus property.
+ *
+ * @param value
+ * allowed object is
+ * {@link TokenStatusType }
+ *
+ */
+ public void setTokenStatus(TokenStatusType value) {
+ this.tokenStatus = value;
+ }
+
+ /**
+ * Gets the value of the maxDelay property.
+ *
+ * @return
+ * possible object is
+ * {@link BigInteger }
+ *
+ */
+ public BigInteger getMaxDelay() {
+ return maxDelay;
+ }
+
+ /**
+ * Sets the value of the maxDelay property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigInteger }
+ *
+ */
+ public void setMaxDelay(BigInteger value) {
+ this.maxDelay = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/GetStatusResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/GetStatusResponseType.java
new file mode 100644
index 00000000..5c4fa9e4
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/GetStatusResponseType.java
@@ -0,0 +1,69 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+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 GetStatusResponseType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="GetStatusResponseType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="TokenStatus" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}TokenStatusType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "GetStatusResponseType", propOrder = {
+ "tokenStatus"
+})
+public class GetStatusResponseType {
+
+ @XmlElement(name = "TokenStatus", required = true)
+ protected TokenStatusType tokenStatus;
+
+ /**
+ * Gets the value of the tokenStatus property.
+ *
+ * @return
+ * possible object is
+ * {@link TokenStatusType }
+ *
+ */
+ public TokenStatusType getTokenStatus() {
+ return tokenStatus;
+ }
+
+ /**
+ * Sets the value of the tokenStatus property.
+ *
+ * @param value
+ * allowed object is
+ * {@link TokenStatusType }
+ *
+ */
+ public void setTokenStatus(TokenStatusType value) {
+ this.tokenStatus = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxAssocArrayPairType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxAssocArrayPairType.java
new file mode 100644
index 00000000..4745f0df
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxAssocArrayPairType.java
@@ -0,0 +1,67 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for InfoboxAssocArrayPairType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InfoboxAssocArrayPairType">
+ * &lt;complexContent>
+ * &lt;extension base="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}Base64XMLContentType">
+ * &lt;attribute name="Key" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InfoboxAssocArrayPairType")
+public class InfoboxAssocArrayPairType
+ extends Base64XMLContentType
+{
+
+ @XmlAttribute(name = "Key", required = true)
+ protected String key;
+
+ /**
+ * Gets the value of the key property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getKey() {
+ return key;
+ }
+
+ /**
+ * Sets the value of the key property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setKey(String value) {
+ this.key = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadDataAssocArrayType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadDataAssocArrayType.java
new file mode 100644
index 00000000..489c9656
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadDataAssocArrayType.java
@@ -0,0 +1,116 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+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;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for InfoboxReadDataAssocArrayType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InfoboxReadDataAssocArrayType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;choice>
+ * &lt;sequence maxOccurs="unbounded" minOccurs="0">
+ * &lt;element name="Key" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}BoxIdentifierType"/>
+ * &lt;/sequence>
+ * &lt;sequence maxOccurs="unbounded" minOccurs="0">
+ * &lt;element name="Pair" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}InfoboxAssocArrayPairType"/>
+ * &lt;/sequence>
+ * &lt;/choice>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InfoboxReadDataAssocArrayType", propOrder = {
+ "key",
+ "pair"
+})
+public class InfoboxReadDataAssocArrayType {
+
+ @XmlElement(name = "Key")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ protected List<String> key;
+ @XmlElement(name = "Pair")
+ protected List<InfoboxAssocArrayPairType> pair;
+
+ /**
+ * Gets the value of the key 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 key property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getKey().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getKey() {
+ if (key == null) {
+ key = new ArrayList<String>();
+ }
+ return this.key;
+ }
+
+ /**
+ * Gets the value of the pair 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 pair property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getPair().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link InfoboxAssocArrayPairType }
+ *
+ *
+ */
+ public List<InfoboxAssocArrayPairType> getPair() {
+ if (pair == null) {
+ pair = new ArrayList<InfoboxAssocArrayPairType>();
+ }
+ return this.pair;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadParamsAssocArrayType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadParamsAssocArrayType.java
new file mode 100644
index 00000000..fd238971
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadParamsAssocArrayType.java
@@ -0,0 +1,434 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for InfoboxReadParamsAssocArrayType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InfoboxReadParamsAssocArrayType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;choice>
+ * &lt;element name="ReadKeys">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;attribute name="SearchString" use="required" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}WildCardSearchStringType" />
+ * &lt;attribute name="UserMakesUnique" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="ReadPairs">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;attribute name="SearchString" use="required" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}WildCardSearchStringType" />
+ * &lt;attribute name="UserMakesUnique" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * &lt;attribute name="ValuesAreXMLEntities" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="ReadValue">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;attribute name="Key" use="required" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}BoxIdentifierType" />
+ * &lt;attribute name="ValueIsXMLEntity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/choice>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InfoboxReadParamsAssocArrayType", propOrder = {
+ "readKeys",
+ "readPairs",
+ "readValue"
+})
+public class InfoboxReadParamsAssocArrayType {
+
+ @XmlElement(name = "ReadKeys")
+ protected InfoboxReadParamsAssocArrayType.ReadKeys readKeys;
+ @XmlElement(name = "ReadPairs")
+ protected InfoboxReadParamsAssocArrayType.ReadPairs readPairs;
+ @XmlElement(name = "ReadValue")
+ protected InfoboxReadParamsAssocArrayType.ReadValue readValue;
+
+ /**
+ * Gets the value of the readKeys property.
+ *
+ * @return
+ * possible object is
+ * {@link InfoboxReadParamsAssocArrayType.ReadKeys }
+ *
+ */
+ public InfoboxReadParamsAssocArrayType.ReadKeys getReadKeys() {
+ return readKeys;
+ }
+
+ /**
+ * Sets the value of the readKeys property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InfoboxReadParamsAssocArrayType.ReadKeys }
+ *
+ */
+ public void setReadKeys(InfoboxReadParamsAssocArrayType.ReadKeys value) {
+ this.readKeys = value;
+ }
+
+ /**
+ * Gets the value of the readPairs property.
+ *
+ * @return
+ * possible object is
+ * {@link InfoboxReadParamsAssocArrayType.ReadPairs }
+ *
+ */
+ public InfoboxReadParamsAssocArrayType.ReadPairs getReadPairs() {
+ return readPairs;
+ }
+
+ /**
+ * Sets the value of the readPairs property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InfoboxReadParamsAssocArrayType.ReadPairs }
+ *
+ */
+ public void setReadPairs(InfoboxReadParamsAssocArrayType.ReadPairs value) {
+ this.readPairs = value;
+ }
+
+ /**
+ * Gets the value of the readValue property.
+ *
+ * @return
+ * possible object is
+ * {@link InfoboxReadParamsAssocArrayType.ReadValue }
+ *
+ */
+ public InfoboxReadParamsAssocArrayType.ReadValue getReadValue() {
+ return readValue;
+ }
+
+ /**
+ * Sets the value of the readValue property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InfoboxReadParamsAssocArrayType.ReadValue }
+ *
+ */
+ public void setReadValue(InfoboxReadParamsAssocArrayType.ReadValue value) {
+ this.readValue = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;attribute name="SearchString" use="required" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}WildCardSearchStringType" />
+ * &lt;attribute name="UserMakesUnique" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class ReadKeys {
+
+ @XmlAttribute(name = "SearchString", required = true)
+ protected String searchString;
+ @XmlAttribute(name = "UserMakesUnique")
+ protected Boolean userMakesUnique;
+
+ /**
+ * Gets the value of the searchString property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getSearchString() {
+ return searchString;
+ }
+
+ /**
+ * Sets the value of the searchString property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setSearchString(String value) {
+ this.searchString = value;
+ }
+
+ /**
+ * Gets the value of the userMakesUnique property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isUserMakesUnique() {
+ if (userMakesUnique == null) {
+ return false;
+ } else {
+ return userMakesUnique;
+ }
+ }
+
+ /**
+ * Sets the value of the userMakesUnique property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setUserMakesUnique(Boolean value) {
+ this.userMakesUnique = value;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;attribute name="SearchString" use="required" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}WildCardSearchStringType" />
+ * &lt;attribute name="UserMakesUnique" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * &lt;attribute name="ValuesAreXMLEntities" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class ReadPairs {
+
+ @XmlAttribute(name = "SearchString", required = true)
+ protected String searchString;
+ @XmlAttribute(name = "UserMakesUnique")
+ protected Boolean userMakesUnique;
+ @XmlAttribute(name = "ValuesAreXMLEntities")
+ protected Boolean valuesAreXMLEntities;
+
+ /**
+ * Gets the value of the searchString property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getSearchString() {
+ return searchString;
+ }
+
+ /**
+ * Sets the value of the searchString property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setSearchString(String value) {
+ this.searchString = value;
+ }
+
+ /**
+ * Gets the value of the userMakesUnique property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isUserMakesUnique() {
+ if (userMakesUnique == null) {
+ return false;
+ } else {
+ return userMakesUnique;
+ }
+ }
+
+ /**
+ * Sets the value of the userMakesUnique property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setUserMakesUnique(Boolean value) {
+ this.userMakesUnique = value;
+ }
+
+ /**
+ * Gets the value of the valuesAreXMLEntities property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isValuesAreXMLEntities() {
+ if (valuesAreXMLEntities == null) {
+ return false;
+ } else {
+ return valuesAreXMLEntities;
+ }
+ }
+
+ /**
+ * Sets the value of the valuesAreXMLEntities property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setValuesAreXMLEntities(Boolean value) {
+ this.valuesAreXMLEntities = value;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;attribute name="Key" use="required" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}BoxIdentifierType" />
+ * &lt;attribute name="ValueIsXMLEntity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class ReadValue {
+
+ @XmlAttribute(name = "Key", required = true)
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ protected String key;
+ @XmlAttribute(name = "ValueIsXMLEntity")
+ protected Boolean valueIsXMLEntity;
+
+ /**
+ * Gets the value of the key property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getKey() {
+ return key;
+ }
+
+ /**
+ * Sets the value of the key property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setKey(String value) {
+ this.key = value;
+ }
+
+ /**
+ * Gets the value of the valueIsXMLEntity property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isValueIsXMLEntity() {
+ if (valueIsXMLEntity == null) {
+ return false;
+ } else {
+ return valueIsXMLEntity;
+ }
+ }
+
+ /**
+ * Sets the value of the valueIsXMLEntity property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setValueIsXMLEntity(Boolean value) {
+ this.valueIsXMLEntity = value;
+ }
+
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadParamsBinaryFileType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadParamsBinaryFileType.java
new file mode 100644
index 00000000..18e25614
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadParamsBinaryFileType.java
@@ -0,0 +1,69 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for InfoboxReadParamsBinaryFileType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InfoboxReadParamsBinaryFileType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;attribute name="ContentIsXMLEntity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InfoboxReadParamsBinaryFileType")
+public class InfoboxReadParamsBinaryFileType {
+
+ @XmlAttribute(name = "ContentIsXMLEntity")
+ protected Boolean contentIsXMLEntity;
+
+ /**
+ * Gets the value of the contentIsXMLEntity property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isContentIsXMLEntity() {
+ if (contentIsXMLEntity == null) {
+ return false;
+ } else {
+ return contentIsXMLEntity;
+ }
+ }
+
+ /**
+ * Sets the value of the contentIsXMLEntity property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setContentIsXMLEntity(Boolean value) {
+ this.contentIsXMLEntity = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadRequestType.java
new file mode 100644
index 00000000..b39dcb2f
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadRequestType.java
@@ -0,0 +1,160 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for InfoboxReadRequestType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InfoboxReadRequestType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="InfoboxIdentifier" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}BoxIdentifierType"/>
+ * &lt;choice>
+ * &lt;element name="BinaryFileParameters" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}InfoboxReadParamsBinaryFileType"/>
+ * &lt;element name="AssocArrayParameters" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}InfoboxReadParamsAssocArrayType"/>
+ * &lt;/choice>
+ * &lt;element name="BoxSpecificParameters" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}AnyChildrenType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InfoboxReadRequestType", propOrder = {
+ "infoboxIdentifier",
+ "binaryFileParameters",
+ "assocArrayParameters",
+ "boxSpecificParameters"
+})
+@XmlRootElement
+public class InfoboxReadRequestType {
+
+ @XmlElement(name = "InfoboxIdentifier", required = true)
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ protected String infoboxIdentifier;
+ @XmlElement(name = "BinaryFileParameters")
+ protected InfoboxReadParamsBinaryFileType binaryFileParameters;
+ @XmlElement(name = "AssocArrayParameters")
+ protected InfoboxReadParamsAssocArrayType assocArrayParameters;
+ @XmlElement(name = "BoxSpecificParameters")
+ protected AnyChildrenType boxSpecificParameters;
+
+ /**
+ * Gets the value of the infoboxIdentifier property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getInfoboxIdentifier() {
+ return infoboxIdentifier;
+ }
+
+ /**
+ * Sets the value of the infoboxIdentifier property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setInfoboxIdentifier(String value) {
+ this.infoboxIdentifier = value;
+ }
+
+ /**
+ * Gets the value of the binaryFileParameters property.
+ *
+ * @return
+ * possible object is
+ * {@link InfoboxReadParamsBinaryFileType }
+ *
+ */
+ public InfoboxReadParamsBinaryFileType getBinaryFileParameters() {
+ return binaryFileParameters;
+ }
+
+ /**
+ * Sets the value of the binaryFileParameters property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InfoboxReadParamsBinaryFileType }
+ *
+ */
+ public void setBinaryFileParameters(InfoboxReadParamsBinaryFileType value) {
+ this.binaryFileParameters = value;
+ }
+
+ /**
+ * Gets the value of the assocArrayParameters property.
+ *
+ * @return
+ * possible object is
+ * {@link InfoboxReadParamsAssocArrayType }
+ *
+ */
+ public InfoboxReadParamsAssocArrayType getAssocArrayParameters() {
+ return assocArrayParameters;
+ }
+
+ /**
+ * Sets the value of the assocArrayParameters property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InfoboxReadParamsAssocArrayType }
+ *
+ */
+ public void setAssocArrayParameters(InfoboxReadParamsAssocArrayType value) {
+ this.assocArrayParameters = value;
+ }
+
+ /**
+ * Gets the value of the boxSpecificParameters property.
+ *
+ * @return
+ * possible object is
+ * {@link AnyChildrenType }
+ *
+ */
+ public AnyChildrenType getBoxSpecificParameters() {
+ return boxSpecificParameters;
+ }
+
+ /**
+ * Sets the value of the boxSpecificParameters property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AnyChildrenType }
+ *
+ */
+ public void setBoxSpecificParameters(AnyChildrenType value) {
+ this.boxSpecificParameters = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadResponseType.java
new file mode 100644
index 00000000..fe8a6db4
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/InfoboxReadResponseType.java
@@ -0,0 +1,99 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for InfoboxReadResponseType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InfoboxReadResponseType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;choice>
+ * &lt;element name="BinaryFileData" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}Base64XMLContentType"/>
+ * &lt;element name="AssocArrayData" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}InfoboxReadDataAssocArrayType"/>
+ * &lt;/choice>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InfoboxReadResponseType", propOrder = {
+ "binaryFileData",
+ "assocArrayData"
+})
+@XmlRootElement
+public class InfoboxReadResponseType {
+
+ @XmlElement(name = "BinaryFileData")
+ protected Base64XMLContentType binaryFileData;
+ @XmlElement(name = "AssocArrayData")
+ protected InfoboxReadDataAssocArrayType assocArrayData;
+
+ /**
+ * Gets the value of the binaryFileData property.
+ *
+ * @return
+ * possible object is
+ * {@link Base64XMLContentType }
+ *
+ */
+ public Base64XMLContentType getBinaryFileData() {
+ return binaryFileData;
+ }
+
+ /**
+ * Sets the value of the binaryFileData property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Base64XMLContentType }
+ *
+ */
+ public void setBinaryFileData(Base64XMLContentType value) {
+ this.binaryFileData = value;
+ }
+
+ /**
+ * Gets the value of the assocArrayData property.
+ *
+ * @return
+ * possible object is
+ * {@link InfoboxReadDataAssocArrayType }
+ *
+ */
+ public InfoboxReadDataAssocArrayType getAssocArrayData() {
+ return assocArrayData;
+ }
+
+ /**
+ * Sets the value of the assocArrayData property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InfoboxReadDataAssocArrayType }
+ *
+ */
+ public void setAssocArrayData(InfoboxReadDataAssocArrayType value) {
+ this.assocArrayData = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/MetaInfoType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/MetaInfoType.java
new file mode 100644
index 00000000..72080288
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/MetaInfoType.java
@@ -0,0 +1,136 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+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.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for MetaInfoType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="MetaInfoType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="MimeType" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}MimeTypeType"/>
+ * &lt;element name="Description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;any namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MetaInfoType", propOrder = {
+ "mimeType",
+ "description",
+ "any"
+})
+public class MetaInfoType {
+
+ @XmlElement(name = "MimeType", required = true)
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ protected String mimeType;
+ @XmlElement(name = "Description")
+ protected String description;
+ @XmlAnyElement(lax = true)
+ protected List<Object> any;
+
+ /**
+ * 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 description property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Sets the value of the description property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDescription(String value) {
+ this.description = value;
+ }
+
+ /**
+ * Gets the value of the any 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 any property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getAny().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Object }
+ *
+ *
+ */
+ public List<Object> getAny() {
+ if (any == null) {
+ any = new ArrayList<Object>();
+ }
+ return this.any;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/NullOperationRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/NullOperationRequestType.java
new file mode 100644
index 00000000..69b2f060
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/NullOperationRequestType.java
@@ -0,0 +1,37 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for NullOperationRequestType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="NullOperationRequestType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "NullOperationRequestType")
+public class NullOperationRequestType {
+
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/NullOperationResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/NullOperationResponseType.java
new file mode 100644
index 00000000..c7d3132e
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/NullOperationResponseType.java
@@ -0,0 +1,37 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for NullOperationResponseType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="NullOperationResponseType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "NullOperationResponseType")
+public class NullOperationResponseType {
+
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/ObjectFactory.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/ObjectFactory.java
new file mode 100644
index 00000000..3e9ca0d3
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/ObjectFactory.java
@@ -0,0 +1,368 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each
+ * Java content interface and Java element interface
+ * generated in the at.gv.egiz.sl package.
+ * <p>An ObjectFactory allows you to programatically
+ * construct new instances of the Java representation
+ * for XML content. The Java representation of XML
+ * content can consist of schema derived interfaces
+ * and classes representing the binding of schema
+ * type definitions, element declarations and model
+ * groups. Factory methods for each of these are
+ * provided in this class.
+ *
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+ private final static QName _NullOperationRequest_QNAME = new QName("http://www.buergerkarte.at/namespaces/securitylayer/1.2#", "NullOperationRequest");
+ private final static QName _CreateCMSSignatureRequest_QNAME = new QName("http://www.buergerkarte.at/namespaces/securitylayer/1.2#", "CreateCMSSignatureRequest");
+ private final static QName _InfoboxReadRequest_QNAME = new QName("http://www.buergerkarte.at/namespaces/securitylayer/1.2#", "InfoboxReadRequest");
+ private final static QName _GetStatusResponse_QNAME = new QName("http://www.buergerkarte.at/namespaces/securitylayer/1.2#", "GetStatusResponse");
+ private final static QName _CreateCMSSignatureResponse_QNAME = new QName("http://www.buergerkarte.at/namespaces/securitylayer/1.2#", "CreateCMSSignatureResponse");
+ private final static QName _GetStatusRequest_QNAME = new QName("http://www.buergerkarte.at/namespaces/securitylayer/1.2#", "GetStatusRequest");
+ private final static QName _ErrorResponse_QNAME = new QName("http://www.buergerkarte.at/namespaces/securitylayer/1.2#", "ErrorResponse");
+ private final static QName _IdentityLinkDomainIdentifier_QNAME = new QName("http://www.buergerkarte.at/namespaces/securitylayer/1.2#", "IdentityLinkDomainIdentifier");
+ private final static QName _VerifyCMSSignatureRequest_QNAME = new QName("http://www.buergerkarte.at/namespaces/securitylayer/1.2#", "VerifyCMSSignatureRequest");
+ private final static QName _InfoboxReadResponse_QNAME = new QName("http://www.buergerkarte.at/namespaces/securitylayer/1.2#", "InfoboxReadResponse");
+ private final static QName _NullOperationResponse_QNAME = new QName("http://www.buergerkarte.at/namespaces/securitylayer/1.2#", "NullOperationResponse");
+
+ /**
+ * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: at.gv.egiz.sl
+ *
+ */
+ public ObjectFactory() {
+ }
+
+ /**
+ * Create an instance of {@link InfoboxReadParamsAssocArrayType }
+ *
+ */
+ public InfoboxReadParamsAssocArrayType createInfoboxReadParamsAssocArrayType() {
+ return new InfoboxReadParamsAssocArrayType();
+ }
+
+ /**
+ * Create an instance of {@link NullOperationResponseType }
+ *
+ */
+ public NullOperationResponseType createNullOperationResponseType() {
+ return new NullOperationResponseType();
+ }
+
+ /**
+ * Create an instance of {@link InfoboxReadResponseType }
+ *
+ */
+ public InfoboxReadResponseType createInfoboxReadResponseType() {
+ return new InfoboxReadResponseType();
+ }
+
+ /**
+ * Create an instance of {@link VerifyCMSSignatureRequestType }
+ *
+ */
+ public VerifyCMSSignatureRequestType createVerifyCMSSignatureRequestType() {
+ return new VerifyCMSSignatureRequestType();
+ }
+
+ /**
+ * Create an instance of {@link GetStatusResponseType }
+ *
+ */
+ public GetStatusResponseType createGetStatusResponseType() {
+ return new GetStatusResponseType();
+ }
+
+ /**
+ * Create an instance of {@link InfoboxReadRequestType }
+ *
+ */
+ public InfoboxReadRequestType createInfoboxReadRequestType() {
+ return new InfoboxReadRequestType();
+ }
+
+ /**
+ * Create an instance of {@link CreateCMSSignatureRequestType }
+ *
+ */
+ public CreateCMSSignatureRequestType createCreateCMSSignatureRequestType() {
+ return new CreateCMSSignatureRequestType();
+ }
+
+ /**
+ * Create an instance of {@link NullOperationRequestType }
+ *
+ */
+ public NullOperationRequestType createNullOperationRequestType() {
+ return new NullOperationRequestType();
+ }
+
+ /**
+ * Create an instance of {@link ErrorResponseType }
+ *
+ */
+ public ErrorResponseType createErrorResponseType() {
+ return new ErrorResponseType();
+ }
+
+ /**
+ * Create an instance of {@link GetStatusRequestType }
+ *
+ */
+ public GetStatusRequestType createGetStatusRequestType() {
+ return new GetStatusRequestType();
+ }
+
+ /**
+ * Create an instance of {@link CreateCMSSignatureResponseType }
+ *
+ */
+ public CreateCMSSignatureResponseType createCreateCMSSignatureResponseType() {
+ return new CreateCMSSignatureResponseType();
+ }
+
+ /**
+ * Create an instance of {@link InfoboxReadParamsBinaryFileType }
+ *
+ */
+ public InfoboxReadParamsBinaryFileType createInfoboxReadParamsBinaryFileType() {
+ return new InfoboxReadParamsBinaryFileType();
+ }
+
+ /**
+ * Create an instance of {@link ExcludedByteRangeType }
+ *
+ */
+ public ExcludedByteRangeType createExcludedByteRangeType() {
+ return new ExcludedByteRangeType();
+ }
+
+ /**
+ * Create an instance of {@link Base64OptRefContentType }
+ *
+ */
+ public Base64OptRefContentType createBase64OptRefContentType() {
+ return new Base64OptRefContentType();
+ }
+
+ /**
+ * Create an instance of {@link InfoboxReadDataAssocArrayType }
+ *
+ */
+ public InfoboxReadDataAssocArrayType createInfoboxReadDataAssocArrayType() {
+ return new InfoboxReadDataAssocArrayType();
+ }
+
+ /**
+ * Create an instance of {@link CMSDataObjectOptionalMetaType }
+ *
+ */
+ public CMSDataObjectOptionalMetaType createCMSDataObjectOptionalMetaType() {
+ return new CMSDataObjectOptionalMetaType();
+ }
+
+ /**
+ * Create an instance of {@link Base64XMLContentType }
+ *
+ */
+ public Base64XMLContentType createBase64XMLContentType() {
+ return new Base64XMLContentType();
+ }
+
+ /**
+ * Create an instance of {@link CMSDataObjectRequiredMetaType }
+ *
+ */
+ public CMSDataObjectRequiredMetaType createCMSDataObjectRequiredMetaType() {
+ return new CMSDataObjectRequiredMetaType();
+ }
+
+ /**
+ * Create an instance of {@link XMLContentType }
+ *
+ */
+ public XMLContentType createXMLContentType() {
+ return new XMLContentType();
+ }
+
+ /**
+ * Create an instance of {@link MetaInfoType }
+ *
+ */
+ public MetaInfoType createMetaInfoType() {
+ return new MetaInfoType();
+ }
+
+ /**
+ * Create an instance of {@link Base64ContentType }
+ *
+ */
+ public Base64ContentType createBase64ContentType() {
+ return new Base64ContentType();
+ }
+
+ /**
+ * Create an instance of {@link InfoboxAssocArrayPairType }
+ *
+ */
+ public InfoboxAssocArrayPairType createInfoboxAssocArrayPairType() {
+ return new InfoboxAssocArrayPairType();
+ }
+
+ /**
+ * Create an instance of {@link AnyMixedChildrenType }
+ *
+ */
+ public AnyMixedChildrenType createAnyMixedChildrenType() {
+ return new AnyMixedChildrenType();
+ }
+
+ /**
+ * Create an instance of {@link AnyChildrenType }
+ *
+ */
+ public AnyChildrenType createAnyChildrenType() {
+ return new AnyChildrenType();
+ }
+
+ /**
+ * Create an instance of {@link InfoboxReadParamsAssocArrayType.ReadKeys }
+ *
+ */
+ public InfoboxReadParamsAssocArrayType.ReadKeys createInfoboxReadParamsAssocArrayTypeReadKeys() {
+ return new InfoboxReadParamsAssocArrayType.ReadKeys();
+ }
+
+ /**
+ * Create an instance of {@link InfoboxReadParamsAssocArrayType.ReadPairs }
+ *
+ */
+ public InfoboxReadParamsAssocArrayType.ReadPairs createInfoboxReadParamsAssocArrayTypeReadPairs() {
+ return new InfoboxReadParamsAssocArrayType.ReadPairs();
+ }
+
+ /**
+ * Create an instance of {@link InfoboxReadParamsAssocArrayType.ReadValue }
+ *
+ */
+ public InfoboxReadParamsAssocArrayType.ReadValue createInfoboxReadParamsAssocArrayTypeReadValue() {
+ return new InfoboxReadParamsAssocArrayType.ReadValue();
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link NullOperationRequestType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.buergerkarte.at/namespaces/securitylayer/1.2#", name = "NullOperationRequest")
+ public JAXBElement<NullOperationRequestType> createNullOperationRequest(NullOperationRequestType value) {
+ return new JAXBElement<NullOperationRequestType>(_NullOperationRequest_QNAME, NullOperationRequestType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CreateCMSSignatureRequestType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.buergerkarte.at/namespaces/securitylayer/1.2#", name = "CreateCMSSignatureRequest")
+ public JAXBElement<CreateCMSSignatureRequestType> createCreateCMSSignatureRequest(CreateCMSSignatureRequestType value) {
+ return new JAXBElement<CreateCMSSignatureRequestType>(_CreateCMSSignatureRequest_QNAME, CreateCMSSignatureRequestType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link InfoboxReadRequestType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.buergerkarte.at/namespaces/securitylayer/1.2#", name = "InfoboxReadRequest")
+ public JAXBElement<InfoboxReadRequestType> createInfoboxReadRequest(InfoboxReadRequestType value) {
+ return new JAXBElement<InfoboxReadRequestType>(_InfoboxReadRequest_QNAME, InfoboxReadRequestType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link GetStatusResponseType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.buergerkarte.at/namespaces/securitylayer/1.2#", name = "GetStatusResponse")
+ public JAXBElement<GetStatusResponseType> createGetStatusResponse(GetStatusResponseType value) {
+ return new JAXBElement<GetStatusResponseType>(_GetStatusResponse_QNAME, GetStatusResponseType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CreateCMSSignatureResponseType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.buergerkarte.at/namespaces/securitylayer/1.2#", name = "CreateCMSSignatureResponse")
+ public JAXBElement<CreateCMSSignatureResponseType> createCreateCMSSignatureResponse(CreateCMSSignatureResponseType value) {
+ return new JAXBElement<CreateCMSSignatureResponseType>(_CreateCMSSignatureResponse_QNAME, CreateCMSSignatureResponseType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link GetStatusRequestType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.buergerkarte.at/namespaces/securitylayer/1.2#", name = "GetStatusRequest")
+ public JAXBElement<GetStatusRequestType> createGetStatusRequest(GetStatusRequestType value) {
+ return new JAXBElement<GetStatusRequestType>(_GetStatusRequest_QNAME, GetStatusRequestType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link ErrorResponseType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.buergerkarte.at/namespaces/securitylayer/1.2#", name = "ErrorResponse")
+ public JAXBElement<ErrorResponseType> createErrorResponse(ErrorResponseType value) {
+ return new JAXBElement<ErrorResponseType>(_ErrorResponse_QNAME, ErrorResponseType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.buergerkarte.at/namespaces/securitylayer/1.2#", name = "IdentityLinkDomainIdentifier")
+ public JAXBElement<String> createIdentityLinkDomainIdentifier(String value) {
+ return new JAXBElement<String>(_IdentityLinkDomainIdentifier_QNAME, String.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link VerifyCMSSignatureRequestType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.buergerkarte.at/namespaces/securitylayer/1.2#", name = "VerifyCMSSignatureRequest")
+ public JAXBElement<VerifyCMSSignatureRequestType> createVerifyCMSSignatureRequest(VerifyCMSSignatureRequestType value) {
+ return new JAXBElement<VerifyCMSSignatureRequestType>(_VerifyCMSSignatureRequest_QNAME, VerifyCMSSignatureRequestType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link InfoboxReadResponseType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.buergerkarte.at/namespaces/securitylayer/1.2#", name = "InfoboxReadResponse")
+ public JAXBElement<InfoboxReadResponseType> createInfoboxReadResponse(InfoboxReadResponseType value) {
+ return new JAXBElement<InfoboxReadResponseType>(_InfoboxReadResponse_QNAME, InfoboxReadResponseType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link NullOperationResponseType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.buergerkarte.at/namespaces/securitylayer/1.2#", name = "NullOperationResponse")
+ public JAXBElement<NullOperationResponseType> createNullOperationResponse(NullOperationResponseType value) {
+ return new JAXBElement<NullOperationResponseType>(_NullOperationResponse_QNAME, NullOperationResponseType.class, null, value);
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/QualifiedBoxIdentifierType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/QualifiedBoxIdentifierType.java
new file mode 100644
index 00000000..97908a88
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/QualifiedBoxIdentifierType.java
@@ -0,0 +1,108 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 12:58:46 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for QualifiedBoxIdentifierType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="QualifiedBoxIdentifierType">
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;http://www.buergerkarte.at/namespaces/securitylayer/1.2#>BoxIdentifierType">
+ * &lt;attribute name="Signature" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ * &lt;attribute name="Encryption" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "QualifiedBoxIdentifierType", propOrder = {
+ "value"
+})
+public class QualifiedBoxIdentifierType {
+
+ @XmlValue
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ protected String value;
+ @XmlAttribute(name = "Signature", required = true)
+ protected boolean signature;
+ @XmlAttribute(name = "Encryption", required = true)
+ protected boolean encryption;
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the signature property.
+ *
+ */
+ public boolean isSignature() {
+ return signature;
+ }
+
+ /**
+ * Sets the value of the signature property.
+ *
+ */
+ public void setSignature(boolean value) {
+ this.signature = value;
+ }
+
+ /**
+ * Gets the value of the encryption property.
+ *
+ */
+ public boolean isEncryption() {
+ return encryption;
+ }
+
+ /**
+ * Sets the value of the encryption property.
+ *
+ */
+ public void setEncryption(boolean value) {
+ this.encryption = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/TokenStatusType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/TokenStatusType.java
new file mode 100644
index 00000000..a9f5e513
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/TokenStatusType.java
@@ -0,0 +1,58 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for TokenStatusType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="TokenStatusType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="ready"/>
+ * &lt;enumeration value="removed"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "TokenStatusType")
+@XmlEnum
+public enum TokenStatusType {
+
+ @XmlEnumValue("ready")
+ READY("ready"),
+ @XmlEnumValue("removed")
+ REMOVED("removed");
+ private final String value;
+
+ TokenStatusType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static TokenStatusType fromValue(String v) {
+ for (TokenStatusType c: TokenStatusType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/VerifyCMSSignatureRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/VerifyCMSSignatureRequestType.java
new file mode 100644
index 00000000..8ed1bc03
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/VerifyCMSSignatureRequestType.java
@@ -0,0 +1,161 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+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.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for VerifyCMSSignatureRequestType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="VerifyCMSSignatureRequestType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="DateTime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
+ * &lt;element name="CMSSignature" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * &lt;element name="DataObject" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}CMSDataObjectOptionalMetaType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="Signatories" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}SignatoriesType" default="1" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "VerifyCMSSignatureRequestType", propOrder = {
+ "dateTime",
+ "cmsSignature",
+ "dataObject"
+})
+public class VerifyCMSSignatureRequestType {
+
+ @XmlElement(name = "DateTime")
+ @XmlSchemaType(name = "dateTime")
+ protected XMLGregorianCalendar dateTime;
+ @XmlElement(name = "CMSSignature", required = true)
+ protected byte[] cmsSignature;
+ @XmlElement(name = "DataObject")
+ protected CMSDataObjectOptionalMetaType dataObject;
+ @XmlAttribute(name = "Signatories")
+ protected List<String> signatories;
+
+ /**
+ * Gets the value of the dateTime property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getDateTime() {
+ return dateTime;
+ }
+
+ /**
+ * Sets the value of the dateTime property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setDateTime(XMLGregorianCalendar value) {
+ this.dateTime = value;
+ }
+
+ /**
+ * Gets the value of the cmsSignature property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getCMSSignature() {
+ return cmsSignature;
+ }
+
+ /**
+ * Sets the value of the cmsSignature property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setCMSSignature(byte[] value) {
+ this.cmsSignature = value;
+ }
+
+ /**
+ * Gets the value of the dataObject property.
+ *
+ * @return
+ * possible object is
+ * {@link CMSDataObjectOptionalMetaType }
+ *
+ */
+ public CMSDataObjectOptionalMetaType getDataObject() {
+ return dataObject;
+ }
+
+ /**
+ * Sets the value of the dataObject property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CMSDataObjectOptionalMetaType }
+ *
+ */
+ public void setDataObject(CMSDataObjectOptionalMetaType value) {
+ this.dataObject = value;
+ }
+
+ /**
+ * Gets the value of the signatories 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 signatories property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getSignatories().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getSignatories() {
+ if (signatories == null) {
+ signatories = new ArrayList<String>();
+ }
+ return this.signatories;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/XMLContentType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/XMLContentType.java
new file mode 100644
index 00000000..6d1342fc
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/XMLContentType.java
@@ -0,0 +1,70 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+
+package at.gv.egiz.sl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for XMLContentType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="XMLContentType">
+ * &lt;complexContent>
+ * &lt;extension base="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}AnyMixedChildrenType">
+ * &lt;attribute ref="{http://www.w3.org/XML/1998/namespace}space"/>
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "XMLContentType")
+public class XMLContentType
+ extends AnyMixedChildrenType
+{
+
+ @XmlAttribute(name = "space", namespace = "http://www.w3.org/XML/1998/namespace")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ protected String space;
+
+ /**
+ * Gets the value of the space property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getSpace() {
+ return space;
+ }
+
+ /**
+ * Sets the value of the space property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setSpace(String value) {
+ this.space = value;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/package-info.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/package-info.java
new file mode 100644
index 00000000..6e4f6072
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/package-info.java
@@ -0,0 +1,9 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2013.11.05 at 04:21:33 PM CET
+//
+
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.buergerkarte.at/namespaces/securitylayer/1.2#", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package at.gv.egiz.sl;
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BKUSLConnector.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BKUSLConnector.java
new file mode 100644
index 00000000..3381dca5
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BKUSLConnector.java
@@ -0,0 +1,165 @@
+package at.gv.egiz.sl.util;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+
+import org.apache.http.HttpResponse;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.ContentType;
+import org.apache.http.entity.mime.MultipartEntityBuilder;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import at.gv.egiz.pdfas.common.exceptions.PDFIOException;
+import at.gv.egiz.pdfas.common.exceptions.PdfAsException;
+import at.gv.egiz.pdfas.common.exceptions.SLPdfAsException;
+import at.gv.egiz.pdfas.lib.api.Configuration;
+import at.gv.egiz.sl.CreateCMSSignatureRequestType;
+import at.gv.egiz.sl.CreateCMSSignatureResponseType;
+import at.gv.egiz.sl.ErrorResponseType;
+import at.gv.egiz.sl.InfoboxReadRequestType;
+import at.gv.egiz.sl.InfoboxReadResponseType;
+
+public class BKUSLConnector extends BaseSLConnector {
+
+ private static final Logger logger = LoggerFactory
+ .getLogger(BKUSLConnector.class);
+
+ public static final String CONFIG_BKU_URL = "bku.sign.url";
+
+ private String bkuUrl;
+
+ public BKUSLConnector(Configuration config) {
+ this.bkuUrl = config.getValue(CONFIG_BKU_URL);
+ }
+
+ private CloseableHttpClient buildHttpClient() {
+ HttpClientBuilder builder = HttpClientBuilder.create();
+ return builder.build();
+ }
+
+ private String performHttpRequestToBKU(String xmlRequest)
+ throws ClientProtocolException, IOException, IllegalStateException {
+ CloseableHttpClient client = null;
+ try {
+ client = buildHttpClient();
+ HttpPost post = new HttpPost(this.bkuUrl);
+
+ MultipartEntityBuilder entityBuilder = MultipartEntityBuilder
+ .create();
+ entityBuilder.addTextBody(XMLREQUEST, xmlRequest,
+ ContentType.TEXT_XML);
+
+ post.setEntity(entityBuilder.build());
+
+ HttpResponse response = client.execute(post);
+ logger.debug("Response Code : "
+ + response.getStatusLine().getStatusCode());
+
+ BufferedReader rd = new BufferedReader(new InputStreamReader(
+ response.getEntity().getContent()));
+
+ StringBuffer result = new StringBuffer();
+ String line = "";
+ while ((line = rd.readLine()) != null) {
+ result.append(line);
+ }
+
+ logger.trace(result.toString());
+ return result.toString();
+ } finally {
+ if(client != null) {
+ client.close();
+ }
+ }
+ }
+
+ @SuppressWarnings("rawtypes")
+ public InfoboxReadResponseType sendInfoboxReadRequest(
+ InfoboxReadRequestType request) throws PdfAsException {
+ JAXBElement element = null;
+ String slRequest;
+ try {
+ slRequest = SLMarschaller.marshalToString(of
+ .createInfoboxReadRequest(request));
+ logger.trace(slRequest);
+
+ String slResponse = performHttpRequestToBKU(slRequest);
+
+ element = (JAXBElement) SLMarschaller
+ .unmarshalFromString(slResponse);
+
+ } catch (JAXBException e) {
+ throw new PDFIOException("SL_COM", e);
+ } catch (ClientProtocolException e) {
+ throw new PDFIOException("SL_COM", e);
+ } catch (IOException e) {
+ throw new PDFIOException("SL_COM", e);
+ }
+
+ if (element == null) {
+ throw new PDFIOException("SL ELEMENT NOT AVAILABLE");
+ }
+
+ if (element.getValue() instanceof InfoboxReadResponseType) {
+ InfoboxReadResponseType infoboxReadResponseType = (InfoboxReadResponseType) element
+ .getValue();
+ return infoboxReadResponseType;
+ } else if (element.getValue() instanceof ErrorResponseType) {
+ ErrorResponseType errorResponseType = (ErrorResponseType) element
+ .getValue();
+ throw new SLPdfAsException(errorResponseType.getErrorCode(),
+ errorResponseType.getInfo());
+ }
+ throw new PdfAsException("Invalid SL Repsonse");
+ }
+
+ public CreateCMSSignatureResponseType sendCMSRequest(
+ CreateCMSSignatureRequestType request) throws PdfAsException {
+ JAXBElement element = null;
+ String slRequest;
+ try {
+ slRequest = SLMarschaller.marshalToString(of
+ .createCreateCMSSignatureRequest(request));
+ logger.trace(slRequest);
+
+ String slResponse = performHttpRequestToBKU(slRequest);
+
+ element = (JAXBElement) SLMarschaller
+ .unmarshalFromString(slResponse);
+ } catch (JAXBException e) {
+ throw new PDFIOException("SL_COM", e);
+ } catch (ClientProtocolException e) {
+ throw new PDFIOException("SL_COM", e);
+ } catch (IOException e) {
+ throw new PDFIOException("SL_COM", e);
+ }
+
+ if (element == null) {
+ throw new PDFIOException("SL ELEMENT NOT AVAILABLE");
+ }
+
+ if (element.getValue() instanceof CreateCMSSignatureResponseType) {
+ CreateCMSSignatureResponseType createCMSSignatureResponseType = (CreateCMSSignatureResponseType) element
+ .getValue();
+ logger.debug(createCMSSignatureResponseType.toString());
+ return createCMSSignatureResponseType;
+ } else if (element.getValue() instanceof ErrorResponseType) {
+ ErrorResponseType errorResponseType = (ErrorResponseType) element
+ .getValue();
+ throw new SLPdfAsException(errorResponseType.getErrorCode(),
+ errorResponseType.getInfo());
+ }
+ throw new PdfAsException("Invalid SL Repsonse");
+
+ }
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BaseSLConnector.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BaseSLConnector.java
new file mode 100644
index 00000000..51b63f51
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BaseSLConnector.java
@@ -0,0 +1,120 @@
+package at.gv.egiz.sl.util;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.Buffer;
+import java.util.Arrays;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+
+import org.apache.http.HttpResponse;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.ContentType;
+import org.apache.http.entity.mime.HttpMultipartMode;
+import org.apache.http.entity.mime.MultipartEntity;
+import org.apache.http.entity.mime.MultipartEntityBuilder;
+import org.apache.http.entity.mime.content.StringBody;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import at.gv.egiz.pdfas.common.exceptions.PDFIOException;
+import at.gv.egiz.pdfas.common.exceptions.PdfAsException;
+import at.gv.egiz.pdfas.common.exceptions.SLPdfAsException;
+import at.gv.egiz.pdfas.lib.impl.signing.pdfbox.PADESPDFBOXSigner;
+import at.gv.egiz.sl.Base64OptRefContentType;
+import at.gv.egiz.sl.CMSDataObjectRequiredMetaType;
+import at.gv.egiz.sl.CreateCMSSignatureRequestType;
+import at.gv.egiz.sl.CreateCMSSignatureResponseType;
+import at.gv.egiz.sl.ErrorResponseType;
+import at.gv.egiz.sl.InfoboxReadParamsAssocArrayType;
+import at.gv.egiz.sl.InfoboxReadRequestType;
+import at.gv.egiz.sl.InfoboxReadResponseType;
+import at.gv.egiz.sl.MetaInfoType;
+import at.gv.egiz.sl.InfoboxReadParamsAssocArrayType.ReadValue;
+import at.gv.egiz.sl.ObjectFactory;
+
+public abstract class BaseSLConnector implements ISLConnector {
+
+ private static final Logger logger = LoggerFactory.getLogger(BaseSLConnector.class);
+
+ public static final String SecureSignatureKeypair = "SecureSignatureKeypair";
+
+ public static final String PDF_MIME_TYPE = "application/pdf";
+ public static final String PDF_MIME_TYPE_DESC = "Adobe PDF-Dateien";
+
+ public static final String DETACHED = "detached";
+
+ public static final String XMLREQUEST = "XMLRequest";
+
+ protected ObjectFactory of = new ObjectFactory();
+
+ public InfoboxReadRequestType createInfoboxReadRequest() {
+ InfoboxReadRequestType request = new InfoboxReadRequestType();
+ request.setInfoboxIdentifier("Certificates");
+ InfoboxReadParamsAssocArrayType readData = new InfoboxReadParamsAssocArrayType();
+
+ ReadValue readValue = new ReadValue();
+ readValue.setKey(SecureSignatureKeypair);
+
+ readData.setReadValue(readValue);
+ request.setAssocArrayParameters(readData);
+ return request;
+ }
+
+ public CreateCMSSignatureRequestType createCMSRequest(byte[] signatureData, int[] byteRange) {
+ // TODO build byte[] from signatureData and fill 0 bytes in byteRanged
+ if(byteRange.length % 2 != 0) {
+ // TODO: error
+ }
+
+ int lastOffset = byteRange[byteRange.length - 2];
+ int lastSize = byteRange[byteRange.length - 1];
+
+ int dataSize = lastOffset + lastSize;
+
+ byte[] data = new byte[dataSize];
+ int currentdataOff = 0;
+
+ Arrays.fill(data, (byte)0);
+
+ for(int i = 0; i < byteRange.length; i = i + 2) {
+ int offset = byteRange[i];
+ int size = byteRange[i+1];
+
+ for(int j = 0; j < size; j++) {
+ data[offset + j] = signatureData[currentdataOff];
+ currentdataOff++;
+ }
+
+ }
+
+ // == MetaInfoType
+ MetaInfoType metaInfoType = new MetaInfoType();
+ metaInfoType.setMimeType(PDF_MIME_TYPE);
+ metaInfoType.setDescription(PDF_MIME_TYPE_DESC);
+
+ // == Base64OptRefContentType
+ Base64OptRefContentType base64OptRefContentType = new Base64OptRefContentType();
+ base64OptRefContentType.setBase64Content(data);
+
+ // == CMSDataObjectRequiredMetaType
+ CMSDataObjectRequiredMetaType cmsDataObjectRequiredMetaType = new CMSDataObjectRequiredMetaType();
+ cmsDataObjectRequiredMetaType.setMetaInfo(metaInfoType);
+ cmsDataObjectRequiredMetaType.setContent(base64OptRefContentType);
+ // cmsDataObjectRequiredMetaType.setExcludedByteRange()
+
+ // == CreateCMSSignatureRequestType
+ CreateCMSSignatureRequestType request = new CreateCMSSignatureRequestType();
+ request.setKeyboxIdentifier(SecureSignatureKeypair);
+ request.setDataObject(cmsDataObjectRequiredMetaType);
+ request.setStructure(DETACHED);
+
+ return request;
+ }
+
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/ISLConnector.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/ISLConnector.java
new file mode 100644
index 00000000..82571720
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/ISLConnector.java
@@ -0,0 +1,15 @@
+package at.gv.egiz.sl.util;
+
+import at.gv.egiz.pdfas.common.exceptions.PdfAsException;
+import at.gv.egiz.sl.CreateCMSSignatureRequestType;
+import at.gv.egiz.sl.CreateCMSSignatureResponseType;
+import at.gv.egiz.sl.InfoboxReadRequestType;
+import at.gv.egiz.sl.InfoboxReadResponseType;
+
+public interface ISLConnector {
+
+ public InfoboxReadRequestType createInfoboxReadRequest();
+ public InfoboxReadResponseType sendInfoboxReadRequest(InfoboxReadRequestType request) throws PdfAsException;
+ public CreateCMSSignatureRequestType createCMSRequest(byte[] signatureData, int[] byteRange);
+ public CreateCMSSignatureResponseType sendCMSRequest(CreateCMSSignatureRequestType request) throws PdfAsException;
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/SLMarschaller.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/SLMarschaller.java
new file mode 100644
index 00000000..8f1b3cc5
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/SLMarschaller.java
@@ -0,0 +1,49 @@
+package at.gv.egiz.sl.util;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.StringReader;
+import java.io.StringWriter;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
+
+public class SLMarschaller {
+ private static Marshaller marshaller = null;
+ private static Unmarshaller unmarshaller = null;
+
+ static {
+ try {
+ JAXBContext context = JAXBContext.newInstance("at.gv.egiz.sl");
+ marshaller = context.createMarshaller();
+ marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
+ marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
+
+ unmarshaller = context.createUnmarshaller();
+ } catch (JAXBException e) {
+ throw new RuntimeException(
+ "There was a problem creating a JAXBContext object for formatting the object to XML.");
+ }
+ }
+
+ public static void marshal(Object obj, OutputStream os) throws JAXBException {
+ marshaller.marshal(obj, os);
+ }
+
+ public static String marshalToString(Object obj) throws JAXBException {
+ StringWriter sw = new StringWriter();
+ marshaller.marshal(obj, sw);
+ return sw.toString();
+ }
+
+ public static Object unmarshal(InputStream is) throws JAXBException {
+ return unmarshaller.unmarshal(is);
+ }
+
+ public static Object unmarshalFromString(String message) throws JAXBException {
+ StringReader sr = new StringReader(message);
+ return unmarshaller.unmarshal(sr);
+ }
+}
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/package-info.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/package-info.java
new file mode 100644
index 00000000..f370e34d
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/package-info.java
@@ -0,0 +1,8 @@
+/**
+ *
+ */
+/**
+ * @author afitzek
+ *
+ */
+package at.gv.egiz.sl.util; \ No newline at end of file