/** * */ package at.knowcenter.wag.egov.egiz.sig.sigkz; import at.knowcenter.wag.egov.egiz.PdfASID; import at.knowcenter.wag.egov.egiz.exceptions.ConnectorException; import at.knowcenter.wag.egov.egiz.exceptions.InvalidIDException; import at.knowcenter.wag.egov.egiz.framework.SignatorFactory; import at.knowcenter.wag.egov.egiz.sig.connectors.bku.SignSignatureObject; import at.knowcenter.wag.egov.egiz.sig.sigid.DetachedLocRefMOAIdFormatter; import at.knowcenter.wag.egov.egiz.sig.sigid.HotfixIdFormatter; /** * @author wprinz * */ public final class SigKZIDHelper { public static boolean isTextual(PdfASID sig_kz) { if (sig_kz == null) { // Old signature -> must be textual. return true; } // new signauture -> sig_kz decides return sig_kz.getType().equals(SignatorFactory.TYPE_TEXTUAL); } public static boolean isBinary(PdfASID sig_kz) { return ! isTextual(sig_kz); } public static boolean isMOASigned(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; } // :begin if(sig_id == null) return true; if(sig_id.equals("")) return true; // :end // new signature - sig_id decides String [] ids = sig_id.split("@"); String prefix = ids[0]; if (prefix.equals(DetachedLocRefMOAIdFormatter.SIG_ID_PREFIX)) //if(!prefix.equals("")) { return true; } return false; } public static boolean isMOASigned(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) { e.printStackTrace(); } } return isMOASigned(kz, sig_id); } public static boolean isOldBKU(PdfASID sig_kz, String sig_id) throws ConnectorException { if (sig_kz == null) { return true; } if (sig_kz.getVersion().equals(SignatorFactory.VERSION_1_0_0)) { if (sig_id == null) { throw new ConnectorException(310, "The SIG_ID is null - so this isn't a BKU at all."); } String[] sig_id_parts = sig_id.split("@"); if (sig_id_parts.length == 2) { return true; } if (sig_id_parts[0].equals(HotfixIdFormatter.SIG_ID_PREFIX)) { return false; } throw new ConnectorException(310, "The SIG_KZ version is 1.0.0, but SIG_ID is neither MOA nor Old base64 nor Hotfix base64 ???'"); } return false; } public static boolean isOldBKU(SignSignatureObject so) throws ConnectorException { 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) { e.printStackTrace(); } } return isOldBKU(kz, sig_id); } }