aboutsummaryrefslogtreecommitdiff
path: root/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/CMSSignatureCreationInvoker.java
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2015-12-04 13:12:24 +0100
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2015-12-04 13:12:24 +0100
commit7510ab5173001711ecb5d6c8834878e7cce63ff9 (patch)
treee07bba24e87b9b3d1e8d8275c68809a59c3e067d /moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/CMSSignatureCreationInvoker.java
parent191ba3411f2db0a48ae8d4243926b33a063bf769 (diff)
downloadmoa-sig-7510ab5173001711ecb5d6c8834878e7cce63ff9.tar.gz
moa-sig-7510ab5173001711ecb5d6c8834878e7cce63ff9.tar.bz2
moa-sig-7510ab5173001711ecb5d6c8834878e7cce63ff9.zip
CMS verification
Diffstat (limited to 'moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/CMSSignatureCreationInvoker.java')
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/CMSSignatureCreationInvoker.java40
1 files changed, 31 insertions, 9 deletions
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/CMSSignatureCreationInvoker.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/CMSSignatureCreationInvoker.java
index 718673a..df04434 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/CMSSignatureCreationInvoker.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/CMSSignatureCreationInvoker.java
@@ -50,6 +50,8 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.apache.commons.io.IOUtils;
+
import at.gv.egovernment.moa.logging.LogMsg;
import at.gv.egovernment.moa.logging.Logger;
import at.gv.egovernment.moa.spss.MOAApplicationException;
@@ -71,6 +73,7 @@ import at.gv.egovernment.moa.spss.server.iaik.cmssign.CMSSignatureCreationProfil
import at.gv.egovernment.moa.spss.server.logging.TransactionId;
import at.gv.egovernment.moa.spss.server.transaction.TransactionContext;
import at.gv.egovernment.moa.spss.server.transaction.TransactionContextManager;
+import at.gv.egovernment.moa.spss.util.FilteredOutputStream;
import at.gv.egovernment.moa.spss.util.MessageProvider;
import at.gv.egovernment.moa.util.Constants;
@@ -238,25 +241,44 @@ public class CMSSignatureCreationInvoker {
// now write the data to be signed to the signedDataStream
+ //
int byteRead;
+ /*
BigDecimal counter = new BigDecimal("0");
BigDecimal one = new BigDecimal("1");
+ ByteArrayOutputStream filteredStream = new ByteArrayOutputStream();
+
while ((byteRead=contentIs.read()) >= 0) {
//System.out.println("counterXX: " + counter);
- if (inRange(counter, dataobject)) {
- //System.out.println("Lösche...");
- // set byte to 0x00
- signedDataStream.write(0);
- }
- else
- signedDataStream.write(byteRead);
+ // Wrong behaviour < 3
+ // excluded bytes should not be part of the signature as 0 bytes
+ // they should be not part of the signature at all!
+
+// if (inRange(counter, dataobject))
+// filteredStream.write(0);
+// else
+// filteredStream.write(byteRead);
+//
- counter = counter.add(one);
+ // correct behaviour
+ if (!inRange(counter, dataobject)) {
+ filteredStream.write(byteRead);
+ }
+
+ counter = counter.add(one);
}
+ byte[] data = filteredStream.toByteArray();
+ signedDataStream.write(data, 0, data.length);
+ */
+ // Stream based, this should have a better performance
+ FilteredOutputStream filteredOuputStream = new FilteredOutputStream(
+ signedDataStream, 4096, dataobject.getExcludeByteRangeFrom(),
+ dataobject.getExcludeByteRangeTo());
-
+ IOUtils.copyLarge(contentIs, filteredOuputStream);
+ filteredOuputStream.flush();
// byte[] buf = new byte[4096];
// int bytesRead;
// while ((bytesRead = contentIs.read(buf)) >= 0) {