Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/java/security/cert/CertPathBuilderSpi#pubctors) \| [Methods](https://developer.android.com/reference/java/security/cert/CertPathBuilderSpi#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/security/cert/CertPathBuilderSpi#inhmethods)

# CertPathBuilderSpi


`
public


abstract
class
CertPathBuilderSpi
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | java.security.cert.CertPathBuilderSpi |

<br />

*** ** * ** ***

The *Service Provider Interface* (**SPI** )
for the `https://developer.android.com/reference/java/security/cert/CertPathBuilder` class. All
`CertPathBuilder` implementations must include a class (the
SPI class) that extends this class (`CertPathBuilderSpi`) and
implements all of its methods. In general, instances of this class should
only be accessed through the `CertPathBuilder` class. For
details, see the Java Cryptography Architecture.


**Concurrent Access**


Instances of this class need not be protected against concurrent
access from multiple threads. Threads that need to access a single
`CertPathBuilderSpi` instance concurrently should synchronize
amongst themselves and provide the necessary locking before calling the
wrapping `CertPathBuilder` object.


However, implementations of `CertPathBuilderSpi` may still
encounter concurrency issues, since multiple threads each
manipulating a different `CertPathBuilderSpi` instance need not
synchronize.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/java/security/cert/CertPathBuilderSpi#CertPathBuilderSpi()() ` The default constructor. |

| ### Public methods ||
|---|---|
| ` abstract https://developer.android.com/reference/java/security/cert/CertPathBuilderResult` | ` https://developer.android.com/reference/java/security/cert/CertPathBuilderSpi#engineBuild(java.security.cert.CertPathParameters)(https://developer.android.com/reference/java/security/cert/CertPathParameters params) ` Attempts to build a certification path using the specified algorithm parameter set. |
| ` https://developer.android.com/reference/java/security/cert/CertPathChecker` | ` https://developer.android.com/reference/java/security/cert/CertPathBuilderSpi#engineGetRevocationChecker()() ` Returns a `CertPathChecker` that this implementation uses to check the revocation status of certificates. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||

## Public constructors

### CertPathBuilderSpi

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public CertPathBuilderSpi ()
```

The default constructor.

<br />

## Public methods

### engineBuild

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract CertPathBuilderResult engineBuild (CertPathParameters params)
```

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

<br />

| Parameters ||
|---|---|
| `params` | `CertPathParameters`: the algorithm parameters <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/security/cert/CertPathBuilderResult` | the result of the build algorithm <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/security/InvalidAlgorithmParameterException` | if the specified parameters are inappropriate for this `CertPathBuilder` |
| `https://developer.android.com/reference/java/security/cert/CertPathBuilderException` | if the builder is unable to construct a certification path that satisfies the specified parameters |

### engineGetRevocationChecker

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public CertPathChecker engineGetRevocationChecker ()
```

Returns a `CertPathChecker` that this implementation uses to
check the revocation status of certificates. A PKIX implementation
returns objects of type `PKIXRevocationChecker`.

The primary purpose of this method is to allow callers to specify
additional input parameters and options specific to revocation checking.
See the class description of `CertPathBuilder` for an example.

This method was added to version 1.8 of the Java Platform Standard
Edition. In order to maintain backwards compatibility with existing
service providers, this method cannot be abstract and by default throws
an `UnsupportedOperationException`.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/security/cert/CertPathChecker` | a `CertPathChecker` that this implementation uses to check the revocation status of certificates <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException` | if this method is not supported |