diff options
author | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2013-10-02 10:28:30 +0200 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2013-10-02 10:28:30 +0200 |
commit | 0876981fd70fdab07f7c3e1666cf77071b5fe03d (patch) | |
tree | 0661571d1d757383fee936d1c4648d2c31b43ddb /pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/VerifierDispatcher.java | |
parent | add4460d9619f3586a02ae0d8c028f01903494bc (diff) | |
download | pdf-as-4-0876981fd70fdab07f7c3e1666cf77071b5fe03d.tar.gz pdf-as-4-0876981fd70fdab07f7c3e1666cf77071b5fe03d.tar.bz2 pdf-as-4-0876981fd70fdab07f7c3e1666cf77071b5fe03d.zip |
+ added PKCS7 detached siganture standard via keystore
+ added simple verification implementation
Diffstat (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/VerifierDispatcher.java')
-rw-r--r-- | pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/VerifierDispatcher.java | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/VerifierDispatcher.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/VerifierDispatcher.java new file mode 100644 index 00000000..0de3a71e --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/VerifierDispatcher.java @@ -0,0 +1,61 @@ +package at.gv.egiz.pdfas.lib.impl.verify; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.gv.egiz.pdfas.common.exceptions.PdfAsException; +import at.gv.egiz.pdfas.common.settings.ISettings; + +public class VerifierDispatcher { + + private static final Logger logger = LoggerFactory.getLogger(VerifierDispatcher.class); + + public static final String currentClass = "at.gv.egiz.pdfas.sigs.pkcs7detached.PKCS7DetachedVerifier"; + + public Map<String, HashMap<String, IVerifyFilter>> filterMap = new HashMap<String, HashMap<String, IVerifyFilter>>(); + + public VerifierDispatcher(ISettings settings) { + // TODO: read config build verify filter + try { + Class<? extends IVerifyFilter> cls = (Class<? extends IVerifyFilter>) Class.forName(currentClass); + IVerifyFilter fitler = cls.newInstance(); + List<FilterEntry> entries = fitler.getFiters(); + Iterator<FilterEntry> it = entries.iterator(); + while(it.hasNext()) { + FilterEntry entry = it.next(); + HashMap<String, IVerifyFilter> filters = filterMap.get(entry.getFilter().getName()); + if(filters == null) { + filters = new HashMap<String, IVerifyFilter>(); + filterMap.put(entry.getFilter().getName(), filters); + } + + IVerifyFilter oldFilter = filters.get(entry.getSubFilter().getName()); + + if(oldFilter != null) { + throw new PdfAsException("Filter allready registered"); + } + + filters.put(entry.getSubFilter().getName(), fitler); + logger.debug("Registered Filter: " + cls.getName() + " for " + entry.getFilter().getName() + "/" + entry.getSubFilter().getName()); + } + } catch(Throwable e) { + e.printStackTrace(); + } + + } + + public IVerifyFilter getVerifier(String filter, String subfilter) { + HashMap<String, IVerifyFilter> filters = filterMap.get(filter); + if(filters == null) { + return null; + } + + return filters.get(subfilter); + } +} |