From 1be82e61c0acf4d7380dcee3e3fcaaa8a8386f1b Mon Sep 17 00:00:00 2001
From: Alexander Marsalek <amarsalek@iaik.tugraz.at>
Date: Wed, 14 Apr 2021 19:05:02 +0200
Subject: added sbp check

---
 .../settings/DefaultSignatureProfileSettings.java  |  3 +++
 .../utils/CheckSignatureBlockParameters.java       | 31 ++++++++++++++++++++++
 2 files changed, 34 insertions(+)
 create mode 100644 pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/CheckSignatureBlockParameters.java

(limited to 'pdf-as-common/src')

diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/settings/DefaultSignatureProfileSettings.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/settings/DefaultSignatureProfileSettings.java
index 6f1519a4..3d70fe96 100644
--- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/settings/DefaultSignatureProfileSettings.java
+++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/settings/DefaultSignatureProfileSettings.java
@@ -65,6 +65,9 @@ public class DefaultSignatureProfileSettings {
 	
 	public static final String VALUE_SIG_DATE_DEFAULT = "yyyy-MM-dd'T'HH:mm:ssXXX";
 
+	public static final String SIG_BLOCK_PARAMETER_DEFAULT_KEY_REGEX = "^([A-za-z]){1,20}$";
+	public static final String SIG_BLOCK_PARAMETER_DEFAULT_VALUE_REGEX = "^([\\p{Print}]){1,100}$";
+
 	static {
 
 		profileSettings.put(KEY_SIG_SUBJECT, new SignatureProfileEntry(KEY_SIG_SUBJECT, KEY_SIG_SUBJECT_DEFAULT, VALUE_SIG_SUBJECT_DEFAULT) );
diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/CheckSignatureBlockParameters.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/CheckSignatureBlockParameters.java
new file mode 100644
index 00000000..c2e6b81d
--- /dev/null
+++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/CheckSignatureBlockParameters.java
@@ -0,0 +1,31 @@
+package at.gv.egiz.pdfas.common.utils;
+
+import at.gv.egiz.pdfas.common.settings.DefaultSignatureProfileSettings;
+
+import java.util.Map;
+
+public class CheckSignatureBlockParameters {
+
+  public static boolean checkSignatureBlockParameterMapIsValid(Map<String, String> map, String keyRegex,
+                                                               String valueRegex) {
+    if(keyRegex == null || keyRegex.length() == 0) {
+      keyRegex = DefaultSignatureProfileSettings.SIG_BLOCK_PARAMETER_DEFAULT_KEY_REGEX;
+    }
+    if(valueRegex == null || valueRegex.length() == 0) {
+      valueRegex = DefaultSignatureProfileSettings.SIG_BLOCK_PARAMETER_DEFAULT_VALUE_REGEX;
+    }
+  for(String key : map.keySet()){
+    if(isValid(key, keyRegex) == false)
+      return false;
+    if(isValid(map.get(key), valueRegex) == false)
+      return false;
+  }
+
+    return true;
+  }
+
+  public static boolean isValid(String s, String regex) {
+    return s.matches(regex);
+  }
+
+}
-- 
cgit v1.2.3