diff options
author | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2013-11-12 12:26:10 +0100 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2013-11-12 12:26:10 +0100 |
commit | 7b2e2b640b0f392183f7927f692936950d3fabfc (patch) | |
tree | ffd4acccb62f2679ff613bf0cd8cd0850186b465 | |
parent | dd43264f702c5e0351cc63835862c55f3e847634 (diff) | |
download | pdf-as-4-7b2e2b640b0f392183f7927f692936950d3fabfc.tar.gz pdf-as-4-7b2e2b640b0f392183f7927f692936950d3fabfc.tar.bz2 pdf-as-4-7b2e2b640b0f392183f7927f692936950d3fabfc.zip |
SecurityLayer commands included
71 files changed, 4535 insertions, 881 deletions
diff --git a/pdf-as-cli/build.gradle b/pdf-as-cli/build.gradle index 09de729f..bc350af9 100644 --- a/pdf-as-cli/build.gradle +++ b/pdf-as-cli/build.gradle @@ -15,6 +15,7 @@ dependencies { compile project (':pdf-as-lib') compile project (':stamper:stmp-itext') compile project (':signature-standards:sigs-pcks7detached') + compile project (':signature-standards:sigs-pades') compile group: 'commons-collections', name: 'commons-collections', version: '3.2' compile group: 'commons-cli', name: 'commons-cli', version: '1.2' testCompile group: 'junit', name: 'junit', version: '4.+' diff --git a/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/DeveloperMain.java b/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/DeveloperMain.java index 8087da19..b30e1be2 100644 --- a/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/DeveloperMain.java +++ b/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/DeveloperMain.java @@ -18,7 +18,10 @@ import at.gv.egiz.pdfas.lib.api.sign.IPlainSigner; import at.gv.egiz.pdfas.lib.api.sign.SignParameter; import at.gv.egiz.pdfas.lib.api.verify.VerifyParameter; import at.gv.egiz.pdfas.lib.impl.VerifyParameterImpl; +import at.gv.egiz.pdfas.lib.impl.signing.pdfbox.PADESPDFBOXSigner; +import at.gv.egiz.pdfas.sigs.pades.PAdESSigner; import at.gv.egiz.pdfas.sigs.pkcs7detached.PKCS7DetachedSigner; +import at.gv.egiz.sl.util.BKUSLConnector; public class DeveloperMain { @@ -37,13 +40,13 @@ public class DeveloperMain { byte[] data; try { IPlainSigner signer = new PKCS7DetachedSigner(keyStoreFile, keyAlias, keyStorePass, keyPass, keyStoreType); - data = StreamUtils.inputStreamToByteArray(new FileInputStream("/home/afitzek/devel/pdfas_neu/simple.pdf")); + data = StreamUtils.inputStreamToByteArray(new FileInputStream("/home/afitzek/devel/pdfas_neu/simple_out2.pdf")); SignParameter parameter = PdfAsFactory.createSignParameter(config, new ByteArrayDataSource(data)); ByteArrayDataSink bads = new ByteArrayDataSink(); parameter.setSignatureProfileId("SIGNATURBLOCK_DE_NEU"); parameter.setOutput(bads); - parameter.setPlainSigner(signer); - + parameter.setPlainSigner(new PAdESSigner(new BKUSLConnector(config))); + /* StatusRequest request = pdfas.startSign(parameter); if(request.needCertificate()) { @@ -58,7 +61,7 @@ public class DeveloperMain { FileOutputStream fos2 = new FileOutputStream("/home/afitzek/devel/pdfas_neu/sign1.pdf"); fos2.write(request.getSignatureData()); fos2.close(); - request.setSigature(signer.sign(request.getSignatureData())); + request.setSigature(signer.sign(request.getSignatureData(), request.getSignatureDataByteRange())); } else { throw new Exception("Invalid status"); } @@ -70,9 +73,9 @@ public class DeveloperMain { } else { throw new Exception("Invalid status"); } - + */ pdfas.sign(parameter); - FileOutputStream fos = new FileOutputStream("/home/afitzek/devel/pdfas_neu/simple_out.pdf"); + FileOutputStream fos = new FileOutputStream("/home/afitzek/devel/pdfas_neu/simple_out3.pdf"); fos.write(bads.getData()); fos.close(); diff --git a/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java b/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java index 09f0f9ce..05fbbf67 100644 --- a/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java +++ b/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java @@ -27,6 +27,8 @@ import at.gv.egiz.pdfas.lib.api.sign.SignParameter; import at.gv.egiz.pdfas.lib.api.sign.SignResult; import at.gv.egiz.pdfas.lib.api.verify.VerifyParameter; import at.gv.egiz.pdfas.lib.api.verify.VerifyResult; +import at.gv.egiz.pdfas.sigs.pades.PAdESSigner; +import at.gv.egiz.sl.util.BKUSLConnector; public class Main { @@ -55,7 +57,7 @@ public class Main { public static final String CLI_ARG_VERIFY_WHICH = "verify_which"; public static final String STANDARD_CONFIG_LOCATION = System - .getProperty("user.home") + "/.pdfas/cfg/"; + .getProperty("user.home") + "/.pdfas/"; public static final String STANDARD_POSITION_STRING = "x:auto;y:auto;w:auto;p:auto;f:0"; @@ -148,6 +150,7 @@ public class Main { System.exit(-1); } catch (Exception e) { System.err.println("PDF-AS Error: " + e.getMessage()); + e.printStackTrace(System.err); System.exit(-1); } } @@ -202,7 +205,7 @@ public class Main { configuration, dataSource); signParameter.setOutput(dataSink); - + signParameter.setPlainSigner(new PAdESSigner(new BKUSLConnector(configuration))); signParameter.setDataSource(dataSource); signParameter.setSignaturePosition(positionString); signParameter.setSignatureProfileId(profilID); diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/PdfAsSignatureException.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/PdfAsSignatureException.java new file mode 100644 index 00000000..8ce81acb --- /dev/null +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/PdfAsSignatureException.java @@ -0,0 +1,13 @@ +package at.gv.egiz.pdfas.common.exceptions; + +public class PdfAsSignatureException extends PdfAsException { + + /** + * + */ + private static final long serialVersionUID = -7708377284196351907L; + + public PdfAsSignatureException(String msgId, Throwable e) { + super(msgId, e); + } +} diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/PdfAsWrappedIOException.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/PdfAsWrappedIOException.java new file mode 100644 index 00000000..dfb2114e --- /dev/null +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/PdfAsWrappedIOException.java @@ -0,0 +1,16 @@ +package at.gv.egiz.pdfas.common.exceptions; + +import java.io.IOException; + +public class PdfAsWrappedIOException extends IOException { + + /** + * + */ + private static final long serialVersionUID = 1241649395712516711L; + + public PdfAsWrappedIOException(PdfAsException e) { + super(e); + } + +} diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/SLPdfAsException.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/SLPdfAsException.java new file mode 100644 index 00000000..fa9031ec --- /dev/null +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/SLPdfAsException.java @@ -0,0 +1,24 @@ +package at.gv.egiz.pdfas.common.exceptions; + + +public class SLPdfAsException extends PdfAsException { + + /** + * + */ + private static final long serialVersionUID = -1261346424827136327L; + + private int code; + private String info; + + public SLPdfAsException(int code, String info) { + super(); + this.code = code; + this.info = info; + } + + + protected String localizeMessage(String msgId) { + return String.format("%d : %s", code, info); + } +} diff --git a/pdf-as-lib/ /home/afitzek/devel/pdf-as-4/src/pdf-as-4/pdf-as-lib/src/main/java/at/gv/e_government/reference/namespace/moa/_20020822/ContentOptionalRefType.java b/pdf-as-lib/ /home/afitzek/devel/pdf-as-4/src/pdf-as-4/pdf-as-lib/src/main/java/at/gv/e_government/reference/namespace/moa/_20020822/ContentOptionalRefType.java deleted file mode 100644 index ebf93f7d..00000000 --- a/pdf-as-lib/ /home/afitzek/devel/pdf-as-4/src/pdf-as-4/pdf-as-lib/src/main/java/at/gv/e_government/reference/namespace/moa/_20020822/ContentOptionalRefType.java +++ /dev/null @@ -1,125 +0,0 @@ -/** - * ContentOptionalRefType.java - * - * This file was auto-generated from WSDL - * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. - */ - -package at.gv.e_government.reference.namespace.moa._20020822; - -public class ContentOptionalRefType extends at.gv.e_government.reference.namespace.moa._20020822.ContentBaseType implements java.io.Serializable { - private org.apache.axis.types.URI reference; // attribute - - public ContentOptionalRefType() { - } - - public ContentOptionalRefType( - byte[] base64Content, - at.gv.e_government.reference.namespace.moa._20020822.XMLContentType XMLContent, - org.apache.axis.types.URI locRefContent, - org.apache.axis.types.URI reference) { - super( - base64Content, - XMLContent, - locRefContent); - this.reference = reference; - } - - - /** - * Gets the reference value for this ContentOptionalRefType. - * - * @return reference - */ - public org.apache.axis.types.URI getReference() { - return reference; - } - - - /** - * Sets the reference value for this ContentOptionalRefType. - * - * @param reference - */ - public void setReference(org.apache.axis.types.URI reference) { - this.reference = reference; - } - - private java.lang.Object __equalsCalc = null; - public synchronized boolean equals(java.lang.Object obj) { - if (!(obj instanceof ContentOptionalRefType)) return false; - ContentOptionalRefType other = (ContentOptionalRefType) obj; - if (obj == null) return false; - if (this == obj) return true; - if (__equalsCalc != null) { - return (__equalsCalc == obj); - } - __equalsCalc = obj; - boolean _equals; - _equals = super.equals(obj) && - ((this.reference==null && other.getReference()==null) || - (this.reference!=null && - this.reference.equals(other.getReference()))); - __equalsCalc = null; - return _equals; - } - - private boolean __hashCodeCalc = false; - public synchronized int hashCode() { - if (__hashCodeCalc) { - return 0; - } - __hashCodeCalc = true; - int _hashCode = super.hashCode(); - if (getReference() != null) { - _hashCode += getReference().hashCode(); - } - __hashCodeCalc = false; - return _hashCode; - } - - // Type metadata - private static org.apache.axis.description.TypeDesc typeDesc = - new org.apache.axis.description.TypeDesc(ContentOptionalRefType.class, true); - - static { - typeDesc.setXmlType(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "ContentOptionalRefType")); - org.apache.axis.description.AttributeDesc attrField = new org.apache.axis.description.AttributeDesc(); - attrField.setFieldName("reference"); - attrField.setXmlName(new javax.xml.namespace.QName("", "Reference")); - attrField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "anyURI")); - typeDesc.addFieldDesc(attrField); - } - - /** - * Return type metadata object - */ - public static org.apache.axis.description.TypeDesc getTypeDesc() { - return typeDesc; - } - - /** - * Get Custom Serializer - */ - public static org.apache.axis.encoding.Serializer getSerializer( - java.lang.String mechType, - java.lang.Class _javaType, - javax.xml.namespace.QName _xmlType) { - return - new org.apache.axis.encoding.ser.BeanSerializer( - _javaType, _xmlType, typeDesc); - } - - /** - * Get Custom Deserializer - */ - public static org.apache.axis.encoding.Deserializer getDeserializer( - java.lang.String mechType, - java.lang.Class _javaType, - javax.xml.namespace.QName _xmlType) { - return - new org.apache.axis.encoding.ser.BeanDeserializer( - _javaType, _xmlType, typeDesc); - } - -} diff --git a/pdf-as-lib/ /home/afitzek/devel/pdf-as-4/src/pdf-as-4/pdf-as-lib/src/main/java/at/gv/e_government/reference/namespace/moa/_20020822/ManifestRefsCheckResultInfoType.java b/pdf-as-lib/ /home/afitzek/devel/pdf-as-4/src/pdf-as-4/pdf-as-lib/src/main/java/at/gv/e_government/reference/namespace/moa/_20020822/ManifestRefsCheckResultInfoType.java deleted file mode 100644 index e69de29b..00000000 --- a/pdf-as-lib/ /home/afitzek/devel/pdf-as-4/src/pdf-as-4/pdf-as-lib/src/main/java/at/gv/e_government/reference/namespace/moa/_20020822/ManifestRefsCheckResultInfoType.java +++ /dev/null diff --git a/pdf-as-lib/ /home/afitzek/devel/pdf-as-4/src/pdf-as-4/pdf-as-lib/src/main/java/at/gv/e_government/reference/namespace/moa/_20020822/PublicAuthorityType.java b/pdf-as-lib/ /home/afitzek/devel/pdf-as-4/src/pdf-as-4/pdf-as-lib/src/main/java/at/gv/e_government/reference/namespace/moa/_20020822/PublicAuthorityType.java deleted file mode 100644 index cf0fdeca..00000000 --- a/pdf-as-lib/ /home/afitzek/devel/pdf-as-4/src/pdf-as-4/pdf-as-lib/src/main/java/at/gv/e_government/reference/namespace/moa/_20020822/PublicAuthorityType.java +++ /dev/null @@ -1,120 +0,0 @@ -/** - * PublicAuthorityType.java - * - * This file was auto-generated from WSDL - * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. - */ - -package at.gv.e_government.reference.namespace.moa._20020822; - -public class PublicAuthorityType implements java.io.Serializable { - private java.lang.String code; - - public PublicAuthorityType() { - } - - public PublicAuthorityType( - java.lang.String code) { - this.code = code; - } - - - /** - * Gets the code value for this PublicAuthorityType. - * - * @return code - */ - public java.lang.String getCode() { - return code; - } - - - /** - * Sets the code value for this PublicAuthorityType. - * - * @param code - */ - public void setCode(java.lang.String code) { - this.code = code; - } - - private java.lang.Object __equalsCalc = null; - public synchronized boolean equals(java.lang.Object obj) { - if (!(obj instanceof PublicAuthorityType)) return false; - PublicAuthorityType other = (PublicAuthorityType) obj; - if (obj == null) return false; - if (this == obj) return true; - if (__equalsCalc != null) { - return (__equalsCalc == obj); - } - __equalsCalc = obj; - boolean _equals; - _equals = true && - ((this.code==null && other.getCode()==null) || - (this.code!=null && - this.code.equals(other.getCode()))); - __equalsCalc = null; - return _equals; - } - - private boolean __hashCodeCalc = false; - public synchronized int hashCode() { - if (__hashCodeCalc) { - return 0; - } - __hashCodeCalc = true; - int _hashCode = 1; - if (getCode() != null) { - _hashCode += getCode().hashCode(); - } - __hashCodeCalc = false; - return _hashCode; - } - - // Type metadata - private static org.apache.axis.description.TypeDesc typeDesc = - new org.apache.axis.description.TypeDesc(PublicAuthorityType.class, true); - - static { - typeDesc.setXmlType(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "PublicAuthorityType")); - org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc(); - elemField.setFieldName("code"); - elemField.setXmlName(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "Code")); - elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } - - /** - * Return type metadata object - */ - public static org.apache.axis.description.TypeDesc getTypeDesc() { - return typeDesc; - } - - /** - * Get Custom Serializer - */ - public static org.apache.axis.encoding.Serializer getSerializer( - java.lang.String mechType, - java.lang.Class _javaType, - javax.xml.namespace.QName _xmlType) { - return - new org.apache.axis.encoding.ser.BeanSerializer( - _javaType, _xmlType, typeDesc); - } - - /** - * Get Custom Deserializer - */ - public static org.apache.axis.encoding.Deserializer getDeserializer( - java.lang.String mechType, - java.lang.Class _javaType, - javax.xml.namespace.QName _xmlType) { - return - new org.apache.axis.encoding.ser.BeanDeserializer( - _javaType, _xmlType, typeDesc); - } - -} diff --git a/pdf-as-lib/ /home/afitzek/devel/pdf-as-4/src/pdf-as-4/pdf-as-lib/src/main/java/at/gv/e_government/reference/namespace/moa/_20020822/VerifyCMSSignatureResponseType.java b/pdf-as-lib/ /home/afitzek/devel/pdf-as-4/src/pdf-as-4/pdf-as-lib/src/main/java/at/gv/e_government/reference/namespace/moa/_20020822/VerifyCMSSignatureResponseType.java deleted file mode 100644 index f4be37ee..00000000 --- a/pdf-as-lib/ /home/afitzek/devel/pdf-as-4/src/pdf-as-4/pdf-as-lib/src/main/java/at/gv/e_government/reference/namespace/moa/_20020822/VerifyCMSSignatureResponseType.java +++ /dev/null @@ -1,195 +0,0 @@ -/** - * VerifyCMSSignatureResponseType.java - * - * This file was auto-generated from WSDL - * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. - */ - -package at.gv.e_government.reference.namespace.moa._20020822; - -public class VerifyCMSSignatureResponseType implements java.io.Serializable { - /* only ds:X509Data and RetrievalMethod is supported; QualifiedCertificate - * is included as X509Data/any;publicAuthority is included as X509Data/any */ - private org.w3.www._2000._09.xmldsig.KeyInfoType signerInfo; - - private at.gv.e_government.reference.namespace.moa._20020822.CheckResultType signatureCheck; - - private at.gv.e_government.reference.namespace.moa._20020822.CheckResultType certificateCheck; - - public VerifyCMSSignatureResponseType() { - } - - public VerifyCMSSignatureResponseType( - org.w3.www._2000._09.xmldsig.KeyInfoType signerInfo, - at.gv.e_government.reference.namespace.moa._20020822.CheckResultType signatureCheck, - at.gv.e_government.reference.namespace.moa._20020822.CheckResultType certificateCheck) { - this.signerInfo = signerInfo; - this.signatureCheck = signatureCheck; - this.certificateCheck = certificateCheck; - } - - - /** - * Gets the signerInfo value for this VerifyCMSSignatureResponseType. - * - * @return signerInfo * only ds:X509Data and RetrievalMethod is supported; QualifiedCertificate - * is included as X509Data/any;publicAuthority is included as X509Data/any - */ - public org.w3.www._2000._09.xmldsig.KeyInfoType getSignerInfo() { - return signerInfo; - } - - - /** - * Sets the signerInfo value for this VerifyCMSSignatureResponseType. - * - * @param signerInfo * only ds:X509Data and RetrievalMethod is supported; QualifiedCertificate - * is included as X509Data/any;publicAuthority is included as X509Data/any - */ - public void setSignerInfo(org.w3.www._2000._09.xmldsig.KeyInfoType signerInfo) { - this.signerInfo = signerInfo; - } - - - /** - * Gets the signatureCheck value for this VerifyCMSSignatureResponseType. - * - * @return signatureCheck - */ - public at.gv.e_government.reference.namespace.moa._20020822.CheckResultType getSignatureCheck() { - return signatureCheck; - } - - - /** - * Sets the signatureCheck value for this VerifyCMSSignatureResponseType. - * - * @param signatureCheck - */ - public void setSignatureCheck(at.gv.e_government.reference.namespace.moa._20020822.CheckResultType signatureCheck) { - this.signatureCheck = signatureCheck; - } - - - /** - * Gets the certificateCheck value for this VerifyCMSSignatureResponseType. - * - * @return certificateCheck - */ - public at.gv.e_government.reference.namespace.moa._20020822.CheckResultType getCertificateCheck() { - return certificateCheck; - } - - - /** - * Sets the certificateCheck value for this VerifyCMSSignatureResponseType. - * - * @param certificateCheck - */ - public void setCertificateCheck(at.gv.e_government.reference.namespace.moa._20020822.CheckResultType certificateCheck) { - this.certificateCheck = certificateCheck; - } - - private java.lang.Object __equalsCalc = null; - public synchronized boolean equals(java.lang.Object obj) { - if (!(obj instanceof VerifyCMSSignatureResponseType)) return false; - VerifyCMSSignatureResponseType other = (VerifyCMSSignatureResponseType) obj; - if (obj == null) return false; - if (this == obj) return true; - if (__equalsCalc != null) { - return (__equalsCalc == obj); - } - __equalsCalc = obj; - boolean _equals; - _equals = true && - ((this.signerInfo==null && other.getSignerInfo()==null) || - (this.signerInfo!=null && - this.signerInfo.equals(other.getSignerInfo()))) && - ((this.signatureCheck==null && other.getSignatureCheck()==null) || - (this.signatureCheck!=null && - this.signatureCheck.equals(other.getSignatureCheck()))) && - ((this.certificateCheck==null && other.getCertificateCheck()==null) || - (this.certificateCheck!=null && - this.certificateCheck.equals(other.getCertificateCheck()))); - __equalsCalc = null; - return _equals; - } - - private boolean __hashCodeCalc = false; - public synchronized int hashCode() { - if (__hashCodeCalc) { - return 0; - } - __hashCodeCalc = true; - int _hashCode = 1; - if (getSignerInfo() != null) { - _hashCode += getSignerInfo().hashCode(); - } - if (getSignatureCheck() != null) { - _hashCode += getSignatureCheck().hashCode(); - } - if (getCertificateCheck() != null) { - _hashCode += getCertificateCheck().hashCode(); - } - __hashCodeCalc = false; - return _hashCode; - } - - // Type metadata - private static org.apache.axis.description.TypeDesc typeDesc = - new org.apache.axis.description.TypeDesc(VerifyCMSSignatureResponseType.class, true); - - static { - typeDesc.setXmlType(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "VerifyCMSSignatureResponseType")); - org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc(); - elemField.setFieldName("signerInfo"); - elemField.setXmlName(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "SignerInfo")); - elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2000/09/xmldsig#", "KeyInfoType")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new org.apache.axis.description.ElementDesc(); - elemField.setFieldName("signatureCheck"); - elemField.setXmlName(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "SignatureCheck")); - elemField.setXmlType(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "CheckResultType")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new org.apache.axis.description.ElementDesc(); - elemField.setFieldName("certificateCheck"); - elemField.setXmlName(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "CertificateCheck")); - elemField.setXmlType(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "CheckResultType")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } - - /** - * Return type metadata object - */ - public static org.apache.axis.description.TypeDesc getTypeDesc() { - return typeDesc; - } - - /** - * Get Custom Serializer - */ - public static org.apache.axis.encoding.Serializer getSerializer( - java.lang.String mechType, - java.lang.Class _javaType, - javax.xml.namespace.QName _xmlType) { - return - new org.apache.axis.encoding.ser.BeanSerializer( - _javaType, _xmlType, typeDesc); - } - - /** - * Get Custom Deserializer - */ - public static org.apache.axis.encoding.Deserializer getDeserializer( - java.lang.String mechType, - java.lang.Class _javaType, - javax.xml.namespace.QName _xmlType) { - return - new org.apache.axis.encoding.ser.BeanDeserializer( - _javaType, _xmlType, typeDesc); - } - -} diff --git a/pdf-as-lib/ /home/afitzek/devel/pdf-as-4/src/pdf-as-4/pdf-as-lib/src/main/java/at/gv/e_government/reference/namespace/moa/_20020822/VerifyXMLSignatureResponseType.java b/pdf-as-lib/ /home/afitzek/devel/pdf-as-4/src/pdf-as-4/pdf-as-lib/src/main/java/at/gv/e_government/reference/namespace/moa/_20020822/VerifyXMLSignatureResponseType.java deleted file mode 100644 index c7fd41e9..00000000 --- a/pdf-as-lib/ /home/afitzek/devel/pdf-as-4/src/pdf-as-4/pdf-as-lib/src/main/java/at/gv/e_government/reference/namespace/moa/_20020822/VerifyXMLSignatureResponseType.java +++ /dev/null @@ -1,394 +0,0 @@ -/** - * VerifyXMLSignatureResponseType.java - * - * This file was auto-generated from WSDL - * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. - */ - -package at.gv.e_government.reference.namespace.moa._20020822; - -public class VerifyXMLSignatureResponseType implements java.io.Serializable { - /* only ds:X509Data and ds:RetrievalMethod is supported; QualifiedCertificate - * is included as X509Data/any; PublicAuthority is included as X509Data/any */ - private org.w3.www._2000._09.xmldsig.KeyInfoType signerInfo; - - private at.gv.e_government.reference.namespace.moa._20020822.InputDataType[] hashInputData; - - private at.gv.e_government.reference.namespace.moa._20020822.InputDataType[] referenceInputData; - - private at.gv.e_government.reference.namespace.moa._20020822.ReferencesCheckResultType signatureCheck; - - private at.gv.e_government.reference.namespace.moa._20020822.ReferencesCheckResultType signatureManifestCheck; - - private at.gv.e_government.reference.namespace.moa._20020822.ManifestRefsCheckResultType[] XMLDSIGManifestCheck; - - private at.gv.e_government.reference.namespace.moa._20020822.CheckResultType certificateCheck; - - public VerifyXMLSignatureResponseType() { - } - - public VerifyXMLSignatureResponseType( - org.w3.www._2000._09.xmldsig.KeyInfoType signerInfo, - at.gv.e_government.reference.namespace.moa._20020822.InputDataType[] hashInputData, - at.gv.e_government.reference.namespace.moa._20020822.InputDataType[] referenceInputData, - at.gv.e_government.reference.namespace.moa._20020822.ReferencesCheckResultType signatureCheck, - at.gv.e_government.reference.namespace.moa._20020822.ReferencesCheckResultType signatureManifestCheck, - at.gv.e_government.reference.namespace.moa._20020822.ManifestRefsCheckResultType[] XMLDSIGManifestCheck, - at.gv.e_government.reference.namespace.moa._20020822.CheckResultType certificateCheck) { - this.signerInfo = signerInfo; - this.hashInputData = hashInputData; - this.referenceInputData = referenceInputData; - this.signatureCheck = signatureCheck; - this.signatureManifestCheck = signatureManifestCheck; - this.XMLDSIGManifestCheck = XMLDSIGManifestCheck; - this.certificateCheck = certificateCheck; - } - - - /** - * Gets the signerInfo value for this VerifyXMLSignatureResponseType. - * - * @return signerInfo * only ds:X509Data and ds:RetrievalMethod is supported; QualifiedCertificate - * is included as X509Data/any; PublicAuthority is included as X509Data/any - */ - public org.w3.www._2000._09.xmldsig.KeyInfoType getSignerInfo() { - return signerInfo; - } - - - /** - * Sets the signerInfo value for this VerifyXMLSignatureResponseType. - * - * @param signerInfo * only ds:X509Data and ds:RetrievalMethod is supported; QualifiedCertificate - * is included as X509Data/any; PublicAuthority is included as X509Data/any - */ - public void setSignerInfo(org.w3.www._2000._09.xmldsig.KeyInfoType signerInfo) { - this.signerInfo = signerInfo; - } - - - /** - * Gets the hashInputData value for this VerifyXMLSignatureResponseType. - * - * @return hashInputData - */ - public at.gv.e_government.reference.namespace.moa._20020822.InputDataType[] getHashInputData() { - return hashInputData; - } - - - /** - * Sets the hashInputData value for this VerifyXMLSignatureResponseType. - * - * @param hashInputData - */ - public void setHashInputData(at.gv.e_government.reference.namespace.moa._20020822.InputDataType[] hashInputData) { - this.hashInputData = hashInputData; - } - - public at.gv.e_government.reference.namespace.moa._20020822.InputDataType getHashInputData(int i) { - return this.hashInputData[i]; - } - - public void setHashInputData(int i, at.gv.e_government.reference.namespace.moa._20020822.InputDataType _value) { - this.hashInputData[i] = _value; - } - - - /** - * Gets the referenceInputData value for this VerifyXMLSignatureResponseType. - * - * @return referenceInputData - */ - public at.gv.e_government.reference.namespace.moa._20020822.InputDataType[] getReferenceInputData() { - return referenceInputData; - } - - - /** - * Sets the referenceInputData value for this VerifyXMLSignatureResponseType. - * - * @param referenceInputData - */ - public void setReferenceInputData(at.gv.e_government.reference.namespace.moa._20020822.InputDataType[] referenceInputData) { - this.referenceInputData = referenceInputData; - } - - public at.gv.e_government.reference.namespace.moa._20020822.InputDataType getReferenceInputData(int i) { - return this.referenceInputData[i]; - } - - public void setReferenceInputData(int i, at.gv.e_government.reference.namespace.moa._20020822.InputDataType _value) { - this.referenceInputData[i] = _value; - } - - - /** - * Gets the signatureCheck value for this VerifyXMLSignatureResponseType. - * - * @return signatureCheck - */ - public at.gv.e_government.reference.namespace.moa._20020822.ReferencesCheckResultType getSignatureCheck() { - return signatureCheck; - } - - - /** - * Sets the signatureCheck value for this VerifyXMLSignatureResponseType. - * - * @param signatureCheck - */ - public void setSignatureCheck(at.gv.e_government.reference.namespace.moa._20020822.ReferencesCheckResultType signatureCheck) { - this.signatureCheck = signatureCheck; - } - - - /** - * Gets the signatureManifestCheck value for this VerifyXMLSignatureResponseType. - * - * @return signatureManifestCheck - */ - public at.gv.e_government.reference.namespace.moa._20020822.ReferencesCheckResultType getSignatureManifestCheck() { - return signatureManifestCheck; - } - - - /** - * Sets the signatureManifestCheck value for this VerifyXMLSignatureResponseType. - * - * @param signatureManifestCheck - */ - public void setSignatureManifestCheck(at.gv.e_government.reference.namespace.moa._20020822.ReferencesCheckResultType signatureManifestCheck) { - this.signatureManifestCheck = signatureManifestCheck; - } - - - /** - * Gets the XMLDSIGManifestCheck value for this VerifyXMLSignatureResponseType. - * - * @return XMLDSIGManifestCheck - */ - public at.gv.e_government.reference.namespace.moa._20020822.ManifestRefsCheckResultType[] getXMLDSIGManifestCheck() { - return XMLDSIGManifestCheck; - } - - - /** - * Sets the XMLDSIGManifestCheck value for this VerifyXMLSignatureResponseType. - * - * @param XMLDSIGManifestCheck - */ - public void setXMLDSIGManifestCheck(at.gv.e_government.reference.namespace.moa._20020822.ManifestRefsCheckResultType[] XMLDSIGManifestCheck) { - this.XMLDSIGManifestCheck = XMLDSIGManifestCheck; - } - - public at.gv.e_government.reference.namespace.moa._20020822.ManifestRefsCheckResultType getXMLDSIGManifestCheck(int i) { - return this.XMLDSIGManifestCheck[i]; - } - - public void setXMLDSIGManifestCheck(int i, at.gv.e_government.reference.namespace.moa._20020822.ManifestRefsCheckResultType _value) { - this.XMLDSIGManifestCheck[i] = _value; - } - - - /** - * Gets the certificateCheck value for this VerifyXMLSignatureResponseType. - * - * @return certificateCheck - */ - public at.gv.e_government.reference.namespace.moa._20020822.CheckResultType getCertificateCheck() { - return certificateCheck; - } - - - /** - * Sets the certificateCheck value for this VerifyXMLSignatureResponseType. - * - * @param certificateCheck - */ - public void setCertificateCheck(at.gv.e_government.reference.namespace.moa._20020822.CheckResultType certificateCheck) { - this.certificateCheck = certificateCheck; - } - - private java.lang.Object __equalsCalc = null; - public synchronized boolean equals(java.lang.Object obj) { - if (!(obj instanceof VerifyXMLSignatureResponseType)) return false; - VerifyXMLSignatureResponseType other = (VerifyXMLSignatureResponseType) obj; - if (obj == null) return false; - if (this == obj) return true; - if (__equalsCalc != null) { - return (__equalsCalc == obj); - } - __equalsCalc = obj; - boolean _equals; - _equals = true && - ((this.signerInfo==null && other.getSignerInfo()==null) || - (this.signerInfo!=null && - this.signerInfo.equals(other.getSignerInfo()))) && - ((this.hashInputData==null && other.getHashInputData()==null) || - (this.hashInputData!=null && - java.util.Arrays.equals(this.hashInputData, other.getHashInputData()))) && - ((this.referenceInputData==null && other.getReferenceInputData()==null) || - (this.referenceInputData!=null && - java.util.Arrays.equals(this.referenceInputData, other.getReferenceInputData()))) && - ((this.signatureCheck==null && other.getSignatureCheck()==null) || - (this.signatureCheck!=null && - this.signatureCheck.equals(other.getSignatureCheck()))) && - ((this.signatureManifestCheck==null && other.getSignatureManifestCheck()==null) || - (this.signatureManifestCheck!=null && - this.signatureManifestCheck.equals(other.getSignatureManifestCheck()))) && - ((this.XMLDSIGManifestCheck==null && other.getXMLDSIGManifestCheck()==null) || - (this.XMLDSIGManifestCheck!=null && - java.util.Arrays.equals(this.XMLDSIGManifestCheck, other.getXMLDSIGManifestCheck()))) && - ((this.certificateCheck==null && other.getCertificateCheck()==null) || - (this.certificateCheck!=null && - this.certificateCheck.equals(other.getCertificateCheck()))); - __equalsCalc = null; - return _equals; - } - - private boolean __hashCodeCalc = false; - public synchronized int hashCode() { - if (__hashCodeCalc) { - return 0; - } - __hashCodeCalc = true; - int _hashCode = 1; - if (getSignerInfo() != null) { - _hashCode += getSignerInfo().hashCode(); - } - if (getHashInputData() != null) { - for (int i=0; - i<java.lang.reflect.Array.getLength(getHashInputData()); - i++) { - java.lang.Object obj = java.lang.reflect.Array.get(getHashInputData(), i); - if (obj != null && - !obj.getClass().isArray()) { - _hashCode += obj.hashCode(); - } - } - } - if (getReferenceInputData() != null) { - for (int i=0; - i<java.lang.reflect.Array.getLength(getReferenceInputData()); - i++) { - java.lang.Object obj = java.lang.reflect.Array.get(getReferenceInputData(), i); - if (obj != null && - !obj.getClass().isArray()) { - _hashCode += obj.hashCode(); - } - } - } - if (getSignatureCheck() != null) { - _hashCode += getSignatureCheck().hashCode(); - } - if (getSignatureManifestCheck() != null) { - _hashCode += getSignatureManifestCheck().hashCode(); - } - if (getXMLDSIGManifestCheck() != null) { - for (int i=0; - i<java.lang.reflect.Array.getLength(getXMLDSIGManifestCheck()); - i++) { - java.lang.Object obj = java.lang.reflect.Array.get(getXMLDSIGManifestCheck(), i); - if (obj != null && - !obj.getClass().isArray()) { - _hashCode += obj.hashCode(); - } - } - } - if (getCertificateCheck() != null) { - _hashCode += getCertificateCheck().hashCode(); - } - __hashCodeCalc = false; - return _hashCode; - } - - // Type metadata - private static org.apache.axis.description.TypeDesc typeDesc = - new org.apache.axis.description.TypeDesc(VerifyXMLSignatureResponseType.class, true); - - static { - typeDesc.setXmlType(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "VerifyXMLSignatureResponseType")); - org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc(); - elemField.setFieldName("signerInfo"); - elemField.setXmlName(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "SignerInfo")); - elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2000/09/xmldsig#", "KeyInfoType")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new org.apache.axis.description.ElementDesc(); - elemField.setFieldName("hashInputData"); - elemField.setXmlName(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "HashInputData")); - elemField.setXmlType(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "InputDataType")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - elemField.setMaxOccursUnbounded(true); - typeDesc.addFieldDesc(elemField); - elemField = new org.apache.axis.description.ElementDesc(); - elemField.setFieldName("referenceInputData"); - elemField.setXmlName(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "ReferenceInputData")); - elemField.setXmlType(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "InputDataType")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - elemField.setMaxOccursUnbounded(true); - typeDesc.addFieldDesc(elemField); - elemField = new org.apache.axis.description.ElementDesc(); - elemField.setFieldName("signatureCheck"); - elemField.setXmlName(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "SignatureCheck")); - elemField.setXmlType(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "ReferencesCheckResultType")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new org.apache.axis.description.ElementDesc(); - elemField.setFieldName("signatureManifestCheck"); - elemField.setXmlName(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "SignatureManifestCheck")); - elemField.setXmlType(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "ReferencesCheckResultType")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new org.apache.axis.description.ElementDesc(); - elemField.setFieldName("XMLDSIGManifestCheck"); - elemField.setXmlName(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "XMLDSIGManifestCheck")); - elemField.setXmlType(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "ManifestRefsCheckResultType")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - elemField.setMaxOccursUnbounded(true); - typeDesc.addFieldDesc(elemField); - elemField = new org.apache.axis.description.ElementDesc(); - elemField.setFieldName("certificateCheck"); - elemField.setXmlName(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "CertificateCheck")); - elemField.setXmlType(new javax.xml.namespace.QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "CheckResultType")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } - - /** - * Return type metadata object - */ - public static org.apache.axis.description.TypeDesc getTypeDesc() { - return typeDesc; - } - - /** - * Get Custom Serializer - */ - public static org.apache.axis.encoding.Serializer getSerializer( - java.lang.String mechType, - java.lang.Class _javaType, - javax.xml.namespace.QName _xmlType) { - return - new org.apache.axis.encoding.ser.BeanSerializer( - _javaType, _xmlType, typeDesc); - } - - /** - * Get Custom Deserializer - */ - public static org.apache.axis.encoding.Deserializer getDeserializer( - java.lang.String mechType, - java.lang.Class _javaType, - javax.xml.namespace.QName _xmlType) { - return - new org.apache.axis.encoding.ser.BeanDeserializer( - _javaType, _xmlType, typeDesc); - } - -} diff --git a/pdf-as-lib/build.gradle b/pdf-as-lib/build.gradle index a6693841..10dc0fc7 100644 --- a/pdf-as-lib/build.gradle +++ b/pdf-as-lib/build.gradle @@ -52,6 +52,8 @@ repositories { dependencies { compile project (':pdf-as-common') + compile group: 'org.apache.httpcomponents', name: 'httpmime', version: '4.3.1' + compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.3.1' compile group: 'org.apache.pdfbox', name: 'pdfbox', version: '1.8.2' compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' compile group: 'org.apache.commons', name: 'commons-io', version: '1.3.2' 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> + * <simpleType name="AllSignatoriesType"> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * <enumeration value="all"/> + * </restriction> + * </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> + * <complexType name="AnyChildrenType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence maxOccurs="unbounded" minOccurs="0"> + * <any processContents='lax'/> + * </sequence> + * </restriction> + * </complexContent> + * </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> + * <complexType name="AnyMixedChildrenType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence maxOccurs="unbounded" minOccurs="0"> + * <any processContents='lax'/> + * </sequence> + * </restriction> + * </complexContent> + * </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> + * <complexType name="Base64ContentType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice minOccurs="0"> + * <element name="Base64Content" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> + * </choice> + * </restriction> + * </complexContent> + * </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> + * <complexType name="Base64OptRefContentType"> + * <complexContent> + * <extension base="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}Base64ContentType"> + * <attribute name="Reference" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * </extension> + * </complexContent> + * </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> + * <complexType name="Base64XMLContentType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice minOccurs="0"> + * <element name="Base64Content" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> + * <element name="XMLContent" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}XMLContentType"/> + * </choice> + * </restriction> + * </complexContent> + * </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> + * <complexType name="BindingType"> + * <complexContent> + * <extension base="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}AnyChildrenType"> + * <attribute name="Identifier" use="required" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </complexContent> + * </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> + * <complexType name="CMSDataObjectOptionalMetaType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="MetaInfo" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}MetaInfoType" minOccurs="0"/> + * <element name="Content" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}Base64OptRefContentType"/> + * <element name="ExcludedByteRange" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}ExcludedByteRangeType" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </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> + * <complexType name="CMSDataObjectRequiredMetaType"> + * <complexContent> + * <restriction base="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}CMSDataObjectOptionalMetaType"> + * <sequence> + * <element name="MetaInfo" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}MetaInfoType"/> + * <element name="Content" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}Base64OptRefContentType"/> + * <element name="ExcludedByteRange" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}ExcludedByteRangeType" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </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> + * <complexType name="CreateCMSSignatureRequestType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="KeyboxIdentifier" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}BoxIdentifierType"/> + * <element name="DataObject" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}CMSDataObjectRequiredMetaType"/> + * </sequence> + * <attribute name="Structure" use="required"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * <enumeration value="detached"/> + * <enumeration value="enveloping"/> + * </restriction> + * </simpleType> + * </attribute> + * </restriction> + * </complexContent> + * </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> + * <complexType name="CreateCMSSignatureResponseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="CMSSignature" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> + * </sequence> + * </restriction> + * </complexContent> + * </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> + * <complexType name="ErrorResponseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="ErrorCode" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}ErrorCodeType"/> + * <element name="Info" type="{http://www.w3.org/2001/XMLSchema}string"/> + * </sequence> + * </restriction> + * </complexContent> + * </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> + * <complexType name="ExcludedByteRangeType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="From" type="{http://www.w3.org/2001/XMLSchema}unsignedLong"/> + * <element name="To" type="{http://www.w3.org/2001/XMLSchema}unsignedLong"/> + * </sequence> + * </restriction> + * </complexContent> + * </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> + * <complexType> + * <complexContent> + * <extension base="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}GetPropertiesRequestType"> + * </extension> + * </complexContent> + * </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> + * <complexType name="GetPropertiesRequestType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * </restriction> + * </complexContent> + * </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> + * <complexType name="GetPropertiesResponseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="ViewerMediaType" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}MimeTypeType" maxOccurs="unbounded"/> + * <element name="XMLSignatureTransform" type="{http://www.w3.org/2001/XMLSchema}anyURI" maxOccurs="unbounded"/> + * <element name="KeyboxIdentifier" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}QualifiedBoxIdentifierType" maxOccurs="unbounded" minOccurs="0"/> + * <element name="Binding" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}BindingType" maxOccurs="unbounded"/> + * <element name="ProtocolVersion" type="{http://www.w3.org/2001/XMLSchema}token" maxOccurs="unbounded"/> + * <any namespace='##other' maxOccurs="unbounded" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </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> + * <complexType name="GetStatusRequestType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence minOccurs="0"> + * <element name="TokenStatus" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}TokenStatusType"/> + * <element name="MaxDelay" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/> + * </sequence> + * </restriction> + * </complexContent> + * </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> + * <complexType name="GetStatusResponseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="TokenStatus" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}TokenStatusType"/> + * </sequence> + * </restriction> + * </complexContent> + * </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> + * <complexType name="InfoboxAssocArrayPairType"> + * <complexContent> + * <extension base="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}Base64XMLContentType"> + * <attribute name="Key" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> + * </extension> + * </complexContent> + * </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> + * <complexType name="InfoboxReadDataAssocArrayType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice> + * <sequence maxOccurs="unbounded" minOccurs="0"> + * <element name="Key" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}BoxIdentifierType"/> + * </sequence> + * <sequence maxOccurs="unbounded" minOccurs="0"> + * <element name="Pair" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}InfoboxAssocArrayPairType"/> + * </sequence> + * </choice> + * </restriction> + * </complexContent> + * </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> + * <complexType name="InfoboxReadParamsAssocArrayType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice> + * <element name="ReadKeys"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <attribute name="SearchString" use="required" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}WildCardSearchStringType" /> + * <attribute name="UserMakesUnique" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="ReadPairs"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <attribute name="SearchString" use="required" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}WildCardSearchStringType" /> + * <attribute name="UserMakesUnique" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> + * <attribute name="ValuesAreXMLEntities" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="ReadValue"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <attribute name="Key" use="required" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}BoxIdentifierType" /> + * <attribute name="ValueIsXMLEntity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </choice> + * </restriction> + * </complexContent> + * </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> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <attribute name="SearchString" use="required" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}WildCardSearchStringType" /> + * <attribute name="UserMakesUnique" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> + * </restriction> + * </complexContent> + * </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> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <attribute name="SearchString" use="required" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}WildCardSearchStringType" /> + * <attribute name="UserMakesUnique" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> + * <attribute name="ValuesAreXMLEntities" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> + * </restriction> + * </complexContent> + * </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> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <attribute name="Key" use="required" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}BoxIdentifierType" /> + * <attribute name="ValueIsXMLEntity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> + * </restriction> + * </complexContent> + * </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> + * <complexType name="InfoboxReadParamsBinaryFileType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <attribute name="ContentIsXMLEntity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> + * </restriction> + * </complexContent> + * </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> + * <complexType name="InfoboxReadRequestType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="InfoboxIdentifier" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}BoxIdentifierType"/> + * <choice> + * <element name="BinaryFileParameters" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}InfoboxReadParamsBinaryFileType"/> + * <element name="AssocArrayParameters" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}InfoboxReadParamsAssocArrayType"/> + * </choice> + * <element name="BoxSpecificParameters" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}AnyChildrenType" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </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> + * <complexType name="InfoboxReadResponseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice> + * <element name="BinaryFileData" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}Base64XMLContentType"/> + * <element name="AssocArrayData" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}InfoboxReadDataAssocArrayType"/> + * </choice> + * </restriction> + * </complexContent> + * </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> + * <complexType name="MetaInfoType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="MimeType" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}MimeTypeType"/> + * <element name="Description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> + * <any namespace='##other' maxOccurs="unbounded" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </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> + * <complexType name="NullOperationRequestType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * </restriction> + * </complexContent> + * </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> + * <complexType name="NullOperationResponseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * </restriction> + * </complexContent> + * </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> + * <complexType name="QualifiedBoxIdentifierType"> + * <simpleContent> + * <extension base="<http://www.buergerkarte.at/namespaces/securitylayer/1.2#>BoxIdentifierType"> + * <attribute name="Signature" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /> + * <attribute name="Encryption" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /> + * </extension> + * </simpleContent> + * </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> + * <simpleType name="TokenStatusType"> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * <enumeration value="ready"/> + * <enumeration value="removed"/> + * </restriction> + * </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> + * <complexType name="VerifyCMSSignatureRequestType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DateTime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/> + * <element name="CMSSignature" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> + * <element name="DataObject" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}CMSDataObjectOptionalMetaType" minOccurs="0"/> + * </sequence> + * <attribute name="Signatories" type="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}SignatoriesType" default="1" /> + * </restriction> + * </complexContent> + * </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> + * <complexType name="XMLContentType"> + * <complexContent> + * <extension base="{http://www.buergerkarte.at/namespaces/securitylayer/1.2#}AnyMixedChildrenType"> + * <attribute ref="{http://www.w3.org/XML/1998/namespace}space"/> + * </extension> + * </complexContent> + * </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 diff --git a/pdf-as-web/.gitignore b/pdf-as-web/.gitignore new file mode 100644 index 00000000..5e56e040 --- /dev/null +++ b/pdf-as-web/.gitignore @@ -0,0 +1 @@ +/bin diff --git a/pdf-as-web/build.gradle b/pdf-as-web/build.gradle new file mode 100644 index 00000000..c579ad70 --- /dev/null +++ b/pdf-as-web/build.gradle @@ -0,0 +1,36 @@ +apply plugin: 'java' +apply plugin: 'eclipse' +apply plugin: 'eclipse-wtp' +apply plugin: 'war' + +sourceCompatibility = 1.5 + +jar { + manifest { + attributes 'Implementation-Title': 'PDF-AS-WEB', 'Implementation-Version': version + } +} + +repositories { + mavenCentral() +} + +dependencies { + compile project (':pdf-as-lib') + compile project (':stamper:stmp-itext') + compile project (':signature-standards:sigs-pcks7detached') + compile group: 'commons-collections', name: 'commons-collections', version: '3.2' + testCompile group: 'junit', name: 'junit', version: '4.+' +} + +test { + systemProperties 'property': 'value' +} + +uploadArchives { + repositories { + flatDir { + dirs 'repos' + } + } +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PDFASSession.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PDFASSession.java new file mode 100644 index 00000000..9207847d --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PDFASSession.java @@ -0,0 +1,37 @@ +package at.gv.egiz.pdfas.web.helper; + +import java.io.Serializable; + +import at.gv.egiz.pdfas.lib.api.Configuration; +import at.gv.egiz.pdfas.lib.api.StatusRequest; +import at.gv.egiz.pdfas.lib.api.sign.SignParameter; + +public class PDFASSession implements Serializable { + + public static final String SESSION_TAG = "PDFASSession"; + + private StatusRequest statusRequest; + private SignParameter signParameter; + private Configuration config; + + public PDFASSession(SignParameter parameter) { + this.signParameter = parameter; + } + + public StatusRequest getStatusRequest() { + return statusRequest; + } + + public void setStatusRequest(StatusRequest statusRequest) { + this.statusRequest = statusRequest; + } + + public SignParameter getSignParameter() { + return signParameter; + } + + public void setSignParameter(SignParameter signParameter) { + this.signParameter = signParameter; + } + +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/package-info.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/package-info.java new file mode 100644 index 00000000..5f9a6b5d --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/package-info.java @@ -0,0 +1,8 @@ +/** + * + */ +/** + * @author afitzek + * + */ +package at.gv.egiz.pdfas.web.helper;
\ No newline at end of file diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/package-info.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/package-info.java new file mode 100644 index 00000000..937390f0 --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/package-info.java @@ -0,0 +1,8 @@ +/** + * + */ +/** + * @author afitzek + * + */ +package at.gv.egiz.pdfas.web;
\ No newline at end of file diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/DataURLServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/DataURLServlet.java new file mode 100644 index 00000000..93586c1a --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/DataURLServlet.java @@ -0,0 +1,37 @@ +package at.gv.egiz.pdfas.web.servlets; + +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * Servlet implementation class DataURL + */ +public class DataURLServlet extends HttpServlet { + private static final long serialVersionUID = 1L; + + /** + * @see HttpServlet#HttpServlet() + */ + public DataURLServlet() { + super(); + // TODO Auto-generated constructor stub + } + + /** + * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) + */ + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + } + + /** + * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) + */ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + } + +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ProvidePDFServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ProvidePDFServlet.java new file mode 100644 index 00000000..26f42840 --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ProvidePDFServlet.java @@ -0,0 +1,37 @@ +package at.gv.egiz.pdfas.web.servlets; + +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * Servlet implementation class ProvidePDF + */ +public class ProvidePDFServlet extends HttpServlet { + private static final long serialVersionUID = 1L; + + /** + * @see HttpServlet#HttpServlet() + */ + public ProvidePDFServlet() { + super(); + // TODO Auto-generated constructor stub + } + + /** + * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) + */ + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + } + + /** + * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) + */ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + } + +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SignServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SignServlet.java new file mode 100644 index 00000000..9ea6f354 --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SignServlet.java @@ -0,0 +1,69 @@ +package at.gv.egiz.pdfas.web.servlets; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import at.gv.egiz.pdfas.common.exceptions.PdfAsException; +import at.gv.egiz.pdfas.lib.api.ByteArrayDataSource; +import at.gv.egiz.pdfas.lib.api.Configuration; +import at.gv.egiz.pdfas.lib.api.PdfAs; +import at.gv.egiz.pdfas.lib.api.PdfAsFactory; +import at.gv.egiz.pdfas.lib.api.StatusRequest; +import at.gv.egiz.pdfas.lib.api.sign.SignParameter; + +/** + * Servlet implementation class Sign + */ +public class SignServlet extends HttpServlet { + private static final long serialVersionUID = 1L; + + /** + * Default constructor. + */ + public SignServlet() { + // TODO Auto-generated constructor stub + } + + /** + * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse + * response) + */ + protected void doGet(HttpServletRequest request, + HttpServletResponse response) throws ServletException, IOException { + response.getWriter() + .println( + "<html><head><title>Hello</title></head><body>BODY</body></html>"); + } + + /** + * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse + * response) + */ + protected void doPost(HttpServletRequest request, + HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + } + + protected void doSignature(HttpServletRequest request, + HttpServletResponse response, byte[] pdfData) { + try { + PdfAs pdfAs = PdfAsFactory.createPdfAs(null); + // TODO: Build configuration and Sign Parameters + Configuration config = pdfAs.getConfiguration(); + SignParameter signParameter = PdfAsFactory.createSignParameter( + config, new ByteArrayDataSource(pdfData)); + + + + StatusRequest statusRequest = pdfAs.startSign(signParameter); + + } catch (PdfAsException e) { + e.printStackTrace(); + } + } + +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VerifyServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VerifyServlet.java new file mode 100644 index 00000000..d4303a5f --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VerifyServlet.java @@ -0,0 +1,61 @@ +package at.gv.egiz.pdfas.web.servlets; + +import java.io.IOException; +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import at.gv.egiz.pdfas.lib.api.ByteArrayDataSource; +import at.gv.egiz.pdfas.lib.api.Configuration; +import at.gv.egiz.pdfas.lib.api.PdfAs; +import at.gv.egiz.pdfas.lib.api.PdfAsFactory; +import at.gv.egiz.pdfas.lib.api.verify.VerifyParameter; +import at.gv.egiz.pdfas.lib.api.verify.VerifyResult; + +/** + * Servlet implementation class VerifyServlet + */ +public class VerifyServlet extends HttpServlet { + private static final long serialVersionUID = 1L; + + /** + * @see HttpServlet#HttpServlet() + */ + public VerifyServlet() { + super(); + // TODO Auto-generated constructor stub + } + + /** + * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) + */ + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + } + + /** + * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) + */ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + } + + protected void doVerify(HttpServletRequest request, HttpServletResponse response, + byte[] pdfData, int whichSignature) { + PdfAs pdfAs = PdfAsFactory.createPdfAs(null); + Configuration conf = pdfAs.getConfiguration(); + VerifyParameter parameter = PdfAsFactory.createVerifyParameter(conf, new ByteArrayDataSource(pdfData)); + parameter.setWhichSignature(whichSignature); + + List<VerifyResult> results = pdfAs.verify(parameter); + + // Create HTML Snippet for each Verification Result + // Put these results into the web page + // Or create a JSON response with the verification results for automated processing + + } + +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/package-info.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/package-info.java new file mode 100644 index 00000000..6be370f0 --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/package-info.java @@ -0,0 +1,8 @@ +/** + * + */ +/** + * @author afitzek + * + */ +package at.gv.egiz.pdfas.web.servlets;
\ No newline at end of file diff --git a/pdf-as-web/src/main/webapp/WEB-INF/web.xml b/pdf-as-web/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 00000000..13149b7f --- /dev/null +++ b/pdf-as-web/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,101 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE web-app + PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" + "http://java.sun.com/dtd/web-app_2_3.dtd"> +<web-app> + <!-- General description of your web application --> + + <display-name>PDF-AS-WEB</display-name> + <description> + PDF-AS-WEB Application + </description> + + + <!-- Context initialization parameters that define shared String constants + used within your application, which can be customized by the system administrator + who is installing your application. The values actually assigned to these + parameters can be retrieved in a servlet or JSP page by calling: String value + = getServletContext().getInitParameter("name"); where "name" matches the + <param-name> element of one of these initialization parameters. You can define + any number of context initialization parameters, including zero. <context-param> + <param-name>webmaster</param-name> <param-value>myaddress@mycompany.com</param-value> + <description> The EMAIL address of the administrator to whom questions and + comments about this application should be addressed. </description> </context-param> --> + + <!-- Servlet definitions for the servlets that make up your web application, + including initialization parameters. With Tomcat, you can also send requests + to servlets not listed here with a request like this: http://localhost:8080/{context-path}/servlet/{classname} + but this usage is not guaranteed to be portable. It also makes relative references + to images and other resources required by your servlet more complicated, + so defining all of your servlets (and defining a mapping to them with a servlet-mapping + element) is recommended. Servlet initialization parameters can be retrieved + in a servlet or JSP page by calling: String value = getServletConfig().getInitParameter("name"); + where "name" matches the <param-name> element of one of these initialization + parameters. You can define any number of servlets, including zero. --> + + <servlet> + <servlet-name>SignServlet</servlet-name> + <description> + The Sign Servlet allows Users to Sign PDF Documents ... + </description> + <servlet-class>at.gv.egiz.pdfas.web.servlets.SignServlet</servlet-class> + <load-on-startup>5</load-on-startup> + </servlet> + <servlet> + <servlet-name>ProvidePDF</servlet-name> + <display-name>ProvidePDF</display-name> + <description></description> + <servlet-class>at.gv.egiz.pdfas.web.servlets.ProvidePDF</servlet-class> + </servlet> + <servlet> + <servlet-name>DataURL</servlet-name> + <display-name>DataURL</display-name> + <description></description> + <servlet-class>at.gv.egiz.pdfas.web.servlets.DataURL</servlet-class> + </servlet> + <servlet> + <servlet-name>VerifyServlet</servlet-name> + <display-name>VerifyServlet</display-name> + <description></description> + <servlet-class>at.gv.egiz.pdfas.web.servlets.VerifyServlet</servlet-class> + </servlet> + + <!-- Define mappings that are used by the servlet container to translate + a particular request URI (context-relative) to a particular servlet. The + examples below correspond to the servlet descriptions above. Thus, a request + URI like: http://localhost:8080/{contextpath}/graph will be mapped to the + "graph" servlet, while a request like: http://localhost:8080/{contextpath}/saveCustomer.do + will be mapped to the "controller" servlet. You may define any number of + servlet mappings, including zero. It is also legal to define more than one + mapping for the same servlet, if you wish to. --> + + <servlet-mapping> + <servlet-name>SignServlet</servlet-name> + <url-pattern>/Sign</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>ProvidePDF</servlet-name> + <url-pattern>/ProvidePDF</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>DataURL</servlet-name> + <url-pattern>/DataURL</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>VerifyServlet</servlet-name> + <url-pattern>/VerifyServlet</url-pattern> + </servlet-mapping> + + <!-- Define the default session timeout for your application, in minutes. + From a servlet or JSP page, you can modify the timeout for a particular session + dynamically by using HttpSession.getMaxInactiveInterval(). --> + + <session-config> + <session-timeout>30</session-timeout> <!-- 30 minutes --> + </session-config> + + <welcome-file-list> + <welcome-file>signstart.jsp</welcome-file> + </welcome-file-list> + +</web-app>
\ No newline at end of file diff --git a/pdf-as-web/src/main/webapp/signstart.jsp b/pdf-as-web/src/main/webapp/signstart.jsp new file mode 100644 index 00000000..596f04dc --- /dev/null +++ b/pdf-as-web/src/main/webapp/signstart.jsp @@ -0,0 +1,14 @@ +<html> +<head> +</head> +<body> +<h1>Sign PDF-Dokument</h1> +<form action="Sign" method="POST" enctype="multipart/form-data"> + + <input type="file" name="pdffile" /> + + <input type="submit" value="Card"> + <input type="submit" value="Handy"> +</form> +</body> +</html>
\ No newline at end of file diff --git a/pdf-as-web/src/main/webapp/verifystart.jsp b/pdf-as-web/src/main/webapp/verifystart.jsp new file mode 100644 index 00000000..cf8187bf --- /dev/null +++ b/pdf-as-web/src/main/webapp/verifystart.jsp @@ -0,0 +1,13 @@ +<html> +<head> +</head> +<body> +<h1>Verify PDF-Dokument</h1> +<form action="Sign" method="POST" enctype="multipart/form-data"> + + <input type="file" name="pdffile" /> + + <input type="submit" value="Verfiy"> +</form> +</body> +</html>
\ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 916848eb..ef6f5fcc 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,2 @@ -include "pdf-as-common", "stamper:stmp-itext", "signature-standards:sigs-pcks7detached", "signature-standards:sigs-pades", "pdf-as-lib", "pdf-as-cli", "pdf-as-legacy" +include "pdf-as-common", "stamper:stmp-itext", "signature-standards:sigs-pcks7detached", "signature-standards:sigs-pades", "pdf-as-lib", "pdf-as-cli", "pdf-as-legacy", "pdf-as-web" diff --git a/signature-standards/sigs-pades/src/main/java/at/gv/egiz/pdfas/sigs/pades/PAdESSigner.java b/signature-standards/sigs-pades/src/main/java/at/gv/egiz/pdfas/sigs/pades/PAdESSigner.java new file mode 100644 index 00000000..91237d98 --- /dev/null +++ b/signature-standards/sigs-pades/src/main/java/at/gv/egiz/pdfas/sigs/pades/PAdESSigner.java @@ -0,0 +1,72 @@ +package at.gv.egiz.pdfas.sigs.pades; + +import iaik.x509.X509Certificate; + +import java.io.IOException; +import java.security.cert.CertificateException; +import java.util.Iterator; + +import org.apache.pdfbox.exceptions.SignatureException; +import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; + +import at.gv.egiz.pdfas.common.exceptions.PdfAsException; +import at.gv.egiz.pdfas.lib.api.sign.IPlainSigner; +import at.gv.egiz.sl.CreateCMSSignatureRequestType; +import at.gv.egiz.sl.CreateCMSSignatureResponseType; +import at.gv.egiz.sl.InfoboxAssocArrayPairType; +import at.gv.egiz.sl.InfoboxReadRequestType; +import at.gv.egiz.sl.InfoboxReadResponseType; +import at.gv.egiz.sl.util.BKUSLConnector; +import at.gv.egiz.sl.util.ISLConnector; +import at.gv.egiz.sl.util.BaseSLConnector; + +public class PAdESSigner implements IPlainSigner { + + private ISLConnector connector; + + public PAdESSigner(ISLConnector connector) { + this.connector = connector; + } + + public X509Certificate getCertificate() throws PdfAsException { + X509Certificate certificate = null; + try { + InfoboxReadRequestType request = connector + .createInfoboxReadRequest(); + InfoboxReadResponseType response = connector + .sendInfoboxReadRequest(request); + + Iterator<InfoboxAssocArrayPairType> iterator = response + .getAssocArrayData().getPair().iterator(); + + while (iterator.hasNext()) { + InfoboxAssocArrayPairType pair = iterator.next(); + if (pair.getKey().equals("SecureSignatureKeypair")) { + byte[] certData = pair.getBase64Content(); + certificate = new X509Certificate(certData); + break; + } + } + } catch (CertificateException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return certificate; + } + + public byte[] sign(byte[] input, int[] byteRange) throws PdfAsException { + CreateCMSSignatureRequestType request = connector.createCMSRequest(input, byteRange); + CreateCMSSignatureResponseType response = connector.sendCMSRequest(request); + + return response.getCMSSignature(); + } + + public String getPDFSubFilter() { + return PDSignature.SUBFILTER_ETSI_CADES_DETACHED.getName(); + } + + public String getPDFFilter() { + return PDSignature.FILTER_ADOBE_PPKLITE.getName(); + } + +} diff --git a/signature-standards/sigs-pades/src/main/java/at/gv/egiz/pdfas/sigs/pades/package-info.java b/signature-standards/sigs-pades/src/main/java/at/gv/egiz/pdfas/sigs/pades/package-info.java new file mode 100644 index 00000000..5c74ace3 --- /dev/null +++ b/signature-standards/sigs-pades/src/main/java/at/gv/egiz/pdfas/sigs/pades/package-info.java @@ -0,0 +1,8 @@ +/** + * + */ +/** + * @author afitzek + * + */ +package at.gv.egiz.pdfas.sigs.pades;
\ No newline at end of file diff --git a/signature-standards/sigs-pcks7detached/src/main/java/at/gv/egiz/pdfas/sigs/pkcs7detached/PKCS7DetachedSigner.java b/signature-standards/sigs-pcks7detached/src/main/java/at/gv/egiz/pdfas/sigs/pkcs7detached/PKCS7DetachedSigner.java index 864a31d1..c6b12897 100644 --- a/signature-standards/sigs-pcks7detached/src/main/java/at/gv/egiz/pdfas/sigs/pkcs7detached/PKCS7DetachedSigner.java +++ b/signature-standards/sigs-pcks7detached/src/main/java/at/gv/egiz/pdfas/sigs/pkcs7detached/PKCS7DetachedSigner.java @@ -23,7 +23,9 @@ import org.apache.pdfbox.cos.COSName; import org.apache.pdfbox.exceptions.SignatureException; import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; +import at.gv.egiz.pdfas.common.exceptions.PDFIOException; import at.gv.egiz.pdfas.common.exceptions.PdfAsException; +import at.gv.egiz.pdfas.common.exceptions.PdfAsSignatureException; import at.gv.egiz.pdfas.lib.api.sign.IPlainSigner; public class PKCS7DetachedSigner implements IPlainSigner { @@ -49,7 +51,7 @@ public class PKCS7DetachedSigner implements IPlainSigner { return cert; } - public byte[] sign(byte[] input) throws SignatureException, IOException { + public byte[] sign(byte[] input, int[] byteRange) throws PdfAsException { try { SignedDataStream signed_data_stream = new SignedDataStream( new ByteArrayInputStream(input), SignedDataStream.EXPLICIT); @@ -71,9 +73,11 @@ public class PKCS7DetachedSigner implements IPlainSigner { signed_data_stream.writeTo(baos); return baos.toByteArray(); } catch (NoSuchAlgorithmException e) { - throw new SignatureException(e); + throw new PdfAsSignatureException("", e); } catch (X509ExtensionException e) { - throw new SignatureException(e); + throw new PdfAsSignatureException("", e); + } catch (IOException e) { + throw new PDFIOException("", e); } } |