From 07cfc175c86eec0def3cd7376e0697317d3d7b26 Mon Sep 17 00:00:00 2001 From: Andreas Fitzek Date: Wed, 16 Oct 2013 10:30:10 +0200 Subject: Legacy API changes --- .../java/at/gv/egiz/pdfas/wrapper/PdfAsObject.java | 104 +++++++++++++----- .../egiz/pdfas/wrapper/SignParameterWrapper.java | 32 ++++++ .../egiz/pdfas/wrapper/SignatureCheckWrapper.java | 21 ++++ .../wrapper/SignatureDetailInformationWrapper.java | 88 ++++++++++++++++ .../egiz/pdfas/wrapper/VerifyParameterWrapper.java | 14 +++ .../gv/egiz/pdfas/wrapper/VerifyResultWrapper.java | 116 +++++++++++++++++++++ .../gv/egiz/pdfas/wrapper/VerifyResultsImpl.java | 20 ++++ 7 files changed, 369 insertions(+), 26 deletions(-) create mode 100644 pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignParameterWrapper.java create mode 100644 pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignatureCheckWrapper.java create mode 100644 pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignatureDetailInformationWrapper.java create mode 100644 pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyParameterWrapper.java create mode 100644 pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyResultWrapper.java create mode 100644 pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyResultsImpl.java (limited to 'pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper') diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/PdfAsObject.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/PdfAsObject.java index 6606ec4a..067021b2 100644 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/PdfAsObject.java +++ b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/PdfAsObject.java @@ -1,15 +1,16 @@ package at.gv.egiz.pdfas.wrapper; import java.io.File; +import java.util.ArrayList; +import java.util.Iterator; import java.util.List; -import com.sun.org.apache.xml.internal.utils.UnImplNode; - import at.gv.egiz.pdfas.api.PdfAs; import at.gv.egiz.pdfas.api.analyze.AnalyzeParameters; import at.gv.egiz.pdfas.api.analyze.AnalyzeResult; import at.gv.egiz.pdfas.api.commons.DynamicSignatureLifetimeEnum; import at.gv.egiz.pdfas.api.commons.DynamicSignatureProfile; +import at.gv.egiz.pdfas.api.commons.DynamicSignatureProfileImpl; import at.gv.egiz.pdfas.api.exceptions.ErrorCode; import at.gv.egiz.pdfas.api.exceptions.PdfAsException; import at.gv.egiz.pdfas.api.sign.SignParameters; @@ -22,25 +23,59 @@ import at.gv.egiz.pdfas.api.verify.VerifyResults; import at.gv.egiz.pdfas.api.xmldsig.ReconstructXMLDsigAfterAnalysisParameters; import at.gv.egiz.pdfas.api.xmldsig.ReconstructXMLDsigParameters; import at.gv.egiz.pdfas.api.xmldsig.ReconstructXMLDsigResult; +import at.gv.egiz.pdfas.lib.api.ByteArrayDataSource; +import at.gv.egiz.pdfas.lib.api.Configuration; +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; +import at.gv.egiz.pdfas.lib.api.verify.VerifyParameter; +import at.gv.egiz.pdfas.lib.api.verify.VerifyResult; public class PdfAsObject implements PdfAs { + private at.gv.egiz.pdfas.lib.api.PdfAs pdfas4; + private Configuration configuration; + private File workdir; + public SignResult sign(SignParameters signParameters) throws PdfAsException { - // TODO Auto-generated method stub - return null; + SignatureDetailInformation signatureDetailInformation = this + .prepareSign(signParameters); + return this.sign(signParameters, signatureDetailInformation); } public SignResult sign(SignParameters signParameters, SignatureDetailInformation signatureDetailInformation) throws PdfAsException { - // TODO Auto-generated method stub + + // Create the signature .... + + // TODO wait for SL wrapper implementation return null; } public VerifyResults verify(VerifyParameters verifyParameters) throws PdfAsException { - // TODO Auto-generated method stub - return null; + try { + VerifyParameter newParameter = VerifyParameterWrapper.toNewParameters(verifyParameters); + + List results = this.pdfas4.verify(newParameter); + + Iterator it = results.iterator(); + + List resultList = + new ArrayList(); + + while(it.hasNext()) { + VerifyResult newResult = it.next(); + at.gv.egiz.pdfas.api.verify.VerifyResult oldResult = + new VerifyResultWrapper(newResult); + resultList.add(oldResult); + } + + return new VerifyResultsImpl(resultList); + } catch(at.gv.egiz.pdfas.common.exceptions.PdfAsException e) { + throw new PdfAsException(0, e.getMessage()); + } } public AnalyzeResult analyze(AnalyzeParameters analyzeParameters) @@ -78,61 +113,78 @@ public class PdfAsObject implements PdfAs { } public void reloadConfig() throws PdfAsException { - // TODO Auto-generated method stub - + this.pdfas4 = at.gv.egiz.pdfas.lib.api.PdfAsFactory + .createPdfAs(this.workdir); + this.configuration = this.pdfas4.getConfiguration(); } public List getProfileInformation() throws PdfAsException { - // TODO Auto-generated method stub - return null; + throw new PdfAsException(ErrorCode.FUNCTION_NOT_AVAILABLE, + new RuntimeException()); } public DynamicSignatureProfile createDynamicSignatureProfile( String parentProfile, DynamicSignatureLifetimeEnum mode) { - // TODO Auto-generated method stub - return null; + return DynamicSignatureProfileImpl.createFromParent(null, + parentProfile, mode, configuration); } public DynamicSignatureProfile createDynamicSignatureProfile( String myUniqueName, String parentProfile, DynamicSignatureLifetimeEnum mode) { - // TODO Auto-generated method stub - return null; + return DynamicSignatureProfileImpl.createFromParent(myUniqueName, + parentProfile, mode, configuration); } public DynamicSignatureProfile createEmptyDynamicSignatureProfile( DynamicSignatureLifetimeEnum mode) { - // TODO Auto-generated method stub - return null; + return DynamicSignatureProfileImpl.createEmptyProfile(null, mode, + configuration); } public DynamicSignatureProfile createEmptyDynamicSignatureProfile( String myUniqueName, DynamicSignatureLifetimeEnum mode) { - // TODO Auto-generated method stub - return null; + return DynamicSignatureProfileImpl.createEmptyProfile(myUniqueName, + mode, configuration); } public DynamicSignatureProfile loadDynamicSignatureProfile( String profileName) { - // TODO Auto-generated method stub - return null; + return DynamicSignatureProfileImpl.loadProfile(profileName); } public SignatureDetailInformation prepareSign(SignParameters signParameters) throws PdfAsException { - // TODO Auto-generated method stub - return null; + try { + // Prepare Signature + + SignParameter signParameter4 = PdfAsFactory.createSignParameter( + this.configuration, new ByteArrayDataSource(signParameters + .getDocument().getAsByteArray())); + + SignParameterWrapper wrapper = new SignParameterWrapper(signParameters, signParameter4); + + // TODO: wrapper sync old to new + StatusRequest request = this.pdfas4.startSign(wrapper.getSignParameter4()); + // TODO: wait for SL implementation wrapper + return null; + + } catch (at.gv.egiz.pdfas.common.exceptions.PdfAsException e) { + throw new PdfAsException(0, e.getMessage()); + } } public SignResult finishSign(SignParameters signParameters, SignatureDetailInformation signatureDetailInformation) throws PdfAsException { - // TODO Auto-generated method stub - return null; + return sign(signParameters, signatureDetailInformation); } public PdfAsObject(File workdirectory) { - //TODO + this.workdir = workdirectory; + this.pdfas4 = at.gv.egiz.pdfas.lib.api.PdfAsFactory + .createPdfAs(workdirectory); + this.configuration = this.pdfas4.getConfiguration(); } } diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignParameterWrapper.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignParameterWrapper.java new file mode 100644 index 00000000..b51896bd --- /dev/null +++ b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignParameterWrapper.java @@ -0,0 +1,32 @@ +package at.gv.egiz.pdfas.wrapper; + +import at.gv.egiz.pdfas.api.sign.SignParameters; +import at.gv.egiz.pdfas.lib.api.sign.SignParameter; + +public class SignParameterWrapper { + + private SignParameter signParameter4; + private SignParameters signParameters; + + public SignParameterWrapper(SignParameters signParameters, SignParameter signParameter4) { + this.signParameter4 = signParameter4; + this.signParameters = signParameters; + } + + private void syncOldToNew() { + // TODO + } + + private void syncNewToOld() { + // TODO + } + + + public SignParameter getSignParameter4() { + return this.signParameter4; + } + + public SignParameters getSignParameters() { + return this.signParameters; + } +} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignatureCheckWrapper.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignatureCheckWrapper.java new file mode 100644 index 00000000..04b0dd3c --- /dev/null +++ b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignatureCheckWrapper.java @@ -0,0 +1,21 @@ +package at.gv.egiz.pdfas.wrapper; + +import at.gv.egiz.pdfas.api.verify.SignatureCheck; + +public class SignatureCheckWrapper implements SignatureCheck { + + private at.gv.egiz.pdfas.lib.api.verify.SignatureCheck newCheck; + + public SignatureCheckWrapper(at.gv.egiz.pdfas.lib.api.verify.SignatureCheck newCheck) { + this.newCheck = newCheck; + } + + public int getCode() { + return this.newCheck.getCode(); + } + + public String getMessage() { + return this.newCheck.getMessage(); + } + +} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignatureDetailInformationWrapper.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignatureDetailInformationWrapper.java new file mode 100644 index 00000000..683e083f --- /dev/null +++ b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignatureDetailInformationWrapper.java @@ -0,0 +1,88 @@ +package at.gv.egiz.pdfas.wrapper; + +import java.security.cert.X509Certificate; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import at.gv.egiz.pdfas.api.io.DataSource; +import at.gv.egiz.pdfas.api.sign.SignatureDetailInformation; +import at.gv.egiz.pdfas.api.sign.pos.SignaturePosition; + +public class SignatureDetailInformationWrapper implements SignatureDetailInformation { + + private SignParameterWrapper wrapper; + + public DataSource getSignatureData() { + // TODO + return null; + } + + public SignaturePosition getSignaturePosition() { + // TODO Auto-generated method stub + return null; + } + + public List getNonTextualObjects() { + return null; + } + + public Date getSignDate() { + return null; + } + + public String getIssuer() { + return null; + } + + public Map getIssuerDNMap() { + return null; + } + + public String getSubjectName() { + return null; + } + + public String getSerialNumber() { + return null; + } + + public String getSigAlgorithm() { + return null; + } + + public String getSigID() { + return null; + } + + public String getSigKZ() { + return null; + } + + public String getSignatureValue() { + return null; + } + + public String getSigTimeStamp() { + // TODO Auto-generated method stub + return null; + } + + public Map getSubjectDNMap() { + return null; + } + + public X509Certificate getX509Certificate() { + return null; + } + + public boolean isTextual() { + // TODO Auto-generated method stub + return false; + } + + public boolean isBinary() { + return true; + } + +} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyParameterWrapper.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyParameterWrapper.java new file mode 100644 index 00000000..387d9ea4 --- /dev/null +++ b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyParameterWrapper.java @@ -0,0 +1,14 @@ +package at.gv.egiz.pdfas.wrapper; + +import at.gv.egiz.pdfas.api.verify.VerifyParameters; +import at.gv.egiz.pdfas.lib.api.PdfAsFactory; +import at.gv.egiz.pdfas.lib.api.verify.VerifyParameter; + +public class VerifyParameterWrapper { + + public static VerifyParameter toNewParameters(VerifyParameters oldParameters) { + //TODO + return null; + } + +} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyResultWrapper.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyResultWrapper.java new file mode 100644 index 00000000..0364be9b --- /dev/null +++ b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyResultWrapper.java @@ -0,0 +1,116 @@ +package at.gv.egiz.pdfas.wrapper; + +import java.security.cert.X509Certificate; +import java.util.Date; +import java.util.List; + +import at.gv.egiz.pdfas.api.exceptions.PdfAsException; +import at.gv.egiz.pdfas.api.exceptions.PdfAsWrappedException; +import at.gv.egiz.pdfas.api.io.DataSource; +import at.gv.egiz.pdfas.api.verify.SignatureCheck; +import at.gv.egiz.pdfas.api.verify.VerifyResult; +import at.gv.egiz.pdfas.api.xmldsig.XMLDsigData; + +public class VerifyResultWrapper implements VerifyResult { + + private at.gv.egiz.pdfas.lib.api.verify.VerifyResult newResult; + + public VerifyResultWrapper(at.gv.egiz.pdfas.lib.api.verify.VerifyResult newResult) { + this.newResult = newResult; + } + + public String getSignatureType() { + // TODO Auto-generated method stub + return null; + } + + public DataSource getSignedData() { + // TODO Auto-generated method stub + return null; + } + + public X509Certificate getSignerCertificate() { + return this.newResult.getSignerCertificate(); + } + + public Date getSigningTime() { + // TODO Auto-generated method stub + return null; + } + + public Object getInternalSignatureInformation() { + // TODO Auto-generated method stub + return null; + } + + public String getTimeStampValue() { + // TODO Auto-generated method stub + return null; + } + + public void setNonTextualObjects(List nonTextualObjects) { + } + + public boolean isVerificationDone() { + return this.newResult.isVerificationDone(); + } + + public PdfAsException getVerificationException() { + return new PdfAsWrappedException(this.newResult.getVerificationException()); + } + + public SignatureCheck getCertificateCheck() { + return new SignatureCheckWrapper(this.newResult.getCertificateCheck()); + } + + public SignatureCheck getValueCheckCode() { + return new SignatureCheckWrapper(this.newResult.getValueCheckCode()); + } + + public SignatureCheck getManifestCheckCode() { + return new SignatureCheckWrapper(this.newResult.getManifestCheckCode()); + } + + public boolean isQualifiedCertificate() { + return this.newResult.isQualifiedCertificate(); + } + + public boolean isPublicAuthority() { + // TODO Auto-generated method stub + return false; + } + + public String getPublicAuthorityCode() { + // TODO Auto-generated method stub + return null; + } + + public List getPublicProperties() { + // TODO Auto-generated method stub + return null; + } + + public Date getVerificationTime() { + // TODO Auto-generated method stub + return null; + } + + public String getHashInputData() { + return null; + } + + public List getNonTextualObjects() { + return null; + } + + public boolean hasNonTextualObjects() { + return false; + } + + public XMLDsigData getReconstructedXMLDsig() { + return null; + } + + + +} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyResultsImpl.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyResultsImpl.java new file mode 100644 index 00000000..d20da58b --- /dev/null +++ b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyResultsImpl.java @@ -0,0 +1,20 @@ +package at.gv.egiz.pdfas.wrapper; + +import java.util.List; + +import at.gv.egiz.pdfas.api.verify.VerifyResult; +import at.gv.egiz.pdfas.api.verify.VerifyResults; + +public class VerifyResultsImpl implements VerifyResults { + + private List list; + + public VerifyResultsImpl(List list) { + this.list = list; + } + + public List getResults() { + return this.list; + } + +} -- cgit v1.2.3