diff options
Diffstat (limited to 'eaaf_modules/eaaf_module_moa-sig/src/main/java/at/gv/egiz/eaaf/modules/sigverify/moasig/api')
3 files changed, 110 insertions, 2 deletions
diff --git a/eaaf_modules/eaaf_module_moa-sig/src/main/java/at/gv/egiz/eaaf/modules/sigverify/moasig/api/ISignatureVerificationService.java b/eaaf_modules/eaaf_module_moa-sig/src/main/java/at/gv/egiz/eaaf/modules/sigverify/moasig/api/ISignatureVerificationService.java index e4577cae..1a0df63c 100644 --- a/eaaf_modules/eaaf_module_moa-sig/src/main/java/at/gv/egiz/eaaf/modules/sigverify/moasig/api/ISignatureVerificationService.java +++ b/eaaf_modules/eaaf_module_moa-sig/src/main/java/at/gv/egiz/eaaf/modules/sigverify/moasig/api/ISignatureVerificationService.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Map; import at.gv.egiz.eaaf.modules.sigverify.moasig.api.data.ICmsSignatureVerificationResponse; +import at.gv.egiz.eaaf.modules.sigverify.moasig.api.data.IPdfSignatureVerificationResponse; import at.gv.egiz.eaaf.modules.sigverify.moasig.api.data.IXmlSignatureVerificationResponse; import at.gv.egiz.eaaf.modules.sigverify.moasig.exceptions.MoaSigServiceException; @@ -18,7 +19,7 @@ public interface ISignatureVerificationService { * * @param signature Enveloped CMS or CAdES signature * @param trustProfileID Id of the Trust-Profile from MOA-Sig configuration - * @return @link {@link ICmsSignatureVerificationResponse}, or null if no + * @return {@link ICmsSignatureVerificationResponse}, or null if no * signature was found * @throws MoaSigServiceException on signatue-verification error */ @@ -26,6 +27,50 @@ public interface ISignatureVerificationService { throws MoaSigServiceException; /** + * Verify a CAdES or CMS signature. <br> + * <br> + * <i>This method only validates the first CMS or CAdES signature if more than + * one signature exists</i> + * + * @param signature Enveloped CMS or CAdES signature + * @param trustProfileID Id of the Trust-Profile from MOA-Sig configuration + * @param performExtendedValidation If <code>true</code> than MOA-Sig perform extended validation on this signature. + * @return {@link ICmsSignatureVerificationResponse}, or null if no + * signature was found + * @throws MoaSigServiceException on signatue-verification error + */ + ICmsSignatureVerificationResponse verifyCmsSignature(byte[] signature, String trustProfileID, + boolean performExtendedValidation) throws MoaSigServiceException; + + + /** + * Verify a PAdES or PDF signature. + * + * @param pdf PDF document + * @param trustProfileID Id of the Trust-Profile from MOA-Sig configuration + * @return {@link List} of {@link IPdfSignatureVerificationResponse}, or null if no + * signature was found + * @throws MoaSigServiceException on signatue-verification error + */ + List<IPdfSignatureVerificationResponse> verifyPdfSignature(byte[] pdf, String trustProfileID) + throws MoaSigServiceException; + + + /** + * Verify a PAdES or PDF signature. + * + * @param pdf PDF document + * @param trustProfileID Id of the Trust-Profile from MOA-Sig configuration + * @param performExtendedValidation If <code>true</code> than MOA-Sig perform extended validation on this signature. + * @return {@link List} of {@link IPdfSignatureVerificationResponse}, or null if no + * signature was found + * @throws MoaSigServiceException on signatue-verification error + */ + List<IPdfSignatureVerificationResponse> verifyPdfSignature(byte[] pdf, String trustProfileID, + boolean performExtendedValidation) throws MoaSigServiceException; + + + /** * Verify a XML or XAdES signature. <br> * <br> * <i>This method only validates the first XML or XAdES signature if more than diff --git a/eaaf_modules/eaaf_module_moa-sig/src/main/java/at/gv/egiz/eaaf/modules/sigverify/moasig/api/data/IGenericSignatureVerificationResponse.java b/eaaf_modules/eaaf_module_moa-sig/src/main/java/at/gv/egiz/eaaf/modules/sigverify/moasig/api/data/IGenericSignatureVerificationResponse.java index e7de6958..8e8511fa 100644 --- a/eaaf_modules/eaaf_module_moa-sig/src/main/java/at/gv/egiz/eaaf/modules/sigverify/moasig/api/data/IGenericSignatureVerificationResponse.java +++ b/eaaf_modules/eaaf_module_moa-sig/src/main/java/at/gv/egiz/eaaf/modules/sigverify/moasig/api/data/IGenericSignatureVerificationResponse.java @@ -1,11 +1,15 @@ package at.gv.egiz.eaaf.modules.sigverify.moasig.api.data; import java.util.Date; +import java.util.List; -import at.gv.egiz.eaaf.modules.sigverify.moasig.exceptions.MoaSigServiceException; +import javax.annotation.Nonnull; import org.springframework.lang.Nullable; +import at.gv.egiz.eaaf.modules.sigverify.moasig.exceptions.MoaSigServiceException; +import at.gv.egiz.eaaf.modules.sigverify.moasig.impl.data.GenericSignatureVerificationResponse.ExtendedCertificateValidation; +import at.gv.egiz.eaaf.modules.sigverify.moasig.impl.data.GenericSignatureVerificationResponse.ExtendedResult; import iaik.x509.X509Certificate; public interface IGenericSignatureVerificationResponse { @@ -72,4 +76,34 @@ public interface IGenericSignatureVerificationResponse { @Nullable String getPublicAuthorityCode(); + + /** + * Return the signature-algorithm that was used for signing or <code>null</code> if no result exists. + * <br> + * <p>This result requires extended validation.</p> + * + * @return + */ + @Nullable + String getSignatureAlgorithmIdentifier(); + + /** + * Return the extended certificate-validation result or <code>null</code> if no result exists. + * <br> + * <p>This result requires extended validation.</p> + * + * @return + */ + @Nullable + ExtendedCertificateValidation getExtendedCertificateValidation(); + + /** + * Return the form-validation result or an empty list if no result exists. + * <br> + * <p>This result requires extended validation.</p> + * + * @return + */ + @Nonnull + List<ExtendedResult> getFormValidationResults(); } diff --git a/eaaf_modules/eaaf_module_moa-sig/src/main/java/at/gv/egiz/eaaf/modules/sigverify/moasig/api/data/IPdfSignatureVerificationResponse.java b/eaaf_modules/eaaf_module_moa-sig/src/main/java/at/gv/egiz/eaaf/modules/sigverify/moasig/api/data/IPdfSignatureVerificationResponse.java new file mode 100644 index 00000000..1bf2d7b2 --- /dev/null +++ b/eaaf_modules/eaaf_module_moa-sig/src/main/java/at/gv/egiz/eaaf/modules/sigverify/moasig/api/data/IPdfSignatureVerificationResponse.java @@ -0,0 +1,29 @@ +package at.gv.egiz.eaaf.modules.sigverify.moasig.api.data; + +import java.util.List; + +import at.gv.egiz.eaaf.core.impl.data.Pair; +import at.gv.egiz.eaaf.modules.sigverify.moasig.impl.data.VerifyPdfSignatureResponse.CoversFullDocument; + +/** + * PDF specific signature-verification response. + * + * @author tlenz + * + */ +public interface IPdfSignatureVerificationResponse extends IGenericSignatureVerificationResponse { + + /** + * Flag if signature covers the full pdf-document. + * + * @return + */ + CoversFullDocument getSignatureCoversFullDocument(); + + /** + * PDF signing ranges as {@link List} of {@link Pair} of starting-byte and byte-length. + * + * @return + */ + List<Pair<Integer, Integer>> getByteRange(); +} |