package at.gv.egovernment.moa.spss.server.iaik.config; import java.security.cert.X509Certificate; import java.util.Date; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import iaik.pki.revocation.RevocationConfiguration; import at.gv.egovernment.moa.util.BoolUtils; import at.gv.egovernment.moa.spss.server.config.DistributionPoint; import at.gv.egovernment.moa.spss.server.config.ConfigurationProvider; /** * An implementation of the RevocationConfiguration interface using * MOA configuration data. * * @see iaik.pki.revocation.RevocationConfiguration * @author Patrick Peck * @version $Id$ */ public class RevocationConfigurationImpl extends AbstractObservableConfiguration implements RevocationConfiguration { /** The ConfigurationProvider to read the configuration data * from. */ private ConfigurationProvider config; /** * Create a new RevocationConfigurationImpl. * * @param config The underlying MOA configuration containing the configuration * data. */ public RevocationConfigurationImpl(ConfigurationProvider config) { this.config = config; } /** * @see iaik.pki.revocation.RevocationConfiguration#getAlternativeDistributionPoints(java.security.cert.X509Certificate, java.util.Date) */ public Set getAlternativeDistributionPoints( X509Certificate cert, Date date) { Set configuredPoints = config.getCRLDP(cert); Set distributionPoints = new HashSet(); Iterator iter; for (iter = configuredPoints.iterator(); iter.hasNext();) { DistributionPoint dp = (DistributionPoint) iter.next(); distributionPoints.add(new CRLDistributionPointAdapter(dp)); } return distributionPoints; } /** * @see iaik.pki.revocation.RevocationConfiguration#archiveRevocationInfo(java.lang.String, java.lang.String) */ public boolean archiveRevocationInfo(String type, String uri) { String info = config.getGenericConfiguration( ConfigurationProvider.ARCHIVE_REVOCATION_INFO_PROPERTY, "false"); return info != null ? BoolUtils.valueOf(info) : false; } }