From 6aabd24f0e39338b63402dd59b006c05997b2658 Mon Sep 17 00:00:00 2001 From: Andreas Fitzek Date: Fri, 3 Oct 2014 10:18:51 +0200 Subject: XAdES 1.4 changes for MOA --- .../wag/egov/egiz/sig/sigkz/SigKZIDHelper.java | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/sig/sigkz/SigKZIDHelper.java') 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 -- cgit v1.2.3