summaryrefslogtreecommitdiff
path: root/pdf-over-signer
diff options
context:
space:
mode:
authorJakob Heher <jakob.heher@iaik.tugraz.at>2022-07-15 09:21:10 +0200
committerJakob Heher <jakob.heher@iaik.tugraz.at>2022-07-15 09:21:10 +0200
commit4197cda778a3731976d95740494b6af36af0056a (patch)
tree96f9a27d918fda945cc21f13b5ca4071619eaada /pdf-over-signer
parentef37420a1950ee6ed90f103f922238c175454f1a (diff)
downloadpdf-over-4197cda778a3731976d95740494b6af36af0056a.tar.gz
pdf-over-4197cda778a3731976d95740494b6af36af0056a.tar.bz2
pdf-over-4197cda778a3731976d95740494b6af36af0056a.zip
officially retire the pdf-as3 signer
Diffstat (limited to 'pdf-over-signer')
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/.classpath27
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/.project23
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.core.resources.prefs6
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.jdt.core.prefs97
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.jdt.ui.prefs3
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.m2e.core.prefs5
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/pom.xml26
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/ByteArrayPDFASDataSource.java67
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASHelper.java100
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSLRequest.java54
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSigner.java190
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSignerFactory.java31
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSigningState.java191
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PdfAsSignatureParameter.java593
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/exceptions/PDFASSLRequestException.java34
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/src/main/resources/img/fallbackPlaceholder.pngbin20948 -> 0 bytes
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/src/main/resources/img/sign_prev_de.pngbin13580 -> 0 bytes
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas3/src/main/resources/img/sign_prev_en.pngbin16968 -> 0 bytes
-rw-r--r--pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignatureParameter.java6
-rw-r--r--pdf-over-signer/pom.xml1
21 files changed, 2 insertions, 1456 deletions
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/.classpath b/pdf-over-signer/pdf-over-sigpdfas3/.classpath
deleted file mode 100644
index 8f5c07ea..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/.classpath
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java">
- <attributes>
- <attribute name="optional" value="true"/>
- <attribute name="maven.pomderived" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
- <attributes>
- <attribute name="maven.pomderived" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java">
- <attributes>
- <attribute name="optional" value="true"/>
- <attribute name="maven.pomderived" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
- <attributes>
- <attribute name="maven.pomderived" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/.project b/pdf-over-signer/pdf-over-sigpdfas3/.project
deleted file mode 100644
index a8f28341..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>pdf-over-sigpdfas</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.m2e.core.maven2Nature</nature>
- </natures>
-</projectDescription>
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.core.resources.prefs b/pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 29abf999..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding//src/main/resources=UTF-8
-encoding//src/test/java=UTF-8
-encoding//src/test/resources=UTF-8
-encoding/<project>=UTF-8
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.jdt.core.prefs b/pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index d598cb6b..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,97 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.6
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,LOW
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,NOTE
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.jdt.ui.prefs b/pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 05288cb4..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\n * Copyright 2012 by A-SIT, Secure Information Technology Center Austria\n *\n * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by\n * the European Commission - subsequent versions of the EUPL (the "Licence");\n * You may not use this work except in compliance with the Licence.\n * You may obtain a copy of the Licence at\:\n * http\://joinup.ec.europa.eu/software/page/eupl\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the Licence is distributed on an "AS IS" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the Licence for the specific language governing permissions and\n * limitations under the Licence.\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * \n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n// Imports\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="false" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">/**\n * SLF4J Logger instance\n **/\nprivate static final Logger log \= LoggerFactory.getLogger(${type_name}.class);\n\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.m2e.core.prefs b/pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index 62e91186..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Thu Aug 02 12:33:52 CEST 2012
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.mylyn.tasks.ui.prefs b/pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.mylyn.tasks.ui.prefs
deleted file mode 100644
index c6aa7359..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Fri Aug 03 18:56:31 CEST 2012
-eclipse.preferences.version=1
-project.repository.kind=jira
-project.repository.url=http\://jira.egovlabs.gv.at
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/pom.xml b/pdf-over-signer/pdf-over-sigpdfas3/pom.xml
deleted file mode 100644
index ab68cb54..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/pom.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <artifactId>pdf-over-signer</artifactId>
- <groupId>at.a-sit</groupId>
- <version>4.1.5-SNAPSHOT</version>
-<!-- <relativePath>..</relativePath> -->
- </parent>
- <artifactId>pdf-over-sigpdfas3</artifactId>
- <name>PDF-Over PDF-AS Signer</name>
- <properties>
- <pdfover-build.root-dir>${project.basedir}/../..</pdfover-build.root-dir>
- </properties>
- <dependencies>
- <dependency>
- <groupId>at.a-sit</groupId>
- <artifactId>pdf-over-signator</artifactId>
- <version>${project.parent.version}</version>
- </dependency>
- <dependency>
- <groupId>eu.europa.ec.joinup.egovlabs.pdf-as</groupId>
- <artifactId>pdf-as-lib</artifactId>
- <version>3.5.2</version>
- </dependency>
- </dependencies>
-</project>
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/ByteArrayPDFASDataSource.java b/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/ByteArrayPDFASDataSource.java
deleted file mode 100644
index b2f95f50..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/ByteArrayPDFASDataSource.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2012 by A-SIT, Secure Information Technology Center Austria
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://joinup.ec.europa.eu/software/page/eupl
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- */
-package at.asit.pdfover.signer.pdfas;
-
-//Imports
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-import at.gv.egiz.pdfas.api.io.DataSource;
-
-/**
- * PDF - AS Specific Data Source with byte array representation
- */
-public class ByteArrayPDFASDataSource implements DataSource {
-
- /**
- * Internal data byte array
- */
- private byte[] data;
-
- /**
- * Default constructor
- * @param data The byte[] to be used
- */
- public ByteArrayPDFASDataSource(byte[] data) {
- this.data = data;
- }
-
- @Override
- public InputStream createInputStream() {
- return new ByteArrayInputStream(this.data);
- }
-
- @Override
- public int getLength() {
- return this.data.length;
- }
-
- @Override
- public byte[] getAsByteArray() {
- return this.data;
- }
-
- @Override
- public String getMimeType() {
- return "application/pdf";
- }
-
- @Override
- public String getCharacterEncoding() {
- return "UTF8";
- }
-
-} \ No newline at end of file
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASHelper.java b/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASHelper.java
deleted file mode 100644
index bcf23b2d..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASHelper.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright 2012 by A-SIT, Secure Information Technology Center Austria
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://joinup.ec.europa.eu/software/page/eupl
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- */
-package at.asit.pdfover.signer.pdfas;
-
-//Imports
-import java.io.File;
-
-import at.asit.pdfover.signator.SignatureException;
-import at.gv.egiz.pdfas.api.PdfAs;
-import at.gv.egiz.pdfas.api.exceptions.PdfAsException;
-import at.gv.egiz.pdfas.api.internal.PdfAsInternal;
-
-/**
- * Encapsulates PDF AS API Object to need just one initialization
- */
-public class PDFASHelper {
-
- /**
- * PDF AS Object
- */
- private static PdfAs pdfAs = null;
-
- /**
- * Internal Pdf AS Object
- */
- private static PdfAsInternal pdfAsInternal = null;
-
- /**
- * Creates PDF AS Object
- * @return
- * @throws PdfAsException
- */
- private static PdfAs createPdfAs() throws PdfAsException {
- File directory = new File (".");
- System.setProperty("pdf-as.work-dir", getWorkDir());
- return new at.gv.egiz.pdfas.impl.api.PdfAsObject();
- }
-
- /**
- * Provides the working directory
- * @return the working directory
- */
- public static String getWorkDir() {
- return System.getProperty("user.home") + "/.pdf-over";
- }
-
- /**
- * Creates a PDF-AS Internal object
- * @return the PDF-AS Internal object
- * @throws PdfAsException
- */
- private static PdfAsInternal createPdfAsInternal() throws PdfAsException {
- return new at.gv.egiz.pdfas.impl.api.internal.PdfAsInternalObject();
- }
-
- /**
- * Gets PDF-AS Object
- * @return the PDF-AS Object
- * @throws SignatureException
- */
- public static synchronized PdfAs getPdfAs() throws SignatureException {
- if (pdfAs == null) {
- try {
- pdfAs = createPdfAs();
- } catch(PdfAsException e) {
- throw new SignatureException(e);
- }
- }
- return pdfAs;
- }
-
- /**
- * Gets PDF-AS Internal object
- * @return the PDF-AS Internal object
- * @throws SignatureException
- */
- public static synchronized PdfAsInternal getPdfAsInternal() throws SignatureException {
- if(pdfAsInternal == null) {
- try {
- pdfAsInternal = createPdfAsInternal();
- } catch(PdfAsException e) {
- throw new SignatureException(e);
- }
- }
- return pdfAsInternal;
- }
-}
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSLRequest.java b/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSLRequest.java
deleted file mode 100644
index b51939a5..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSLRequest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2012 by A-SIT, Secure Information Technology Center Austria
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://joinup.ec.europa.eu/software/page/eupl
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- */
-package at.asit.pdfover.signer.pdfas;
-
-// Imports
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import at.asit.pdfover.signator.ByteArrayDocumentSource;
-import at.asit.pdfover.signator.SLRequest;
-import at.asit.pdfover.signer.pdfas.exceptions.PDFASSLRequestException;
-
-/**
- * PDF - AS Security Layer Request implementation
- */
-public class PDFASSLRequest extends SLRequest {
-
- /**
- * SLF4J Logger instance
- **/
- private static final Logger log = LoggerFactory.getLogger(PDFASSLRequest.class);
-
- /**
- * Default constructor
- * @param slRequest
- * @param signData
- * @throws PDFASSLRequestException
- */
- public PDFASSLRequest(String slRequest, byte[] signData) throws PDFASSLRequestException {
- if(!slRequest.contains(PDFASSigner.LOC_REF)) {
- log.error("PDF-AS SL request doesn't contain " + PDFASSigner.LOC_REF);
- log.debug("Request: " + slRequest);
- throw new PDFASSLRequestException("PDF-AS SL request doesn't contain " + PDFASSigner.LOC_REF);
- }
-
- // Modifing SL Request ...
- setRequest(slRequest.replace(PDFASSigner.LOC_REF, /*SLRequest.DATAOBJECT_STRING*/""));
-
- setSignatureData(new ByteArrayDocumentSource(signData));
- }
-}
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSigner.java b/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSigner.java
deleted file mode 100644
index f419971b..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSigner.java
+++ /dev/null
@@ -1,190 +0,0 @@
-package at.asit.pdfover.signer.pdfas;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import at.asit.pdfover.signator.BKUs;
-import at.asit.pdfover.signator.ByteArrayDocumentSource;
-import at.asit.pdfover.signator.SLResponse;
-import at.asit.pdfover.signator.SignResult;
-import at.asit.pdfover.signator.SignResultImpl;
-import at.asit.pdfover.signator.SignatureException;
-import at.asit.pdfover.signator.SignatureParameter;
-import at.asit.pdfover.signator.SignaturePosition;
-import at.asit.pdfover.signator.Signer;
-import at.asit.pdfover.signator.SigningState;
-import at.asit.pdfover.signer.pdfas.exceptions.PDFASSLRequestException;
-import at.gv.egiz.pdfas.api.PdfAs;
-import at.gv.egiz.pdfas.api.commons.Constants;
-import at.gv.egiz.pdfas.api.exceptions.PdfAsException;
-import at.gv.egiz.pdfas.api.internal.LocalBKUParams;
-import at.gv.egiz.pdfas.api.internal.PdfAsInternal;
-import at.gv.egiz.pdfas.api.sign.SignParameters;
-import at.gv.egiz.pdfas.api.sign.SignatureDetailInformation;
-import at.gv.egiz.pdfas.io.ByteArrayDataSink;
-
-/**
- * PDF AS Signer Implementation
- */
-public class PDFASSigner implements Signer {
-
- /**
- * SLF4J Logger instance
- **/
- static final Logger log = LoggerFactory.getLogger(PDFASSigner.class);
-
- /**
- * The template URL
- */
- protected static final String URL_TEMPLATE = "http://pdfover.4.gv.at/template";
-
- /**
- * Location reference string
- */
- protected static final String LOC_REF = "<sl:LocRefContent>" + URL_TEMPLATE
- + "</sl:LocRefContent>";
-
- @Override
- public SigningState prepare(SignatureParameter parameter)
- throws SignatureException {
- try {
- PdfAsSignatureParameter sign_para = null;
-
- if (PdfAsSignatureParameter.class.isInstance(parameter)) {
- sign_para = PdfAsSignatureParameter.class.cast(parameter);
- }
-
- if (sign_para == null) {
- throw new SignatureException("Incorrect SignatureParameter!");
- }
-
- PdfAs pdfas = PDFASHelper.getPdfAs();
-
- PDFASSigningState state = new PDFASSigningState();
-
- SignParameters params = new SignParameters();
- params.setSignaturePositioning(sign_para.getPDFASPositioning());
-
- if (parameter.getSignatureDevice() == BKUs.LOCAL) {
- params.setSignatureDevice(Constants.SIGNATURE_DEVICE_BKU);
- } else if (parameter.getSignatureDevice() == BKUs.MOBILE) {
- params.setSignatureDevice(Constants.SIGNATURE_DEVICE_MOBILE);
- // params.setSignatureDevice(Constants.SIGNATURE_DEVICE_MOBILETEST);
- }
- params.setSignatureType(Constants.SIGNATURE_TYPE_BINARY);
-
- params.setSignatureProfileId(sign_para.getSignatureProfileID());
-
- params.setOutput(new ByteArrayDataSink());
- if (parameter.getEmblem() != null) {
- params.setProfileOverrideValue("SIG_LABEL", parameter
- .getEmblem().getFileName());
- }
-
- if(parameter.getProperty("SIG_NOTE") != null) {
- params.setProfileOverrideValue("SIG_NOTE", parameter.getProperty("SIG_NOTE"));
- }
-
- // Prepare Output sink
- state.setOutput(new ByteArrayDataSink());
- params.setOutput(state.getOutput());
-
- params.setDocument(sign_para.getPDFASDataSource());
-
- state.setSignParameters(params);
-
- PdfAsInternal pdfasInternal = PDFASHelper.getPdfAsInternal();
-
- // Prepares the document
- SignatureDetailInformation sdi = pdfas.prepareSign(params);
-
- state.setSignatureDetailInformation(sdi);
-
- // Retrieve the SL Request
- String slRequest = pdfasInternal.prepareLocalSignRequest(params,
- false, URL_TEMPLATE, sdi);
-
- at.gv.egiz.pdfas.api.io.DataSource sig_data = sdi
- .getSignatureData();
-
- PDFASSLRequest request = new PDFASSLRequest(slRequest,
- sig_data.getAsByteArray());
-
- state.setSignatureRequest(request);
-
- return state;
- } catch (PDFASSLRequestException e) {
- throw new SignatureException(e);
- } catch (PdfAsException e) {
- throw new SignatureException(e);
- } catch (Throwable t) {
- throw new SignatureException(t);
- }
- }
-
- @Override
- public SignResult sign(SigningState state) throws SignatureException {
- try {
- PDFASSigningState sstate = null;
-
- if (PDFASSigningState.class.isInstance(state)) {
- sstate = PDFASSigningState.class.cast(state);
- }
-
- if (sstate == null) {
- throw new SignatureException("Incorrect SigningState!");
- }
-
- // Retrieve objects
- PdfAs pdfas = PDFASHelper.getPdfAs();
-
- PdfAsInternal pdfasInternal = PDFASHelper.getPdfAsInternal();
-
- SignParameters params = sstate.getSignParameters();
-
- SignatureDetailInformation sdi = sstate
- .getSignatureDetailInformation();
-
- SLResponse slResponse = sstate.getSignatureResponse();
-
- LocalBKUParams bkuParams = new LocalBKUParams(
- slResponse.getServer(), slResponse.getUserAgent(),
- slResponse.getSignaturLayout());
-
- // Perform signature
- at.gv.egiz.pdfas.api.sign.SignResult signResult = pdfasInternal
- .finishLocalSign(pdfas, params, sdi, bkuParams, false,
- slResponse.getSLRespone());
-
- // Preparing Result Response
- SignResultImpl result = new SignResultImpl();
-
- // Set Signer Certificate
- result.setSignerCertificate(signResult.getSignerCertificate());
- at.gv.egiz.pdfas.api.sign.pos.SignaturePosition pdfasPos = signResult
- .getSignaturePosition();
-
- // Set Signature position
- SignaturePosition pos = new SignaturePosition(pdfasPos.getX(),
- pdfasPos.getY(), pdfasPos.getPage());
- /*
- * pos.SetAuto(sstate.getPDFAsSignatureParameter()
- * .getSignaturePosition().useAutoPositioning());
- */
- result.setSignaturePosition(pos);
-
- // Set signed Document
- result.setSignedDocument(new ByteArrayDocumentSource(
- ((ByteArrayDataSink) sstate.getOutput()).getData()));
-
- return result;
- } catch (PdfAsException e) {
- throw new SignatureException(e);
- }
- }
-
- @Override
- public SignatureParameter newParameter() {
- return new PdfAsSignatureParameter();
- }
-}
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSignerFactory.java b/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSignerFactory.java
deleted file mode 100644
index 68a29341..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSignerFactory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2012 by A-SIT, Secure Information Technology Center Austria
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://joinup.ec.europa.eu/software/page/eupl
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- */
-package at.asit.pdfover.signer.pdfas;
-
-//Imports
-import at.asit.pdfover.signator.Signer;
-import at.asit.pdfover.signator.SignerFactory;
-
-/**
- * Factory class for PDF-AS Signer
- */
-public class PDFASSignerFactory extends SignerFactory {
-
- @Override
- public Signer createSigner() {
- return new PDFASSigner();
- }
-}
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSigningState.java b/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSigningState.java
deleted file mode 100644
index 7a871e30..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSigningState.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright 2012 by A-SIT, Secure Information Technology Center Austria
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://joinup.ec.europa.eu/software/page/eupl
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- */
-package at.asit.pdfover.signer.pdfas;
-
-//Imports
-import at.asit.pdfover.signator.BkuSlConnector;
-import at.asit.pdfover.signator.SLRequest;
-import at.asit.pdfover.signator.SLResponse;
-import at.asit.pdfover.signator.SignatureException;
-import at.asit.pdfover.signator.SigningState;
-import at.gv.egiz.pdfas.api.io.DataSink;
-import at.gv.egiz.pdfas.api.sign.SignatureDetailInformation;
-
-/**
- * Signing State for PDFAS Wrapper
- */
-public class PDFASSigningState implements SigningState {
-
- /**
- * The Signature Layer request
- */
- protected SLRequest slrequest;
-
- /**
- * The PDF AS DataSink
- */
- protected DataSink output;
-
- /**
- * Gets the DataSink
- * @return the datasink
- */
- public DataSink getOutput() {
- return this.output;
- }
-
- /**
- * Sets the datasing
- * @param output the pdf as datasink
- */
- public void setOutput(DataSink output) {
- this.output = output;
- }
-
- /**
- * The Signature Layer response
- */
- protected SLResponse slresponse;
-
- @Override
- public SLRequest getSignatureRequest() {
- return this.slrequest;
- }
-
- @Override
- public void setSignatureResponse(SLResponse response) {
- this.slresponse = response;
- }
-
- /**
- * Sets the SL Request
- * @param request The SL Request
- */
- public void setSignatureRequest(SLRequest request) {
- this.slrequest = request;
- }
-
- /**
- * Gets the SL Response
- * @return The SL Repsonse object
- */
- public SLResponse getSignatureResponse() {
- return this.slresponse;
- }
-
- /* (non-Javadoc)
- * @see at.asit.pdfover.signator.SigningState#hasSignatureResponse()
- */
- @Override
- public boolean hasSignatureResponse() {
- return this.getSignatureResponse() != null;
- }
-
- // ----------------------------------------
- // PDF AS Specific stuff
- // ----------------------------------------
-
- /**
- * signature detail information
- */
- protected SignatureDetailInformation signatureDetailInformation;
-
- /**
- * PDF - AS sign parameters
- */
- protected at.gv.egiz.pdfas.api.sign.SignParameters signParameters;
-
- /**
- * Signature parameters
- */
- protected PdfAsSignatureParameter pdfAsSignatureParameter;
-
- /**
- * Gets PDF - AS Signature Parameters
- * @return PdfAsSignatureParameter
- */
- public PdfAsSignatureParameter getPdfAsSignatureParameter() {
- return this.pdfAsSignatureParameter;
- }
-
- /**
- * Sets PDF - AS Signature Parameters
- * @param pdfAsSignatureParameter
- */
- public void setPdfAsSignatureParameter(
- PdfAsSignatureParameter pdfAsSignatureParameter) {
- this.pdfAsSignatureParameter = pdfAsSignatureParameter;
- }
-
- /**
- * Get Sign Parameters
- * @return SignParameters
- */
- public at.gv.egiz.pdfas.api.sign.SignParameters getSignParameters() {
- return this.signParameters;
- }
-
- /**
- * Sets sign Parameter
- * @param signParameters
- */
- public void setSignParameters(
- at.gv.egiz.pdfas.api.sign.SignParameters signParameters) {
- this.signParameters = signParameters;
- }
-
- /**
- * Gets the signature detail information
- * @return SignatureDetailInformation
- */
- public SignatureDetailInformation getSignatureDetailInformation() {
- return this.signatureDetailInformation;
- }
-
- /**
- * Sets the SignatureDetailInformation
- * @param signatureDetailInformation
- */
- public void setSignatureDetailInformation(
- SignatureDetailInformation signatureDetailInformation) {
- this.signatureDetailInformation = signatureDetailInformation;
- }
-
- /* (non-Javadoc)
- * @see at.asit.pdfover.signator.SigningState#setKSSigner(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
- */
- @Override
- public void setKSSigner(String file, String alias, String kspassword,
- String keypassword, String type) throws SignatureException {
- // Not implemented
- }
-
- /* (non-Javadoc)
- * @see at.asit.pdfover.signator.SigningState#setBKUConnector(at.asit.pdfover.signator.BkuSlConnector)
- */
- @Override
- public void setBKUConnector(BkuSlConnector connector) {
- // Nothing to do here
- }
-
- /* (non-Javadoc)
- * @see at.asit.pdfover.signator.SigningState#setUseBase64Request(boolean)
- */
- @Override
- public void setUseBase64Request(boolean useBase64Request) {
- // Nothing to do here
- }
-}
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PdfAsSignatureParameter.java b/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PdfAsSignatureParameter.java
deleted file mode 100644
index 9a8b4250..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PdfAsSignatureParameter.java
+++ /dev/null
@@ -1,593 +0,0 @@
-/*
- * Copyright 2012 by A-SIT, Secure Information Technology Center Austria
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://joinup.ec.europa.eu/software/page/eupl
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- */
-package at.asit.pdfover.signer.pdfas;
-
-//Imports
-import java.awt.Image;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Locale;
-
-import javax.imageio.ImageIO;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import at.asit.pdfover.signator.SignatureDimension;
-import at.asit.pdfover.signator.SignatureParameter;
-import at.asit.pdfover.signator.SignaturePosition;
-import at.gv.egiz.pdfas.api.io.DataSource;
-import at.gv.egiz.pdfas.api.sign.pos.SignaturePositioning;
-import at.knowcenter.wag.egov.egiz.exceptions.PDFDocumentException;
-
-/**
- * Implementation of SignatureParameter specific for PDF - AS Library
- */
-public class PdfAsSignatureParameter extends SignatureParameter {
-
- /**
- * SLF4J Logger instance
- **/
- static final Logger log = LoggerFactory
- .getLogger(PdfAsSignatureParameter.class);
-
- /** The profile ID for the german signature block */
- private static final String PROFILE_ID_DE = "SIGNATURBLOCK_SMALL_DE";
- /** The profile ID for the german signature block if a signature note is set */
- private static final String PROFILE_ID_DE_NOTE = "SIGNATURBLOCK_SMALL_DE_NOTE";
- /** The profile ID for the english signature block */
- private static final String PROFILE_ID_EN = "SIGNATURBLOCK_SMALL_EN";
- /** The profile ID for the english signature block if a signature note is set */
- private static final String PROFILE_ID_EN_NOTE = "SIGNATURBLOCK_SMALL_EN_NOTE";
-
- private HashMap<String, String> genericProperties = new HashMap<String, String>();
-
-// private static final int PLACEHOLDER_SCALE = 4;
-//
-// private int height = -1;
-//
-// private float perUnitHeight = 0;
-
- /**
- * Gets the PDFAS Positioning
- *
- * @return SignaturePositioning
- * @throws PDFDocumentException
- */
- public SignaturePositioning getPDFASPositioning()
- throws PDFDocumentException {
- SignaturePosition position = this.getSignaturePosition();
-
- SignaturePositioning positioning = null;
- if (!position.useAutoPositioning()) {
- if (position.getPage() < 1) {
- positioning = new SignaturePositioning(String.format(
- (Locale) null,
- "p:new;x:%f;y:%f;w:276", position.getX(),
- position.getY()));
- } else {
- positioning = new SignaturePositioning(String.format(
- (Locale) null,
- "p:%d;x:%f;y:%f;w:276", position.getPage(), position.getX(),
- position.getY()));
- }
- } else {
- positioning = new SignaturePositioning("p:auto;x:auto;y:auto;w:276");
- }
-
- return positioning;
- }
-
- /**
- * Gets PDF - AS specific data source
- *
- * @return ByteArrayPDFASDataSource
- */
- public DataSource getPDFASDataSource() {
- return new ByteArrayPDFASDataSource(this.getInputDocument()
- .getByteArray());
- }
-
- @Override
- public void setProperty(String key, String value) {
- this.genericProperties.put(key, value);
-// this.height = -1;
- }
-
- @Override
- public String getProperty(String key) {
- return this.genericProperties.get(key);
- }
-
- @Override
- public SignatureDimension getPlaceholderDimension() {
- // return new SignatureDimension(487, 206);
- return new SignatureDimension(276, 126);
- //return new SignatureDimension(getWidth(), getHeight());
- }
-
-// private static int getWidth() {
-// return 276;
-// }
-//
-// private int getHeight() {
-// if (this.height < 0)
-// {
-// BufferedImage timage = new BufferedImage(1, 1,
-// BufferedImage.TYPE_INT_RGB);
-// try {
-// this.height = (int) (getTableHeight(getSignatureTable(), null, getWidth() * PLACEHOLDER_SCALE, timage.getGraphics()) / PLACEHOLDER_SCALE);
-// } catch (SignatureException e) {
-// log.error("getTableHeight failed ...", e);
-// } catch (SignatureTypesException e) {
-// log.error("getTableHeight failed ...", e);
-// }
-// timage.flush();
-// }
-// if (this.height < 0)
-// return 95;
-//
-// return this.height;
-// }
-
- /**
- * Get the Signature Profile ID for this set of parameters
- * @return the Signature Profile ID
- */
- public String getSignatureProfileID() {
- String lang = getSignatureLanguage();
- boolean useNote = (getProperty("SIG_NOTE") != null);
-
- if (lang != null && lang.equals("en"))
- return useNote ? PROFILE_ID_EN_NOTE : PROFILE_ID_EN;
-
- return useNote ? PROFILE_ID_DE_NOTE : PROFILE_ID_DE;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see at.asit.pdfover.signator.SignatureParameter#getPlaceholder()
- */
- @Override
- public Image getPlaceholder() {
-
- try {
- Image logo = null;
- try {
- if (this.getEmblem() != null
- && this.getEmblem().getFileName() != null
- && new File(this.getEmblem().getFileName())
- .exists()) {
- logo = ImageIO.read(new File(this.getEmblem()
- .getFileName()));
-
- }
- }
- catch(Exception e) {
- log.error("Failed to get emblem ...", e);
- }
-
- Image img = null;
- String lang = getSignatureLanguage();
- if (lang != null && lang.equals("en")) {
- img = ImageIO.read(PdfAsSignatureParameter.class
- .getResourceAsStream("/img/sign_prev_en.png"));
-
- if(logo != null) {
- logo = logo.getScaledInstance(141, 140,
- Image.SCALE_SMOOTH);
- img.getGraphics().drawImage(logo, 6, 115, null);
- }
-
- } else {
- img = ImageIO.read(PdfAsSignatureParameter.class
- .getResourceAsStream("/img/sign_prev_de.png"));
-
- if(logo != null) {
- logo = logo.getScaledInstance(141, 140,
- Image.SCALE_SMOOTH);
- img.getGraphics().drawImage(logo, 6, 115, null);
- }
- }
- return img;
- } catch (IOException e) {
- return new BufferedImage(getPlaceholderDimension().getWidth(),
- getPlaceholderDimension().getHeight(),
- BufferedImage.TYPE_INT_RGB);
- }
-
-// Try to render signature block - disabled for now (just use images)
-//
-// try {
-// PDFASHelper.getPdfAs();
-//
-//
-// float width = getPlaceholderDimension().getWidth() * PLACEHOLDER_SCALE;
-// float height = getPlaceholderDimension().getHeight() * PLACEHOLDER_SCALE;
-//
-// Table table = this.getSignatureTable();
-//
-// //log.info(table.toString());
-//
-// BufferedImage timage = new BufferedImage(1, 1,
-// BufferedImage.TYPE_INT_RGB);
-// float[] heights = this.getTableHeights(table, table.getStyle(),
-// height, (int)width, timage.getGraphics());
-// timage.flush();
-// float mheight = 0;
-//
-// for(int i = 0; i < heights.length; i++) {
-// mheight += heights[i];
-// }
-//
-// this.height = (int) (mheight / PLACEHOLDER_SCALE);
-//
-// log.info("Width: " + width + " Height: " + height + " HShould: " + mheight);
-// BufferedImage image = new BufferedImage((int) width, (int) mheight,
-// BufferedImage.TYPE_INT_RGB);
-// Graphics g = image.getGraphics();
-//
-// g.setColor(table.getStyle().getBgColor());
-// g.fillRect(0, 0, (int) width, (int) mheight);
-//
-// g.setColor(Color.black);
-// g.drawRect(0, 0, (int) width, (int) mheight);
-//
-// this.drawTable(0, 0, (int) width, (int) mheight, table,
-// table.getStyle(), g, heights);
-//
-// g.dispose();
-//
-// //save(image, "png");
-//
-// return image;
-// } catch (Exception ex) {
-// try {
-// return ImageIO.read(PdfAsSignatureParameter.class
-// .getResourceAsStream("/img/fallbackPlaceholder.png"));
-// } catch (IOException e) {
-// return new BufferedImage(getPlaceholderDimension().getWidth(),
-// getPlaceholderDimension().getHeight(),
-// BufferedImage.TYPE_INT_RGB);
-// }
-// }
- }
-
-// private Table getSignatureTable() throws SignatureException, SignatureTypesException {
-// SignatureObject sign_obj = at.knowcenter.wag.egov.egiz.PdfAS
-// .createSignatureObjectFromType(getSignatureProfileID());
-//
-// sign_obj.fillValues(' ', true, false);
-// sign_obj.setKZ(BinarySignator_1_1_0.MY_ID);
-// return sign_obj.getAbstractTable();
-// }
-//
-// /**
-// * used for debugging ..
-// *
-// * @param image
-// * @param ext
-// */
-// @SuppressWarnings("unused")
-// @Deprecated
-// private static void save(BufferedImage image, String ext) {
-// String fileName = "savingAnImage";
-// File file = new File(fileName + "." + ext);
-// try {
-// ImageIO.write(image, ext, file); // ignore returned boolean
-// log.debug("Saved as: " + file.getAbsolutePath());
-// } catch (IOException e) {
-// System.out.println("Write error for " + file.getPath() + ": "
-// + e.getMessage());
-// }
-// }
-//
-// @SuppressWarnings("rawtypes")
-// private int drawTable(int xoff, int yoff, int width, int height,
-// Table table, Style parentstyle, Graphics g, float[] heights) {
-// Style style = parentstyle;
-// if (table.getStyle() != null) {
-// style = table.getStyle();
-// }
-//
-// log.debug(String.format((Locale) null, "Table@ %dx%d", xoff, yoff));
-//
-// Font oldFont = g.getFont();
-// Font font = PdfAsSignatureParameter.getFont(style);
-// g.setFont(font);
-// // draw background
-// // graphic.setColor(style.getBgColor());
-// // graphic.fillRect(xoff, yoff, width, height);
-//
-// g.setColor(Color.black);
-//
-// // draw border
-// if (style.getBorder() > 0) {
-// g.setColor(Color.black);
-// g.drawRect(xoff, yoff, width, height);
-// }
-// float[] colWidths = table.getColsRelativeWith();
-// float sum = 0;
-//
-// for (int i = 0; i < colWidths.length; i++) {
-// sum += colWidths[i];
-// }
-//
-// float perUnit = width / sum;
-//
-// int padding = (int) (style.getPadding() * this.perUnitHeight * PLACEHOLDER_SCALE);
-//
-// ArrayList rows = table.getRows();
-// float roffset = 0;
-// for (int rowidx = 0; rowidx < rows.size(); rowidx++) {
-// ArrayList cols = (ArrayList) rows.get(rowidx);
-// int rsize = (int) heights[rowidx];
-// for (int j = 0; j < cols.size(); j++) {
-// Entry entry = (Entry) cols.get(j);
-// float offset = 0;
-// for (int k = 0; k < j; k++) {
-// offset += colWidths[k] * perUnit;
-// }
-// if (entry.getType() == 0 || entry.getType() == 1) {
-// // Text
-// g.drawRect((int) (xoff + offset),
-// (int) (yoff + roffset),
-// (int) (colWidths[j] * perUnit), rsize);
-//
-// String[] lines = getLines(entry.getValue().toString(), (int)(colWidths[j] * perUnit), g.getFontMetrics(), (int) style.getPadding() * PLACEHOLDER_SCALE);
-//
-// for(int i = 0; i < lines.length; i++) {
-// g.drawString(lines[i].toString(), (int) (xoff
-// + offset + padding / PLACEHOLDER_SCALE), (int) (yoff + padding
-// + roffset + (i + 1) * g.getFontMetrics().getHeight() * this.perUnitHeight));
-// }
-// //g.drawString(entry.getValue().toString(), (int) (xoff
-// // + offset + padding / PLACEHOLDER_SCALE), (int) (yoff + padding
-// // + roffset + font.getSize() * this.perUnitHeight));
-// } else if (entry.getType() == 2) {
-// // Image ...
-// BufferedImage image;
-// try {
-// if (this.getEmblem() != null
-// && this.getEmblem().getFileName() != null
-// && new File(this.getEmblem().getFileName())
-// .exists()) {
-// image = ImageIO.read(new File(this.getEmblem()
-// .getFileName()));
-// } else {
-// image = ImageIO.read(new File(PDFASHelper
-// .getWorkDir()
-// + File.separator
-// + entry.getValue().toString()));
-// }
-// int imgWidth = 30 * PLACEHOLDER_SCALE;
-// int imgHeight = 30 * PLACEHOLDER_SCALE;
-// Image img = image.getScaledInstance(imgWidth, imgHeight,
-// Image.SCALE_SMOOTH);
-//
-// g.drawImage(
-// img,
-// (int) (xoff + offset + padding + (((colWidths[j] * perUnit) - imgWidth - 2* padding)) / 2),
-// (int) (yoff + roffset + padding + ((rsize - imgHeight - 2* padding) / 2)),
-// null);
-// } catch (IOException e) {
-// log.warn("Failed to paint emblem to placeholder image");
-// }
-// } else {
-// // Table
-//
-// int colWidth = (int) (colWidths[j] * perUnit);
-//
-// float[] cheights = this.getTableHeights(
-// (Table) entry.getValue(), style, rsize, colWidth, g);
-//
-// this.drawTable(
-// (int) (xoff + offset),
-// (int) (yoff + roffset),
-// (int) (colWidths[j] * perUnit),
-// // (int)this.getTableHeight((Table)
-// // entry.getValue(), style),
-// rsize, (Table) entry.getValue(), style, g,
-// cheights);
-// /*
-// * if (rsize < tsize) { rsize = tsize; }
-// */
-// }
-// }
-// roffset += rsize;
-// }
-//
-// g.setFont(oldFont);
-//
-// return (int) roffset;
-// }
-//
-// private static Font getFont(Style style) {
-// String def = "COURIER-NORMAL-8";
-// String fontString = style.getFont();
-// String[] font_arr = fontString.split(",");
-// if (font_arr.length != 3) {
-// return Font.decode(def);
-// }
-// Font font = Font.decode(String.format("%s-%s-%s", font_arr[0], font_arr[2],
-// font_arr[1]));
-// return font.deriveFont((float) font.getSize() * PLACEHOLDER_SCALE);
-// }
-//
-// /**
-// * extracts the value font
-// *
-// * @param style
-// * the table style
-// * @return the value font
-// */
-// @SuppressWarnings("unused")
-// private static Font getValueFont(Style style) {
-// String def = "COURIER-NORMAL-8";
-// String fontString = style.getValueFont();
-// String[] font_arr = fontString.split(",");
-// if (font_arr.length != 3) {
-// return Font.decode(def);
-// }
-// Font font = Font.decode(String.format("%s-%s-%s", font_arr[0], font_arr[2],
-// font_arr[1]));
-// return font.deriveFont((float) font.getSize() * PLACEHOLDER_SCALE);
-// }
-//
-// private static String[] getLines(String text, int width, FontMetrics fmetric, int padding) {
-// String currentline = text;
-// int averageCharWi = fmetric.charWidth('c');
-//
-// int max_line_chars = (width - padding) / (averageCharWi);
-// ArrayList<String> lines = new ArrayList<String>();
-//
-// while(currentline.length() > max_line_chars) {
-// int cutidx = currentline.substring(0, max_line_chars).lastIndexOf(' ');
-// if(cutidx < 1) {
-// cutidx = max_line_chars - 1;
-// } else {
-// cutidx++;
-// }
-// String tmpLine = currentline.substring(0, cutidx);
-// lines.add(tmpLine);
-// currentline = currentline.substring(cutidx);
-// }
-// lines.add(currentline);
-//
-//
-// String[] arrline = new String[lines.size()];
-// for(int i = 0; i < lines.size(); i++) {
-// arrline[i] = lines.get(i);
-// }
-//
-// //log.debug(text + " needs " + lines.size() + " lines");
-//
-// return arrline;
-// }
-//
-// @SuppressWarnings("rawtypes")
-// private float[] getTableHeights(Table table, Style parentstyle, float height, int width, Graphics g) {
-// ArrayList rows = table.getRows();
-// float[] sizes = new float[rows.size()];
-// Style style = parentstyle;
-// if (table.getStyle() != null) {
-// style = table.getStyle();
-// }
-// Font font = PdfAsSignatureParameter.getFont(style);
-// g.setFont(font);
-//
-// float total_height = this.getTableHeight(table, parentstyle, width, g);
-//
-// float perUnit = height / total_height;
-//
-// this.perUnitHeight = perUnit;
-//
-// float[] colWidths = table.getColsRelativeWith();
-// float sum = 0;
-//
-// for (int i = 0; i < colWidths.length; i++) {
-// sum += colWidths[i];
-// }
-//
-// float perUnitWidth = width / sum;
-//
-// for (int i = 0; i < rows.size(); i++) {
-// Object robj = rows.get(i);
-// ArrayList cols = (ArrayList) robj;
-// float tsize = 0;
-// float rsize = 0;
-// for (int j = 0; j < cols.size(); j++) {
-// Entry entry = (Entry) cols.get(j);
-// if (entry.getType() == 0 || entry.getType() == 1) {
-// int colWidth = (int) (colWidths[j] * perUnitWidth);
-//
-// float trsize = getLines(entry.getValue().toString(), colWidth, g.getFontMetrics(), (int) style.getPadding() * PLACEHOLDER_SCALE).length * g.getFontMetrics().getHeight() + (style.getPadding() * PLACEHOLDER_SCALE * 2);
-//
-// if (rsize < trsize) {
-// rsize = trsize;
-// }
-// } else if (entry.getType() == 3) {
-//
-// int colWidth = (int) (colWidths[j] * perUnitWidth);
-//
-// tsize = this
-// .getTableHeight((Table) entry.getValue(), style, colWidth, g);
-// if (rsize < tsize) {
-// rsize = tsize;
-// }
-// }
-// }
-// sizes[i] = perUnit * rsize;
-// }
-//
-// return sizes;
-// }
-//
-// @SuppressWarnings("rawtypes")
-// private float getTableHeight(Table table, Style parentstyle, int width, Graphics g) {
-// ArrayList rows = table.getRows();
-// Style style = parentstyle;
-// if (table.getStyle() != null) {
-// style = table.getStyle();
-// }
-// float size = 0;
-//
-// float[] colWidths = table.getColsRelativeWith();
-// float sum = 0;
-//
-// for (int i = 0; i < colWidths.length; i++) {
-// sum += colWidths[i];
-// }
-//
-// float perUnitWidth = width / sum;
-//
-// for (int i = 0; i < rows.size(); i++) {
-// Object robj = rows.get(i);
-// ArrayList cols = (ArrayList) robj;
-// float tsize = 0;
-// float rsize = 0;
-// for (int j = 0; j < cols.size(); j++) {
-// Entry entry = (Entry) cols.get(j);
-// if (entry.getType() == 0 || entry.getType() == 1) {
-// int colWidth = (int) (colWidths[j] * perUnitWidth);
-//
-// float trsize = getLines(entry.getValue().toString(), colWidth, g.getFontMetrics(), (int) style.getPadding() * PLACEHOLDER_SCALE).length * g.getFontMetrics().getHeight() + (style.getPadding() * PLACEHOLDER_SCALE * 2);
-//
-// if (rsize < trsize) {
-// rsize = trsize;
-// }
-//
-// /*if (rsize < ((style.getPadding() * PLACEHOLDER_SCALE * 2) + fontSize)) {
-// rsize = ((style.getPadding() * PLACEHOLDER_SCALE * 2) + fontSize);
-// }*/
-// } else if (entry.getType() == 3) {
-// int colWidth = (int) (colWidths[j] * perUnitWidth);
-// tsize = this
-// .getTableHeight((Table) entry.getValue(), style, colWidth, g);
-// if (rsize < tsize) {
-// rsize = tsize;
-// }
-// }
-// }
-// size += rsize;
-// }
-//
-// return size;
-// }
-}
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/exceptions/PDFASSLRequestException.java b/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/exceptions/PDFASSLRequestException.java
deleted file mode 100644
index 483052c7..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/exceptions/PDFASSLRequestException.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2012 by A-SIT, Secure Information Technology Center Austria
- *
- * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
- * the European Commission - subsequent versions of the EUPL (the "Licence");
- * You may not use this work except in compliance with the Licence.
- * You may obtain a copy of the Licence at:
- * http://joinup.ec.europa.eu/software/page/eupl
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the Licence is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the Licence for the specific language governing permissions and
- * limitations under the Licence.
- */
-package at.asit.pdfover.signer.pdfas.exceptions;
-
-/**
- *
- */
-public class PDFASSLRequestException extends Exception {
- /**
- *
- */
- private static final long serialVersionUID = -7515747014505057787L;
-
- /**
- * Constructor
- * @param msg
- */
- public PDFASSLRequestException(String msg) {
- super(msg);
- }
-}
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/src/main/resources/img/fallbackPlaceholder.png b/pdf-over-signer/pdf-over-sigpdfas3/src/main/resources/img/fallbackPlaceholder.png
deleted file mode 100644
index 4baafc19..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/src/main/resources/img/fallbackPlaceholder.png
+++ /dev/null
Binary files differ
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/src/main/resources/img/sign_prev_de.png b/pdf-over-signer/pdf-over-sigpdfas3/src/main/resources/img/sign_prev_de.png
deleted file mode 100644
index c8ca09f4..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/src/main/resources/img/sign_prev_de.png
+++ /dev/null
Binary files differ
diff --git a/pdf-over-signer/pdf-over-sigpdfas3/src/main/resources/img/sign_prev_en.png b/pdf-over-signer/pdf-over-sigpdfas3/src/main/resources/img/sign_prev_en.png
deleted file mode 100644
index aa450fcc..00000000
--- a/pdf-over-signer/pdf-over-sigpdfas3/src/main/resources/img/sign_prev_en.png
+++ /dev/null
Binary files differ
diff --git a/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignatureParameter.java b/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignatureParameter.java
index 127df8cf..032416cd 100644
--- a/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignatureParameter.java
+++ b/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignatureParameter.java
@@ -153,13 +153,11 @@ public class PdfAs4SignatureParameter extends SignatureParameter {
if (in_pos.getPage() < 1) {
out_pos = String.format(
(Locale) null,
- "p:new;x:%f;y:%f", in_pos.getX(),
- in_pos.getY());
+ "p:new;x:%f;y:%f", in_pos.getX(), in_pos.getY());
} else {
out_pos = String.format(
(Locale) null,
- "p:%d;x:%f;y:%f", in_pos.getPage(), in_pos.getX(),
- in_pos.getY());
+ "p:%d;x:%f;y:%f", in_pos.getPage(), in_pos.getX(), in_pos.getY());
}
} else {
out_pos = "p:auto;x:auto;y:auto";
diff --git a/pdf-over-signer/pom.xml b/pdf-over-signer/pom.xml
index 0c340f6c..4cfdbf90 100644
--- a/pdf-over-signer/pom.xml
+++ b/pdf-over-signer/pom.xml
@@ -13,7 +13,6 @@
<pdfover-build.root-dir>${project.basedir}/..</pdfover-build.root-dir>
</properties>
<modules>
- <!--module>pdf-over-sigpdfas3</module-->
<module>pdf-over-sigpdfas4</module>
</modules>
</project>