diff options
| author | Thomas Lenz <thomas.lenz@egiz.gv.at> | 2018-07-25 08:06:36 +0200 | 
|---|---|---|
| committer | Thomas Lenz <thomas.lenz@egiz.gv.at> | 2018-07-25 08:06:36 +0200 | 
| commit | e5f2601e931594572f88bb402343e39023dab939 (patch) | |
| tree | 5b48ca1be4dbb0a7041b8e7bf04dc1f8f937b46e /pdf-as-web/src/main/java/at/gv/egiz/pdfas | |
| parent | 5d90a82062472d9c87eacc90963529309abecb18 (diff) | |
| download | pdf-as-4-e5f2601e931594572f88bb402343e39023dab939.tar.gz pdf-as-4-e5f2601e931594572f88bb402343e39023dab939.tar.bz2 pdf-as-4-e5f2601e931594572f88bb402343e39023dab939.zip | |
update to SL2.0 v0.61
fix a bug in SL2.0 impl for createCAdES
Diffstat (limited to 'pdf-as-web/src/main/java/at/gv/egiz/pdfas')
| -rw-r--r-- | pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java | 31 | 
1 files changed, 27 insertions, 4 deletions
| diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java index 6eb80650..75249e78 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java @@ -60,6 +60,8 @@ import org.apache.http.entity.ContentType;  import org.slf4j.Logger;  import org.slf4j.LoggerFactory; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement;  import com.google.gson.JsonObject;  import at.gv.egiz.pdfas.api.ws.PDFASSignParameters; @@ -67,6 +69,7 @@ import at.gv.egiz.pdfas.api.ws.PDFASSignParameters.Connector;  import at.gv.egiz.pdfas.api.ws.PDFASSignResponse;  import at.gv.egiz.pdfas.api.ws.PDFASVerificationResponse;  import at.gv.egiz.pdfas.common.exceptions.PDFASError; +import at.gv.egiz.pdfas.common.utils.PDFUtils;  import at.gv.egiz.pdfas.lib.api.ByteArrayDataSource;  import at.gv.egiz.pdfas.lib.api.Configuration;  import at.gv.egiz.pdfas.lib.api.IConfigurationConstants; @@ -1190,9 +1193,24 @@ public class PdfAsHelper {  			} else if (slConnector instanceof SL20Connector) {				  				//convert byte range -				List<String> byteRanges = new ArrayList<String>(); -				for (int el : statusRequest.getSignatureDataByteRange()) -					byteRanges.add(String.valueOf(el)); + +				int[] exclude_range = PDFUtils.buildExcludeRange(statusRequest.getSignatureDataByteRange()); +				logger.info("Exclude Byte Range: " + exclude_range[0] + " " + exclude_range[1]); +				 +				List<JsonElement> byteRanges = new ArrayList<JsonElement>(); +				if (statusRequest.getSignatureDataByteRange().length % 2 != 0) { +					logger.warn("ByteRange is not a set of pairs. Something is maybe suspect"); +					 +				} +				 +				for (int i=0; i<exclude_range.length/2; i++) { +					JsonArray el = new JsonArray(); +					el.add(exclude_range[2*i]); +					el.add(exclude_range[2*i + 1]); +					byteRanges.add(el); +										 +				} +					  				java.security.cert.X509Certificate x5cEnc = null;  				if (WebConfiguration.isSL20EncryptionEnabled() && joseTools != null) @@ -1203,10 +1221,15 @@ public class PdfAsHelper {  				if (pack.getRequestType().getPAdESFlag() != null)  					padesCompatibel = pack.getRequestType().getPAdESFlag(); +				byte[] data = PDFUtils.blackOutSignature(statusRequest.getSignatureData(),  +						statusRequest.getSignatureDataByteRange()); +				  				JsonObject createCAdESSigParams =   						SL20JSONBuilderUtils.createCreateCAdESCommandParameters(  								pack.getRequestType().getKeyboxIdentifier(),  -								statusRequest.getSignatureData(),  +								data, +								null, +								SL20Constants.SL20_COMMAND_PARAM_CREATE_SIG_CADES_CONTENTMODE_DETACHED,  								pack.getRequestType().getDataObject().getMetaInfo().getMimeType(),   								padesCompatibel ,   								byteRanges,  | 
