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

## org.bouncycastle.jce.cert
Class CertPathValidator

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

public class CertPathValidator
extends java.lang.Object

A class for validating certification paths (also known as certificate chains).
This class uses a provider-based architecture, as described in the Java Cryptography Architecture. To create a `CertPathValidator`, call one of the static `getInstance` methods, passing in the algorithm name of the `CertPathValidator` desired and optionally the name of the provider desired.
Once a `CertPathValidator` object has been created, it can be used to validate certification paths by calling the `validate` method and passing it the `CertPath` to be validated and an algorithm-specific set of parameters. If successful, the result is returned in an object that implements the `CertPathValidatorResult` interface.
Concurrent Access
The static methods of this class are guaranteed to be thread-safe. Multiple threads may concurrently invoke the static methods defined in this class with no ill effects.
However, this is not true for the non-static methods defined by this class. Unless otherwise documented by a specific provider, threads that need to access a single `CertPathValidator` instance concurrently should synchronize amongst themselves and provide the necessary locking. Multiple threads each manipulating a different `CertPathValidator` instance need not synchronize.
Uses `CertUtil` to actualiy load the SPI classes.

See Also:
  `CertPath`, `CertUtil`

Constructor Summary
`protected` | `CertPathValidator(CertPathValidatorSpi validatorSpi, java.security.Provider provider, java.lang.String algorithm)` Creates a `CertPathValidator` object of the given algorithm, and encapsulates the given provider implementation (SPI object) in it.

Method Summary
`java.lang.String` | `getAlgorithm()` Returns the algorithm name of this `CertPathValidator`.
`static java.lang.String` | `getDefaultType()` Returns the default `CertPathValidator` type as specified in the Java security properties file, or the string "PKIX" if no such property exists.
`static CertPathValidator` | `getInstance(java.lang.String algorithm)` Returns a `CertPathValidator` object that implements the specified algorithm. If the default provider package provides an implementation of the specified `CertPathValidator` algorithm, an instance of `CertPathValidator` containing that implementation is returned.
`static CertPathValidator` | `getInstance(java.lang.String algorithm, java.security.Provider provider)` Returns a `CertPathValidator` object that implements the specified algorithm, as supplied by the specified provider.
`static CertPathValidator` | `getInstance(java.lang.String algorithm, java.lang.String provider)` Returns a `CertPathValidator` object that implements the specified algorithm, as supplied by the specified provider.
`java.security.Provider` | `getProvider()` Returns the `Provider` of this `CertPathValidator`.
`CertPathValidatorResult` | `validate(CertPath certPath, CertPathParameters params)` Validates the specified certification path using the specified algorithm parameter set. The `CertPath` specified must be of a type that is supported by the validation algorithm, otherwise an `InvalidAlgorithmParameterException` will be thrown.

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

Constructor Detail

### CertPathValidator

    protected CertPathValidator(CertPathValidatorSpi validatorSpi,
                                java.security.Provider provider,
                                java.lang.String algorithm)

  Creates a `CertPathValidator` object of the given algorithm, and encapsulates the given provider implementation (SPI object) in it.

Parameters:
  `validatorSpi` - the provider implementation
  `provider` - the provider
  `algorithm` - the algorithm name

Method Detail

### getInstance

    public static CertPathValidator getInstance(java.lang.String algorithm)
                                         throws java.security.NoSuchAlgorithmException

  Returns a `CertPathValidator` object that implements the specified algorithm.
  If the default provider package provides an implementation of the specified `CertPathValidator` algorithm, an instance of `CertPathValidator` containing that implementation is returned. If the requested algorithm is not available in the default package, other packages are searched.

  Parameters:
    `algorithm` - the name of the requested `CertPathValidator` algorithm
  Returns:
    a `CertPathValidator` object that implements the specified algorithm
  Throws:
    `java.security.NoSuchAlgorithmException` - if the requested algorithm is not available in the default provider package or any of the other provider packages that were searched

### getInstance

    public static CertPathValidator getInstance(java.lang.String algorithm,
                                                java.lang.String provider)
                                         throws java.security.NoSuchAlgorithmException,
                                                java.security.NoSuchProviderException

  Returns a `CertPathValidator` object that implements the specified algorithm, as supplied by the specified provider.

  Parameters:
    `algorithm` - the name of the requested `CertPathValidator` algorithm
    `provider` - the name of the provider
  Returns:
    a `CertPathValidator` object that implements the specified algorithm, as supplied by the specified provider
  Throws:
    `java.security.NoSuchAlgorithmException` - if the requested algorithm is not available from the specified provider
    `java.security.NoSuchProviderException` - if the provider has not been configured
    `java.lang.IllegalArgumentException` - if the `provider` is null

### getInstance

    public static CertPathValidator getInstance(java.lang.String algorithm,
                                                java.security.Provider provider)
                                         throws java.security.NoSuchAlgorithmException

  Returns a `CertPathValidator` object that implements the specified algorithm, as supplied by the specified provider. Note: the `provider` doesn't have to be registered.

  Parameters:
    `algorithm` - the name of the requested `CertPathValidator` algorithm
    `provider` - the provider
  Returns:
    a `CertPathValidator` object that implements the specified algorithm, as supplied by the specified provider
  Throws:
    `java.security.NoSuchAlgorithmException` - if the requested algorithm is not available from the specified provider
    `java.lang.IllegalArgumentException` - if the `provider` is null

### getProvider

    public final java.security.Provider getProvider()

  Returns the `Provider` of this `CertPathValidator`.

  Returns:
    the `Provider` of this `CertPathValidator`

### getAlgorithm

    public final java.lang.String getAlgorithm()

  Returns the algorithm name of this `CertPathValidator`.

  Returns:
    the algorithm name of this `CertPathValidator`

### validate

    public final CertPathValidatorResult validate(CertPath certPath,
                                                  CertPathParameters params)
                                           throws CertPathValidatorException,
                                                  java.security.InvalidAlgorithmParameterException

  Validates the specified certification path using the specified algorithm parameter set.
  The `CertPath` specified must be of a type that is supported by the validation algorithm, otherwise an `InvalidAlgorithmParameterException` will be thrown. For example, a `CertPathValidator` that implements the PKIX algorithm validates `CertPath` objects of type X.509.

  Parameters:
    `certPath` - the `CertPath` to be validated
    `params` - the algorithm parameters
  Returns:
    the result of the validation algorithm
  Throws:
    `CertPathValidatorException` - if the `CertPath` does not validate
    `java.security.InvalidAlgorithmParameterException` - if the specified parameters or the type of the specified `CertPath` are inappropriate for this `CertPathValidator`

### getDefaultType

    public static final java.lang.String getDefaultType()

  Returns the default `CertPathValidator` type as specified in the Java security properties file, or the string "PKIX" 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 `CertPathValidator` 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 type in case a user does not specify its own.
  The default `CertPathValidator` type can be changed by setting the value of the "certpathvalidator.type" security property (in the Java security properties file) to the desired type.

  Returns:
    the default `CertPathValidator` type as specified in the Java security properties file, or the string "PKIX" 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: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD