aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators
diff options
context:
space:
mode:
authornetconomy <netconomy@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>2007-08-17 06:10:56 +0000
committernetconomy <netconomy@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>2007-08-17 06:10:56 +0000
commit3d982813b34f6f230baf4a467cdc37ec92a77595 (patch)
tree85319d39cee2ded1bb7a2b2dd9e8ea37e3778248 /src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators
parent07f6c8f33b2d700276fe6ec6339ff836c8710131 (diff)
downloadpdf-as-3-3d982813b34f6f230baf4a467cdc37ec92a77595.tar.gz
pdf-as-3-3d982813b34f6f230baf4a467cdc37ec92a77595.tar.bz2
pdf-as-3-3d982813b34f6f230baf4a467cdc37ec92a77595.zip
Performance
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@167 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c
Diffstat (limited to 'src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators')
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/BinaryVerificator_1_0_0.java50
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/BinaryVerificator_1_1_0.java24
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/TextualVerificator_1_0_0.java7
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/TextualVerificator_pdfasold.java3
4 files changed, 62 insertions, 22 deletions
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/BinaryVerificator_1_0_0.java b/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/BinaryVerificator_1_0_0.java
index 469fcee..b389a25 100644
--- a/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/BinaryVerificator_1_0_0.java
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/BinaryVerificator_1_0_0.java
@@ -22,6 +22,10 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import at.gv.egiz.pdfas.exceptions.ErrorCode;
+import at.gv.egiz.pdfas.framework.input.PdfDataSource;
+import at.gv.egiz.pdfas.impl.input.ByteArrayPdfDataSourceImpl;
+
import org.apache.log4j.Logger;
import at.knowcenter.wag.egov.egiz.PdfASID;
@@ -52,11 +56,12 @@ import at.knowcenter.wag.exactparser.parsing.results.NumberParseResult;
import at.knowcenter.wag.exactparser.parsing.results.ObjectParseResult;
import at.knowcenter.wag.exactparser.parsing.results.ParseResult;
-
/**
* The BinaryVerificator parses the EGIT Dictionary and extracts the signature
* holder from it.
*
+ * @deprecated moved to the new framework
+ *
* @author wprinz
*/
public class BinaryVerificator_1_0_0 implements Verificator
@@ -67,6 +72,16 @@ public class BinaryVerificator_1_0_0 implements Verificator
public static final PdfASID MY_ID = new PdfASID(SignatorFactory.VENDOR, SignatorFactory.TYPE_BINARY, SignatorFactory.VERSION_1_0_0);
/**
+ * Use this to override the MY_ID field.
+ *
+ * @return Returns the Id of this Verificator.
+ */
+ protected PdfASID getMyId()
+ {
+ return MY_ID;
+ }
+
+ /**
* The /ODS key in the EGIZ Dict.
*/
public static final byte[] EGIZ_ODS_NAME = new byte[] { 'O', 'D', 'S' };
@@ -79,20 +94,17 @@ public class BinaryVerificator_1_0_0 implements Verificator
/**
* The /ByteRange key in the EGIZ Dict.
*/
- public static final byte[] EGIZ_BYTE_RANGE_NAME = new byte[] { 'B', 'y', 't',
- 'e', 'R', 'a', 'n', 'g', 'e' };
+ public static final byte[] EGIZ_BYTE_RANGE_NAME = new byte[] { 'B', 'y', 't', 'e', 'R', 'a', 'n', 'g', 'e' };
/**
* The /replaces key in the EGIZ Dict.
*/
- public static final byte[] EGIZ_REPLACES_NAME = new byte[] { 'r', 'e', 'p',
- 'l', 'a', 'c', 'e', 's' };
+ public static final byte[] EGIZ_REPLACES_NAME = new byte[] { 'r', 'e', 'p', 'l', 'a', 'c', 'e', 's' };
/**
* The /encodings key in the EGIZ Dict.
*/
- public static final byte[] EGIZ_ENCODINGS_NAME = new byte[] { 'e', 'n', 'c',
- 'o', 'd', 'i', 'n', 'g', 's' };
+ public static final byte[] EGIZ_ENCODINGS_NAME = new byte[] { 'e', 'n', 'c', 'o', 'd', 'i', 'n', 'g', 's' };
/**
* The /Cert key in the EGIZ Dict.
@@ -116,13 +128,12 @@ public class BinaryVerificator_1_0_0 implements Verificator
* @see at.knowcenter.wag.egov.egiz.framework.Verificator#parseBlock(byte[],
* at.knowcenter.wag.exactparser.parsing.results.FooterParseResult, int)
*/
- public List parseBlock(byte[] pdf, FooterParseResult block,
- int start_of_whole_block) throws PresentableException
+ public List parseBlock(byte[] pdf, FooterParseResult block, int start_of_whole_block) throws PresentableException
{
int egiz_index = PDFUtils.indexOfName(pdf, block.tpr.dpr.names, VerificationFilter.EGIZ_DICT_NAME);
if (egiz_index < 0)
{
- throw new PDFDocumentException(301, "egiz_index = " + egiz_index);
+ throw new PDFDocumentException(ErrorCode.COULDNT_VERIFY, "egiz_index = " + egiz_index);
}
IndirectObjectReferenceParseResult egiz_dict_iorpr = (IndirectObjectReferenceParseResult) block.tpr.dpr.values.get(egiz_index);
@@ -140,7 +151,7 @@ public class BinaryVerificator_1_0_0 implements Verificator
PdfASID kz = null;
String kz_string = VerificationFilter.restoreKZ(pdf, kz_apr);
kz = new PdfASID(kz_string);
- if (!kz_string.equals(MY_ID.toString()))
+ if (!kz_string.equals(getMyId().toString()))
{
logger_.warn("Warning: Kennzeichnung not recognized:" + kz_string);
}
@@ -223,7 +234,9 @@ public class BinaryVerificator_1_0_0 implements Verificator
// bbi);
byte[] signed_pdf = BinarySignature.prepareDataToSign(pdf, byte_ranges);
- //String signed_text = BinarySignature.retrieveSignableTextFromData(signed_pdf, signed_pdf.length); // has been moved into the BinarySignatureHolder
+ // String signed_text =
+ // BinarySignature.retrieveSignableTextFromData(signed_pdf,
+ // signed_pdf.length); // has been moved into the BinarySignatureHolder
SignatureObject signature_object = new SignatureObject();
String default_type = SettingsReader.getInstance().getValueFromKey(SignatureTypes.DEFAULT_TYPE);
@@ -300,8 +313,9 @@ public class BinaryVerificator_1_0_0 implements Verificator
}
}
- // FIXME make better
- BinarySignatureHolder signature_holder = new BinarySignatureHolder(signed_pdf, signed_pdf.length, signature_object);
+ // FIXME This blows up the session !!!!!
+ PdfDataSource ds = new ByteArrayPdfDataSourceImpl(signed_pdf, signed_pdf.length);
+ BinarySignatureHolder signature_holder = new BinarySignatureHolder(ds, signature_object);
List holders = new ArrayList();
holders.add(signature_holder);
@@ -322,8 +336,7 @@ public class BinaryVerificator_1_0_0 implements Verificator
* @throws PDFDocumentException
* Thrown, if the key doesn't exist in the dictionary.
*/
- protected ParseResult getRequiredValueOfKey(byte[] pdf,
- DictionaryParseResult egiz_dict, byte[] name) throws PDFDocumentException
+ protected ParseResult getRequiredValueOfKey(byte[] pdf, DictionaryParseResult egiz_dict, byte[] name) throws PDFDocumentException
{
final int index = PDFUtils.indexOfName(pdf, egiz_dict.names, name);
checkIndex(index);
@@ -343,7 +356,7 @@ public class BinaryVerificator_1_0_0 implements Verificator
{
if (name_index < 0)
{
- throw new PDFDocumentException(301, "The name wasn't found in the egiz dict.");
+ throw new PDFDocumentException(ErrorCode.COULDNT_VERIFY, "The name wasn't found in the egiz dict.");
}
}
@@ -359,8 +372,7 @@ public class BinaryVerificator_1_0_0 implements Verificator
* @return Returns the key's value, or null if the dictionary didn't contain
* that key.
*/
- protected ParseResult getValueOfKey(byte[] pdf,
- DictionaryParseResult egiz_dict, byte[] name)
+ protected ParseResult getValueOfKey(byte[] pdf, DictionaryParseResult egiz_dict, byte[] name)
{
final int index = PDFUtils.indexOfName(pdf, egiz_dict.names, name);
if (index < 0)
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/BinaryVerificator_1_1_0.java b/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/BinaryVerificator_1_1_0.java
new file mode 100644
index 0000000..efbc4f8
--- /dev/null
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/BinaryVerificator_1_1_0.java
@@ -0,0 +1,24 @@
+/**
+ *
+ */
+package at.knowcenter.wag.egov.egiz.framework.verificators;
+
+import at.knowcenter.wag.egov.egiz.PdfASID;
+import at.knowcenter.wag.egov.egiz.framework.SignatorFactory;
+
+/**
+ * @author wprinz
+ *
+ */
+public class BinaryVerificator_1_1_0 extends BinaryVerificator_1_0_0
+{
+ public static final PdfASID MY_ID = new PdfASID(SignatorFactory.VENDOR, SignatorFactory.TYPE_BINARY, SignatorFactory.VERSION_1_1_0);
+
+ /**
+ * @see at.knowcenter.wag.egov.egiz.framework.verificators.BinaryVerificator_1_0_0#getMyId()
+ */
+ protected PdfASID getMyId()
+ {
+ return MY_ID;
+ }
+}
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/TextualVerificator_1_0_0.java b/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/TextualVerificator_1_0_0.java
index fccdfd0..176c0f0 100644
--- a/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/TextualVerificator_1_0_0.java
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/TextualVerificator_1_0_0.java
@@ -17,6 +17,7 @@
*/
package at.knowcenter.wag.egov.egiz.framework.verificators;
+import java.io.ByteArrayInputStream;
import java.util.ArrayList;
import java.util.List;
@@ -49,6 +50,8 @@ import at.knowcenter.wag.exactparser.parsing.results.FooterParseResult;
* Note that it will not find old style blocks as they don't have the SIG_KZ.
* </p>
*
+ * @deprecated moved to the new framework
+ *
* @author wprinz
*/
public class TextualVerificator_1_0_0 implements Verificator
@@ -78,7 +81,7 @@ public class TextualVerificator_1_0_0 implements Verificator
public List parseBlock(byte[] pdf, FooterParseResult block,
int start_of_whole_block) throws PresentableException
{
- String block_text = PdfAS.extractNormalizedTextTextual(pdf, block.next_index);
+ String block_text = PdfAS.extractNormalizedTextTextual(new ByteArrayInputStream(pdf), block.next_index);
logger_.debug("Scanning block:");
//List signature_holders = PdfAS.extractSignatureHoldersTextual(block_text, false);
@@ -97,7 +100,7 @@ public class TextualVerificator_1_0_0 implements Verificator
{
text_holder_candidates = new ArrayList();
- String prev_text = PdfAS.extractNormalizedTextTextual(pdf, start_of_whole_block);
+ String prev_text = PdfAS.extractNormalizedTextTextual(new ByteArrayInputStream(pdf), start_of_whole_block);
logger_.debug("Scanning prev block:");
//List prev_signature_holders = PdfAS.extractSignatureHoldersTextual(prev_text, false);
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/TextualVerificator_pdfasold.java b/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/TextualVerificator_pdfasold.java
index 5008ed3..ea84e7e 100644
--- a/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/TextualVerificator_pdfasold.java
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/framework/verificators/TextualVerificator_pdfasold.java
@@ -17,6 +17,7 @@
*/
package at.knowcenter.wag.egov.egiz.framework.verificators;
+import java.io.ByteArrayInputStream;
import java.util.List;
import org.apache.log4j.Logger;
@@ -60,7 +61,7 @@ public class TextualVerificator_pdfasold implements Verificator
throw new PDFDocumentException(201, "The PDF-AS-old Verificator can only be applied on original documents.");
}
- String normalized_text = PdfAS.extractNormalizedTextTextual(pdf, block.next_index);
+ String normalized_text = PdfAS.extractNormalizedTextTextual(new ByteArrayInputStream(pdf), block.next_index);
logger_.debug("Scanning block:");
List signature_holders = PdfAS.extractSignatureHoldersTextual(normalized_text, true);