Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography 1.21
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.bouncycastle.jce.cert
Class CertStore

    java.lang.Object
      |
      +--org.bouncycastle.jce.cert.CertStore

public class CertStore
extends java.lang.Object

A class for retrieving `Certificate`s and `CRL`s from a repository.
This class uses a provider-based architecture, as described in the Java Cryptography Architecture. To create a `CertStore`, call one of the static `getInstance` methods, passing in the type of `CertStore` desired, any applicable initialization parameters and optionally the name of the provider desired.
Once the `CertStore` has been created, it can be used to retrieve `Certificate`s and `CRL`s by calling its `getCertificates` and `getCRLs` methods.
Unlike a `KeyStore`, which provides access to a cache of private keys and trusted certificates, a `CertStore` is designed to provide access to a potentially vast repository of untrusted certificates and CRLs. For example, an LDAP implementation of `CertStore` provides access to certificates and CRLs stored in one or more directories using the LDAP protocol and the schema as defined in the RFC service attribute. See Appendix A in the Java Certification Path API Programmer's Guide for more information about standard `CertStore` types.
Concurrent Access
All public methods of `CertStore` objects must be thread-safe. That is, multiple threads may concurrently invoke these methods on a single `CertStore` object (or more than one) with no ill effects. This allows a `CertPathBuilder` to search for a CRL while simultaneously searching for further certificates, for instance.
The static methods of this class are also guaranteed to be thread-safe. Multiple threads may concurrently invoke the static methods defined in this class with no ill effects.
Uses `CertUtil` to actualiy load the SPI classes.

See Also:
  `CertUtil`

Constructor Summary
`protected` | `CertStore(CertStoreSpi storeSpi, java.security.Provider provider, java.lang.String type, CertStoreParameters params)` Creates a `CertStore` object of the given type, and encapsulates the given provider implementation (SPI object) in it.

Method Summary
`java.util.Collection` | `getCertificates(CertSelector selector)` Returns a `Collection` of `Certificate`s that match the specified selector.
`CertStoreParameters` | `getCertStoreParameters()` Returns the parameters used to initialize this `CertStore`.
`java.util.Collection` | `getCRLs(CRLSelector selector)` Returns a `Collection` of `CRL`s that match the specified selector.
`static java.lang.String` | `getDefaultType()` Returns the default `CertStore` type as specified in the Java security properties file, or the string "LDAP" if no such property exists.
`static CertStore` | `getInstance(java.lang.String type, CertStoreParameters params)` Returns a `CertStore` object that implements the specified `CertStore` type and is initialized with the specified parameters. If the default provider package provides an implementation of the specified `CertStore` type, an instance of `CertStore` containing that implementation is returned.
`static CertStore` | `getInstance(java.lang.String type, CertStoreParameters params, java.security.Provider provider)` Returns a `CertStore` object that implements the specified `CertStore` type, as supplied by the specified provider and initialized with the specified parameters.
`static CertStore` | `getInstance(java.lang.String type, CertStoreParameters params, java.lang.String provider)` Returns a `CertStore` object that implements the specified `CertStore` type, as supplied by the specified provider and initialized with the specified parameters. The `CertStore` that is returned is initialized with the specified `CertStoreParameters`.
`java.security.Provider` | `getProvider()` Returns the provider of this `CertStore`.
`java.lang.String` | `getType()` Returns the type of this `CertStore`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### CertStore

    protected CertStore(CertStoreSpi storeSpi,
                        java.security.Provider provider,
                        java.lang.String type,
                        CertStoreParameters params)

  Creates a `CertStore` object of the given type, and encapsulates the given provider implementation (SPI object) in it.
  Parameters:
    `storeSpi` - the provider implementation
    `provider` - the provider
    `type` - the type
    `params` - the initialization parameters (may be `null`)

Method Detail

### getCertificates

    public final java.util.Collection getCertificates(CertSelector selector)
                                               throws CertStoreException

  Returns a `Collection` of `Certificate`s that match the specified selector. If no `Certificate`s match the selector, an empty `Collection` will be returned.
  For some `CertStore` types, the resulting `Collection` may not contain all of the `Certificate`s that match the selector. For instance, an LDAP `CertStore` may not search all entries in the directory. Instead, it may just search entries that are likely to contain the `Certificate`s it is looking for.
  Some `CertStore` implementations (especially LDAP `CertStore`s) may throw a `CertStoreException` unless a non-null `CertSelector` is provided that includes specific criteria that can be used to find the certificates. Issuer and/or subject names are especially useful criteria.
  Parameters:
    `selector` - A `CertSelector` used to select which `Certificate`s should be returned. Specify `null` to return all `Certificate`s (if supported).
  Returns:
    A `Collection` of `Certificate`s that match the specified selector (never `null`)
  Throws:
    `CertStoreException` - if an exception occurs

### getCRLs

    public final java.util.Collection getCRLs(CRLSelector selector)
                                       throws CertStoreException

  Returns a `Collection` of `CRL`s that match the specified selector. If no `CRL`s match the selector, an empty `Collection` will be returned.
  For some `CertStore` types, the resulting `Collection` may not contain all of the `CRL`s that match the selector. For instance, an LDAP `CertStore` may not search all entries in the directory. Instead, it may just search entries that are likely to contain the `CRL`s it is looking for.
  Some `CertStore` implementations (especially LDAP `CertStore`s) may throw a `CertStoreException` unless a non-null `CRLSelector` is provided that includes specific criteria that can be used to find the CRLs. Issuer names and/or the certificate to be checked are especially useful.
  Parameters:
    `selector` - A `CRLSelector` used to select which `CRL`s should be returned. Specify `null` to return all `CRL`s (if supported).
  Returns:
    A `Collection` of `CRL`s that match the specified selector (never `null`)
  Throws:
    `CertStoreException` - if an exception occurs

