aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BaseSLConnector.java
diff options
context:
space:
mode:
Diffstat (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BaseSLConnector.java')
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BaseSLConnector.java157
1 files changed, 105 insertions, 52 deletions
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BaseSLConnector.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BaseSLConnector.java
index d8aa2672..5321ed51 100644
--- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BaseSLConnector.java
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BaseSLConnector.java
@@ -30,36 +30,41 @@ import org.slf4j.LoggerFactory;
import at.gv.egiz.pdfas.common.exceptions.PDFIOException;
import at.gv.egiz.pdfas.common.utils.PDFUtils;
-import at.gv.egiz.sl.Base64OptRefContentType;
-import at.gv.egiz.sl.CMSDataObjectRequiredMetaType;
-import at.gv.egiz.sl.CreateCMSSignatureRequestType;
-import at.gv.egiz.sl.ExcludedByteRangeType;
-import at.gv.egiz.sl.InfoboxReadParamsAssocArrayType;
-import at.gv.egiz.sl.InfoboxReadParamsAssocArrayType.ReadValue;
-import at.gv.egiz.sl.InfoboxReadRequestType;
-import at.gv.egiz.sl.MetaInfoType;
-import at.gv.egiz.sl.ObjectFactory;
+import at.gv.egiz.sl.schema.Base64OptRefContentType;
+import at.gv.egiz.sl.schema.Base64XMLLocRefContentType;
+import at.gv.egiz.sl.schema.Base64XMLLocRefOptRefContentType;
+import at.gv.egiz.sl.schema.CMSDataObjectOptionalMetaType;
+import at.gv.egiz.sl.schema.CMSDataObjectRequiredMetaType;
+import at.gv.egiz.sl.schema.CreateCMSSignatureRequestType;
+import at.gv.egiz.sl.schema.DataObjectInfoType;
+import at.gv.egiz.sl.schema.ExcludedByteRangeType;
+import at.gv.egiz.sl.schema.InfoboxReadParamsAssocArrayType;
+import at.gv.egiz.sl.schema.InfoboxReadParamsAssocArrayType.ReadValue;
+import at.gv.egiz.sl.schema.InfoboxReadRequestType;
+import at.gv.egiz.sl.schema.MetaInfoType;
+import at.gv.egiz.sl.schema.ObjectFactory;
public abstract class BaseSLConnector implements ISLConnector {
- private static final Logger logger = LoggerFactory.getLogger(BaseSLConnector.class);
-
+ private static final Logger logger = LoggerFactory
+ .getLogger(BaseSLConnector.class);
+
public static final String SecureSignatureKeypair = "SecureSignatureKeypair";
-
+
public static final String PDF_MIME_TYPE = "application/pdf";
public static final String PDF_MIME_TYPE_DESC = "Adobe PDF-File";
-
+
public static final String DETACHED = "detached";
-
+
public static final String XMLREQUEST = "XMLRequest";
-
+
protected ObjectFactory of = new ObjectFactory();
-
+
public InfoboxReadRequestType createInfoboxReadRequest() {
InfoboxReadRequestType request = new InfoboxReadRequestType();
request.setInfoboxIdentifier("Certificates");
InfoboxReadParamsAssocArrayType readData = new InfoboxReadParamsAssocArrayType();
-
+
ReadValue readValue = new ReadValue();
readValue.setKey(SecureSignatureKeypair);
@@ -67,40 +72,88 @@ public abstract class BaseSLConnector implements ISLConnector {
request.setAssocArrayParameters(readData);
return request;
}
-
- public CreateCMSSignatureRequestType createCMSRequest(byte[] signatureData, int[] byteRange) throws PDFIOException {
- byte[] data = PDFUtils.blackOutSignature(signatureData, byteRange);
-
- int[] exclude_range = PDFUtils.buildExcludeRange(byteRange);
- logger.info("Exclude Byte Range: " + exclude_range[0] + " " + exclude_range[1]);
-
- // == MetaInfoType
- MetaInfoType metaInfoType = new MetaInfoType();
- metaInfoType.setMimeType(PDF_MIME_TYPE);
-
- // == Base64OptRefContentType
- Base64OptRefContentType base64OptRefContentType = new Base64OptRefContentType();
- base64OptRefContentType.setBase64Content(data);
-
- // == CMSDataObjectRequiredMetaType
- CMSDataObjectRequiredMetaType cmsDataObjectRequiredMetaType = new CMSDataObjectRequiredMetaType();
- cmsDataObjectRequiredMetaType.setMetaInfo(metaInfoType);
- cmsDataObjectRequiredMetaType.setContent(base64OptRefContentType);
- if(byteRange.length > 0) {
- ExcludedByteRangeType excludeByteRange = new ExcludedByteRangeType();
- excludeByteRange.setFrom(new BigInteger(String.valueOf(exclude_range[0])));
- excludeByteRange.setTo(new BigInteger(String.valueOf(exclude_range[1])));
- cmsDataObjectRequiredMetaType.setExcludedByteRange(excludeByteRange);
- }
-
-
- // == CreateCMSSignatureRequestType
- CreateCMSSignatureRequestType request = new CreateCMSSignatureRequestType();
- request.setKeyboxIdentifier(SecureSignatureKeypair);
- request.setDataObject(cmsDataObjectRequiredMetaType);
- request.setStructure(DETACHED);
-
- return request;
- }
+ public RequestPackage createCMSRequest(byte[] signatureData, int[] byteRange)
+ throws PDFIOException {
+ //if (base64) {
+ byte[] data = PDFUtils.blackOutSignature(signatureData, byteRange);
+
+ int[] exclude_range = PDFUtils.buildExcludeRange(byteRange);
+ logger.info("Exclude Byte Range: " + exclude_range[0] + " "
+ + exclude_range[1]);
+
+ // == MetaInfoType
+ MetaInfoType metaInfoType = new MetaInfoType();
+ metaInfoType.setMimeType(PDF_MIME_TYPE);
+
+ // == Base64OptRefContentType
+ Base64OptRefContentType base64OptRefContentType = new Base64OptRefContentType();
+ base64OptRefContentType.setBase64Content(data);
+
+ // == CMSDataObjectRequiredMetaType
+ CMSDataObjectRequiredMetaType cmsDataObjectRequiredMetaType = new CMSDataObjectRequiredMetaType();
+ cmsDataObjectRequiredMetaType.setMetaInfo(metaInfoType);
+ cmsDataObjectRequiredMetaType.setContent(base64OptRefContentType);
+ if (byteRange.length > 0) {
+ ExcludedByteRangeType excludeByteRange = new ExcludedByteRangeType();
+ excludeByteRange.setFrom(new BigInteger(String
+ .valueOf(exclude_range[0])));
+ excludeByteRange.setTo(new BigInteger(String
+ .valueOf(exclude_range[1])));
+ cmsDataObjectRequiredMetaType
+ .setExcludedByteRange(excludeByteRange);
+ }
+
+ // == CreateCMSSignatureRequestType
+ CreateCMSSignatureRequestType request = new CreateCMSSignatureRequestType();
+ request.setKeyboxIdentifier(SecureSignatureKeypair);
+ request.setDataObject(cmsDataObjectRequiredMetaType);
+ request.setStructure(DETACHED);
+
+ RequestPackage pack = new RequestPackage();
+
+ pack.setRequestType(request);
+ return pack;
+ /*} else {
+ RequestPackage pack = new RequestPackage();
+ pack.setSignatureData(signatureData);
+ pack.setByteRange(byteRange);
+
+ int[] exclude_range = PDFUtils.buildExcludeRange(byteRange);
+ logger.info("Exclude Byte Range: " + exclude_range[0] + " "
+ + exclude_range[1]);
+
+ // == MetaInfoType
+ MetaInfoType metaInfoType = new MetaInfoType();
+ metaInfoType.setMimeType(PDF_MIME_TYPE);
+
+ // == File RefContentType
+ Base64XMLLocRefOptRefContentType base64OptRefContentType = new Base64XMLLocRefOptRefContentType();
+ base64OptRefContentType.setLocRefContent("formdata:fileupload");
+
+ DataObjectInfoType cmsObject = new DataObjectInfoType();
+ cmsObject.setDataObject(base64OptRefContentType);
+ // == CMSDataObjectRequiredMetaType
+ CMSDataObjectRequiredMetaType cmsDataObjectRequiredMetaType = new CMSDataObjectRequiredMetaType();
+ cmsDataObjectRequiredMetaType.setMetaInfo(metaInfoType);
+ cmsDataObjectRequiredMetaType.setContent(value);
+ if (byteRange.length > 0) {
+ ExcludedByteRangeType excludeByteRange = new ExcludedByteRangeType();
+ excludeByteRange.setFrom(new BigInteger(String
+ .valueOf(exclude_range[0])));
+ excludeByteRange.setTo(new BigInteger(String
+ .valueOf(exclude_range[1])));
+ cmsObject.
+ .setExcludedByteRange(excludeByteRange);
+ }
+
+ // == CreateCMSSignatureRequestType
+ CreateCMSSignatureRequestType request = new CreateCMSSignatureRequestType();
+ request.setKeyboxIdentifier(SecureSignatureKeypair);
+ request.setDataObject(cmsDataObjectRequiredMetaType);
+ request.setStructure(DETACHED);
+ pack.setRequestType(request);
+ return pack;
+ }*/
+ }
}