Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## java.security.cert
Class CertPathValidator

    java.lang.Object
      |
      +--java.security.cert.CertPathValidator

public class CertPathValidator
extends 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.

Since:
  1.4
See Also:
  `CertPath`

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

Method Summary
`String` | `getAlgorithm()` Returns the algorithm name of this `CertPathValidator`.
`static 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(String algorithm)` Returns a `CertPathValidator` object that implements the specified algorithm.
`static CertPathValidator` | `getInstance(String algorithm, Provider provider)` Returns a `CertPathValidator` object that implements the specified algorithm, as supplied by the specified provider.
`static CertPathValidator` | `getInstance(String algorithm, String provider)` Returns a `CertPathValidator` object that implements the specified algorithm, as supplied by the specified provider.
`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.

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,
                                Provider provider,
                                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(String algorithm)
                                         throws 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:
    `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(String algorithm,
                                                String provider)
                                         throws NoSuchAlgorithmException,
                                                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:
    `NoSuchAlgorithmException` - if the requested algorithm is not available from the specified provider
    `NoSuchProviderException` - if the provider has not been configured
    `IllegalArgumentException` - if the `provider` is null

### getInstance

    public static CertPathValidator getInstance(String algorithm,
                                                Provider provider)
                                         throws 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:
    `NoSuchAlgorithmException` - if the requested algorithm is not available from the specified provider
    `IllegalArgumentException` - if the `provider` is null

### getProvider

    public final Provider getProvider()

  Returns the `Provider` of this `CertPathValidator`.

  Returns:
    the `Provider` of this `CertPathValidator`

### getAlgorithm

    public final 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,
                                                  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
    `InvalidAlgorithmParameterException` - if the specified parameters or the type of the specified `CertPath` are inappropriate for this `CertPathValidator`

### getDefaultType

    public static final 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 | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.