From fc44d4bcad00192f0df8f6086737b9b126094dcd Mon Sep 17 00:00:00 2001 From: Andreas Fitzek Date: Thu, 26 Sep 2013 15:48:43 +0200 Subject: initial code commit --- .../at/gv/egiz/pdfas/lib/api/Configuration.java | 7 +++ .../pdfas/lib/api/IConfigurationConstants.java | 16 +++++++ .../java/at/gv/egiz/pdfas/lib/api/IDataSource.java | 6 +++ .../main/java/at/gv/egiz/pdfas/lib/api/PdfAs.java | 40 +++++++++++++++++ .../at/gv/egiz/pdfas/lib/api/PdfAsFactory.java | 9 ++++ .../at/gv/egiz/pdfas/lib/api/PdfAsParameter.java | 32 ++++++++++++++ .../at/gv/egiz/pdfas/lib/api/package-info.java | 8 ++++ .../gv/egiz/pdfas/lib/api/sign/SignParameter.java | 37 ++++++++++++++++ .../at/gv/egiz/pdfas/lib/api/sign/SignResult.java | 5 +++ .../gv/egiz/pdfas/lib/api/sign/package-info.java | 8 ++++ .../egiz/pdfas/lib/api/verify/SignatureCheck.java | 19 ++++++++ .../egiz/pdfas/lib/api/verify/VerifyParameter.java | 14 ++++++ .../gv/egiz/pdfas/lib/api/verify/VerifyResult.java | 50 ++++++++++++++++++++++ .../gv/egiz/pdfas/lib/api/verify/package-info.java | 8 ++++ 14 files changed, 259 insertions(+) create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/Configuration.java create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/IConfigurationConstants.java create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/IDataSource.java create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAs.java create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsFactory.java create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsParameter.java create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/package-info.java create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignParameter.java create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignResult.java create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/package-info.java create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/SignatureCheck.java create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/VerifyParameter.java create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/VerifyResult.java create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/package-info.java (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api') diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/Configuration.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/Configuration.java new file mode 100644 index 00000000..89acc747 --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/Configuration.java @@ -0,0 +1,7 @@ +package at.gv.egiz.pdfas.lib.api; + +public interface Configuration { + public String getValue(String key); + public boolean hasValue(String key); + public void setValue(String key, String value); +} diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/IConfigurationConstants.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/IConfigurationConstants.java new file mode 100644 index 00000000..9a8d773a --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/IConfigurationConstants.java @@ -0,0 +1,16 @@ +package at.gv.egiz.pdfas.lib.api; + +public interface IConfigurationConstants { + + public static final String TRUE = "true"; + + public static final String SIG_OBJECT = "sig_obj"; + public static final String TYPE = "type"; + public static final String TABLE = "type"; + public static final String MAIN = "main"; + public static final String DEFAULT = "default"; + public static final String SEPERATOR = "."; + + public static final String PLACEHOLDER_SEARCH_ENABLED = "enable_placeholder_search"; + public static final String DEFAULT_SIGNATURE_PROFILE = SIG_OBJECT + SEPERATOR + TYPE + SEPERATOR + DEFAULT; +} diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/IDataSource.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/IDataSource.java new file mode 100644 index 00000000..6fea788c --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/IDataSource.java @@ -0,0 +1,6 @@ +package at.gv.egiz.pdfas.lib.api; + +public interface IDataSource { + public String getMIMEType(); + public byte[] getByteData(); +} diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAs.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAs.java new file mode 100644 index 00000000..4b491064 --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAs.java @@ -0,0 +1,40 @@ +package at.gv.egiz.pdfas.lib.api; + +import java.util.List; + +import at.gv.egiz.pdfas.common.exceptions.PdfAsException; +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; + +public interface PdfAs { + + // Sign + // Verify + // Get Configuration + + /** + * Signs a PDF document using PDF-AS. + * + * @param parameter + * @return + */ + public SignResult sign(SignParameter parameter) throws PdfAsException; + + /** + * Verifies a document with (potentially multiple) PDF-AS signatures. + * + * @param parameter The verification parameter + * @return A list of verification Results + */ + public List verify(VerifyParameter parameter); + + /** + * Gets a copy of the PDF-AS configuration, to allow the application to + * override configuration parameters at runtime. + * + * @return A private copy of the pdf as configuration + */ + public Configuration getConfiguration(); +} diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsFactory.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsFactory.java new file mode 100644 index 00000000..ae9388eb --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsFactory.java @@ -0,0 +1,9 @@ +package at.gv.egiz.pdfas.lib.api; + +import java.io.File; + +public class PdfAsFactory { + public static PdfAs createPdfAs(File configuration) { + return null; + } +} diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsParameter.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsParameter.java new file mode 100644 index 00000000..999c91bc --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsParameter.java @@ -0,0 +1,32 @@ +package at.gv.egiz.pdfas.lib.api; + +public abstract class PdfAsParameter { + + protected Configuration configuration; + + protected IDataSource dataSource; + + public PdfAsParameter(Configuration configuration, + IDataSource dataSource) { + this.configuration = configuration; + this.dataSource = dataSource; + } + + public Configuration getConfiguration() { + return configuration; + } + + public void setConfiguration(Configuration configuration) { + this.configuration = configuration; + } + + public IDataSource getDataSource() { + return dataSource; + } + + public void setDataSource(IDataSource dataSource) { + this.dataSource = dataSource; + } + + +} diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/package-info.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/package-info.java new file mode 100644 index 00000000..debc6d4f --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/package-info.java @@ -0,0 +1,8 @@ +/** + * + */ +/** + * @author afitzek + * + */ +package at.gv.egiz.pdfas.lib.api; \ No newline at end of file diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignParameter.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignParameter.java new file mode 100644 index 00000000..1eee841a --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignParameter.java @@ -0,0 +1,37 @@ +package at.gv.egiz.pdfas.lib.api.sign; + +import at.gv.egiz.pdfas.lib.api.Configuration; +import at.gv.egiz.pdfas.lib.api.IDataSource; +import at.gv.egiz.pdfas.lib.api.PdfAsParameter; + +public class SignParameter extends PdfAsParameter { + + protected String signatureProfileId = null; + protected String signaturePosition = null; + + public SignParameter(Configuration configuration, + IDataSource dataSource) { + super(configuration, dataSource); + } + + // ======================================================================== + + public String getSignatureProfileId() { + return signatureProfileId; + } + + public void setSignatureProfileId(String signatureProfileId) { + this.signatureProfileId = signatureProfileId; + } + + public String getSignaturePosition() { + return signaturePosition; + } + + public void setSignaturePosition(String signaturePosition) { + this.signaturePosition = signaturePosition; + } + + + +} diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignResult.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignResult.java new file mode 100644 index 00000000..91da083e --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignResult.java @@ -0,0 +1,5 @@ +package at.gv.egiz.pdfas.lib.api.sign; + +public class SignResult { + +} diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/package-info.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/package-info.java new file mode 100644 index 00000000..2052ad71 --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/package-info.java @@ -0,0 +1,8 @@ +/** + * + */ +/** + * @author afitzek + * + */ +package at.gv.egiz.pdfas.lib.api.sign; \ No newline at end of file diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/SignatureCheck.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/SignatureCheck.java new file mode 100644 index 00000000..a021eb2a --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/SignatureCheck.java @@ -0,0 +1,19 @@ +package at.gv.egiz.pdfas.lib.api.verify; + +public interface SignatureCheck { + /** + * Returns the response code of the check. + * + * @return Returns the response code of the check. + */ + public int getCode(); + + /** + * Returns the textual response message of the check (corresponding to the + * code). + * + * @return Returns the textual response message of the check (corresponding + * to the code). + */ + public String getMessage(); +} diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/VerifyParameter.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/VerifyParameter.java new file mode 100644 index 00000000..8c53ad47 --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/VerifyParameter.java @@ -0,0 +1,14 @@ +package at.gv.egiz.pdfas.lib.api.verify; + +import at.gv.egiz.pdfas.lib.api.Configuration; +import at.gv.egiz.pdfas.lib.api.IDataSource; +import at.gv.egiz.pdfas.lib.api.PdfAsParameter; + +public class VerifyParameter extends PdfAsParameter { + + public VerifyParameter(Configuration configuration, + IDataSource dataSource) { + super(configuration, dataSource); + } + +} diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/VerifyResult.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/VerifyResult.java new file mode 100644 index 00000000..339f7b15 --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/VerifyResult.java @@ -0,0 +1,50 @@ +package at.gv.egiz.pdfas.lib.api.verify; + +import at.gv.egiz.pdfas.common.exceptions.PdfAsException; + +public interface VerifyResult { + /** + * Returns if the verification was possible or could not even be startet. + * see {@link #getVerificationException()} for details. + * + * @return + */ + public boolean isVerificationDone(); + + /** + * Returns a verification exception if any. Shows that the verification + * could not be started. See {@link #isVerificationDone()}. + * + * @return + */ + public PdfAsException getVerificationException(); + + /** + * Returns the result of the certificate check. + * + * @return Returns the result of the certificate check. + */ + public SignatureCheck getCertificateCheck(); + + /** + * Returns the result of the value (and hash) check. + * + * @return Returns the result of the value (and hash) check. + */ + public SignatureCheck getValueCheckCode(); + + /** + * Returns the result of the manifest check. + * + * @return Returns the result of the manifest check. + */ + public SignatureCheck getManifestCheckCode(); + + /** + * Returns true, if the signer's certificate is a qualified certificate. + * + * @return Returns true, if the signer's certificate is a qualified + * certificate. + */ + public boolean isQualifiedCertificate(); +} diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/package-info.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/package-info.java new file mode 100644 index 00000000..68dda721 --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/package-info.java @@ -0,0 +1,8 @@ +/** + * + */ +/** + * @author afitzek + * + */ +package at.gv.egiz.pdfas.lib.api.verify; \ No newline at end of file -- cgit v1.2.3