diff options
author | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2014-10-03 10:18:51 +0200 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2014-10-03 10:18:51 +0200 |
commit | 6aabd24f0e39338b63402dd59b006c05997b2658 (patch) | |
tree | a78d6387ccb1a9ca565b089e4e01cb0102ad7830 /pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/sig/sigkz/SigKZIDHelper.java | |
parent | 707a1511f9771b97bb630cf46d9b9d2c7d222ed9 (diff) | |
download | pdf-as-3-6aabd24f0e39338b63402dd59b006c05997b2658.tar.gz pdf-as-3-6aabd24f0e39338b63402dd59b006c05997b2658.tar.bz2 pdf-as-3-6aabd24f0e39338b63402dd59b006c05997b2658.zip |
XAdES 1.4 changes for MOA
Diffstat (limited to 'pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/sig/sigkz/SigKZIDHelper.java')
-rw-r--r-- | pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/sig/sigkz/SigKZIDHelper.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/sig/sigkz/SigKZIDHelper.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/sig/sigkz/SigKZIDHelper.java index 5a20a30..87d3aae 100644 --- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/sig/sigkz/SigKZIDHelper.java +++ b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/sig/sigkz/SigKZIDHelper.java @@ -101,9 +101,39 @@ public final class SigKZIDHelper {
return true;
}
+
return false;
}
+ public static boolean isMOAXAdES14Signed(PdfASID sig_kz, String sig_id)
+ {
+ if (sig_kz == null || sig_kz.getVersion().equals(SignatorFactory.VERSION_1_0_0))
+ {
+ // old signature - if sig_id is null this means MOA
+
+ return sig_id == null;
+ }
+
+ // According to the specification no signature parameter means MOA signature.
+ // Fixed: empty ("") or blank (" "), non-null signature parameter should also be regarded as "no signature parameter"
+// if (sig_id != null)
+ if (StringUtils.isBlank(sig_id))
+ return true;
+
+ // new signature - sig_id decides
+ String [] ids = sig_id.split("@");
+ // dferbas
+ String prefix = (ids[0].split(":"))[0];
+
+
+ if (prefix.equals(DetachedLocRefMOAIdFormatter.SIG_ID_X14_PREFIX))
+ {
+ return true;
+ }
+
+ return false;
+ }
+
public static boolean isMOASigned(SignSignatureObject so)
{
String sig_kz = so.kz;
@@ -123,6 +153,26 @@ public final class SigKZIDHelper return isMOASigned(kz, sig_id);
}
+
+ public static boolean isMOAXAdES14Signed(SignSignatureObject so)
+ {
+ String sig_kz = so.kz;
+ String sig_id = so.id;
+ PdfASID kz = null;
+ if (sig_kz != null)
+ {
+ try
+ {
+ kz = new PdfASID(sig_kz);
+ }
+ catch (InvalidIDException e)
+ {
+ logger.error(e.getMessage(), e);
+ }
+ }
+
+ return isMOAXAdES14Signed(kz, sig_id);
+ }
/**
* @author tknall
|