diff options
Diffstat (limited to 'pdf-as-lib/src')
| -rw-r--r-- | pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BaseSLConnector.java | 35 | ||||
| -rw-r--r-- | pdf-as-lib/src/main/java/at/gv/egiz/sl/util/ISLConnector.java | 3 | 
2 files changed, 8 insertions, 30 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 59e5d7cf..8772239c 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 @@ -6,6 +6,8 @@ import java.util.Arrays;  import org.slf4j.Logger;  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; @@ -44,35 +46,10 @@ public abstract class BaseSLConnector implements ISLConnector {  		return request;  	} -	public CreateCMSSignatureRequestType createCMSRequest(byte[] signatureData, int[] byteRange) { -		// TODO build byte[] from signatureData and fill 0 bytes in byteRanged -		if(byteRange.length % 2 != 0) { -			// TODO: error -		} -		 -		int lastOffset = byteRange[byteRange.length - 2]; -		int lastSize = byteRange[byteRange.length - 1]; -		 -		int dataSize = lastOffset + lastSize; -		 -		byte[] data = new byte[dataSize]; -		int currentdataOff = 0; -		 -		Arrays.fill(data, (byte)0x0); -		int[] exclude_range = new int[byteRange.length-2]; -		for(int i = 0; i < byteRange.length; i = i + 2) { -			int offset = byteRange[i]; -			int size = byteRange[i+1]; -			 -			for(int j = 0; j < size; j++) { -				data[offset + j] = signatureData[currentdataOff]; -				currentdataOff++; -			} -			if(i + 2 < byteRange.length) { -				exclude_range[i] = offset + size; // exclude start -				exclude_range[i+1] = byteRange[i+2] - 1; // exclude end -			} -		} +	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 diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/ISLConnector.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/ISLConnector.java index 82571720..3c0c1b84 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/ISLConnector.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/ISLConnector.java @@ -1,5 +1,6 @@  package at.gv.egiz.sl.util; +import at.gv.egiz.pdfas.common.exceptions.PDFIOException;  import at.gv.egiz.pdfas.common.exceptions.PdfAsException;  import at.gv.egiz.sl.CreateCMSSignatureRequestType;  import at.gv.egiz.sl.CreateCMSSignatureResponseType; @@ -10,6 +11,6 @@ public interface ISLConnector {  	public InfoboxReadRequestType createInfoboxReadRequest();  	public InfoboxReadResponseType sendInfoboxReadRequest(InfoboxReadRequestType request)  throws PdfAsException; -	public CreateCMSSignatureRequestType createCMSRequest(byte[] signatureData, int[] byteRange); +	public CreateCMSSignatureRequestType createCMSRequest(byte[] signatureData, int[] byteRange) throws PDFIOException;  	public CreateCMSSignatureResponseType sendCMSRequest(CreateCMSSignatureRequestType request) throws PdfAsException;  } | 
