diff options
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.java | 157 |
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; + }*/ + } } |