### getInstance

    public static CertStore getInstance(java.lang.String type,
                                        CertStoreParameters params)
                                 throws java.security.InvalidAlgorithmParameterException,
                                        java.security.NoSuchAlgorithmException

  Returns a `CertStore` object that implements the specified `CertStore` type and is initialized with the specified parameters.
  If the default provider package provides an implementation of the specified `CertStore` type, an instance of `CertStore` containing that implementation is returned. If the requested type is not available in the default package, other packages are searched.
  The `CertStore` that is returned is initialized with the specified `CertStoreParameters`. The type of parameters needed may vary between different types of `CertStore`s. Note that the specified `CertStoreParameters` object is cloned.
  Parameters:
    `type` - the name of the requested `CertStore` type
    `params` - the initialization parameters (may be `null`)
  Returns:
    a `CertStore` object that implements the specified `CertStore` type
  Throws:
    `java.security.NoSuchAlgorithmException` - if the requested type is not available in the default provider package or any of the other provider packages that were searched
    `java.security.InvalidAlgorithmParameterException` - if the specified initialization parameters are inappropriate for this `CertStore`

### getInstance

    public static CertStore getInstance(java.lang.String type,
                                        CertStoreParameters params,
                                        java.lang.String provider)
                                 throws java.security.InvalidAlgorithmParameterException,
                                        java.security.NoSuchAlgorithmException,
                                        java.security.NoSuchProviderException,
                                        java.lang.IllegalArgumentException

  Returns a `CertStore` object that implements the specified `CertStore` type, as supplied by the specified provider and initialized with the specified parameters.
  The `CertStore` that is returned is initialized with the specified `CertStoreParameters`. The type of parameters needed may vary between different types of `CertStore`s. Note that the specified `CertStoreParameters` object is cloned.
  Parameters:
    `type` - the requested `CertStore` type
    `params` - the initialization parameters (may be `null`)
    `provider` - the name of the provider
  Returns:
    a `CertStore` object that implements the specified type, as supplied by the specified provider
  Throws:
    `java.security.NoSuchAlgorithmException` - if the requested type is not available from the specified provider
    `java.security.InvalidAlgorithmParameterException` - if the specified initialization parameters are inappropriate for this `CertStore`
    `java.security.NoSuchProviderException` - if the provider has not been configured
    `java.lang.IllegalArgumentException` - if the `provider` is null

### getInstance

    public static CertStore getInstance(java.lang.String type,
                                        CertStoreParameters params,
                                        java.security.Provider provider)
                                 throws java.security.NoSuchAlgorithmException,
                                        java.security.InvalidAlgorithmParameterException,
                                        java.lang.IllegalArgumentException

  Returns a `CertStore` object that implements the specified `CertStore` type, as supplied by the specified provider and initialized with the specified parameters. Note: the `provider` doesn't have to be registered.
  The `CertStore` that is returned is initialized with the specified `CertStoreParameters`. The type of parameters needed may vary between different types of `CertStore`s. Note that the specified `CertStoreParameters` object is cloned.
  Parameters:
    `type` - the requested `CertStore` type
    `params` - the initialization parameters (may be `null`)
    `provider` - the provider
  Returns:
    a `CertStore` object that implements the specified type, as supplied by the specified provider
  Throws:
    `java.security.NoSuchAlgorithmException` - if the requested type is not available from the specified provider
    `java.security.InvalidAlgorithmParameterException` - if the specified initialization parameters are inappropriate for this `CertStore`
    `java.lang.IllegalArgumentException` - if the `provider` is null

### getCertStoreParameters

    public final CertStoreParameters getCertStoreParameters()

  Returns the parameters used to initialize this `CertStore`. Note that the `CertStoreParameters` object is cloned before it is returned.
  Returns:
    the parameters used to initialize this `CertStore` (may be `null`)

### getType

    public final java.lang.String getType()

  Returns the type of this `CertStore`.
  Returns:
    the type of this `CertStore`

### getProvider

    public final java.security.Provider getProvider()

  Returns the provider of this `CertStore`.
  Returns:
    the provider of this `CertStore`

### getDefaultType

    public static final java.lang.String getDefaultType()

  Returns the default `CertStore` type as specified in the Java security properties file, or the string "LDAP" if no such property exists. The Java security properties file is located in the file named <JAVA_HOME>/lib/security/java.security, where <JAVA_HOME> refers to the directory where the SDK was installed.
  The default `CertStore` type can be used by applications that do not want to use a hard-coded type when calling one of the `getInstance` methods, and want to provide a default `CertStore` type in case a user does not specify its own.
  The default `CertStore` type can be changed by setting the value of the "certstore.type" security property (in the Java security properties file) to the desired type.
  Returns:
    the default `CertStore` type as specified in the Java security properties file, or the string "LDAP" if no such property exists.

Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography 1.21
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD