Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## java.security.cert
Class CertPathBuilder

    java.lang.Object
      java.security.cert.CertPathBuilder

    public class CertPathBuilder

extends Object

A class for building certification paths (also known as certificate chains).

This class uses a provider-based architecture, as described in the Java Cryptography Architecture. To create a `CertPathBuilder`, call one of the static `getInstance` methods, passing in the algorithm name of the `CertPathBuilder` desired and optionally the name of the provider desired.

Once a `CertPathBuilder` object has been created, certification paths can be constructed by calling the `build` method and passing it an algorithm-specific set of parameters. If successful, the result (including the `CertPath` that was built) is returned in an object that implements the `CertPathBuilderResult` 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 `CertPathBuilder` instance concurrently should synchronize amongst themselves and provide the necessary locking. Multiple threads each manipulating a different `CertPathBuilder` instance need not synchronize.

Since:
  1.4
See Also:
  `CertPath`

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

Method Summary
`CertPathBuilderResult` | `build(CertPathParameters params)` Attempts to build a certification path using the specified algorithm parameter set.
`String` | `getAlgorithm()` Returns the name of the algorithm of this `CertPathBuilder`.
`static String` | `getDefaultType()` Returns the default `CertPathBuilder` type as specified in the Java security properties file, or the string "PKIX" if no such property exists.
`static CertPathBuilder` | `getInstance(String algorithm)` Returns a `CertPathBuilder` object that implements the specified algorithm.
`static CertPathBuilder` | `getInstance(String algorithm, Provider provider)` Returns a `CertPathBuilder` object that implements the specified algorithm, as supplied by the specified provider.
`static CertPathBuilder` | `getInstance(String algorithm, String provider)` Returns a `CertPathBuilder` object that implements the specified algorithm, as supplied by the specified provider.
`Provider` | `getProvider()` Returns the provider of this `CertPathBuilder`.

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

Constructor Detail

### CertPathBuilder

    protected CertPathBuilder(CertPathBuilderSpi builderSpi,
                              Provider provider,
                              String algorithm)

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

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

Method Detail

### getInstance

    public static CertPathBuilder getInstance(String algorithm)
                                       throws NoSuchAlgorithmException

  Returns a `CertPathBuilder` object that implements the specified algorithm.

  If the default provider package provides an implementation of the specified `CertPathBuilder` algorithm, an instance of `CertPathBuilder` 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 `CertPathBuilder` algorithm
  Returns:
    a `CertPathBuilder` 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 CertPathBuilder getInstance(String algorithm,
                                              String provider)
                                       throws NoSuchAlgorithmException,
                                              NoSuchProviderException

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

  Parameters:
    `algorithm` - the name of the requested `CertPathBuilder` algorithm
    `provider` - the name of the provider
  Returns:
    a `CertPathBuilder` 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 CertPathBuilder getInstance(String algorithm,
                                              Provider provider)
                                       throws NoSuchAlgorithmException

  Returns a `CertPathBuilder` 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 `CertPathBuilder` algorithm
    `provider` - the provider
  Returns:
    a `CertPathBuilder` 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 `CertPathBuilder`.

  Returns:
    the provider of this `CertPathBuilder`

### getAlgorithm

    public final String getAlgorithm()

  Returns the name of the algorithm of this `CertPathBuilder`.

  Returns:
    the name of the algorithm of this `CertPathBuilder`

### build

    public final CertPathBuilderResult build(CertPathParameters params)
                                      throws CertPathBuilderException,
                                             InvalidAlgorithmParameterException

  Attempts to build a certification path using the specified algorithm parameter set.

  Parameters:
    `params` - the algorithm parameters
  Returns:
    the result of the build algorithm
  Throws:
    `CertPathBuilderException` - if the builder is unable to construct a certification path that satisfies the specified parameters
    `InvalidAlgorithmParameterException` - if the specified parameters are inappropriate for this `CertPathBuilder`

### getDefaultType

    public static final String getDefaultType()

  Returns the default `CertPathBuilder` 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 `CertPathBuilder` 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 `CertPathBuilder` type can be changed by setting the value of the "certpathbuilder.type" security property (in the Java security properties file) to the desired type.

  Returns:
    the default `CertPathBuilder` type as specified in the Java security properties file, or the string "PKIX" if no such property exists.

Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002, 2005 IBM Corp. All Rights Reserved.