All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.fitbur.bouncycastle.jce.provider.X509StoreLDAPAttrCerts Maven / Gradle / Ivy

There is a newer version: 1.0.0
Show newest version
package com.fitbur.bouncycastle.jce.provider;

import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

import com.fitbur.bouncycastle.jce.X509LDAPCertStoreParameters;
import com.fitbur.bouncycastle.util.Selector;
import com.fitbur.bouncycastle.util.StoreException;
import com.fitbur.bouncycastle.x509.X509AttributeCertStoreSelector;
import com.fitbur.bouncycastle.x509.X509StoreParameters;
import com.fitbur.bouncycastle.x509.X509StoreSpi;
import com.fitbur.bouncycastle.x509.util.LDAPStoreHelper;

/**
 * A SPI implementation of Bouncy Castle X509Store for getting
 * attribute certificates from an LDAP directory.
 *
 * @see com.fitbur.bouncycastle.x509.X509Store
 */
public class X509StoreLDAPAttrCerts extends X509StoreSpi
{

    private LDAPStoreHelper helper;

    public X509StoreLDAPAttrCerts()
    {
    }

    /**
     * Initializes this LDAP attribute cert store implementation.
     *
     * @param parameters X509LDAPCertStoreParameters.
     * @throws IllegalArgumentException if params is not an instance of
     *                                  X509LDAPCertStoreParameters.
     */
    public void engineInit(X509StoreParameters parameters)
    {
        if (!(parameters instanceof X509LDAPCertStoreParameters))
        {
            throw new IllegalArgumentException(
                "Initialization parameters must be an instance of "
                    + X509LDAPCertStoreParameters.class.getName() + ".");
        }
        helper = new LDAPStoreHelper((X509LDAPCertStoreParameters)parameters);
    }

    /**
     * Returns a collection of matching attribute certificates from the LDAP
     * location.
     * 

* The selector must be a of type * X509AttributeCertStoreSelector. If it is not an empty * collection is returned. *

*

* The subject and the serial number should be reasonable criterias for a * selector. * * @param selector The selector to use for finding. * @return A collection with the matches. * @throws StoreException if an exception occurs while searching. */ public Collection engineGetMatches(Selector selector) throws StoreException { if (!(selector instanceof X509AttributeCertStoreSelector)) { return Collections.EMPTY_SET; } X509AttributeCertStoreSelector xselector = (X509AttributeCertStoreSelector)selector; Set set = new HashSet(); set.addAll(helper.getAACertificates(xselector)); set.addAll(helper.getAttributeCertificateAttributes(xselector)); set.addAll(helper.getAttributeDescriptorCertificates(xselector)); return set; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy