KeyManagerFactorySpi (Java Platform SE 8 )
Keywords: javax.net.ssl.KeyManagerFactorySpi class
Date: 2026-06-25

compact1, compact2, compact3
javax.net.ssl

## Class KeyManagerFactorySpi

- java.lang.Object
- - javax.net.ssl.KeyManagerFactorySpi

-     public abstract class KeyManagerFactorySpi
      extends Object

  This class defines the Service Provider Interface (SPI) for the `KeyManagerFactory` class.

  All the abstract methods in this class must be implemented by each cryptographic service provider who wishes to supply the implementation of a particular key manager factory.

  Since:
    1.4
  See Also:
    `KeyManagerFactory`, `KeyManager`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `KeyManagerFactorySpi()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract KeyManager[]` | `engineGetKeyManagers()` Returns one key manager for each type of key material.
    `protected abstract void` | `engineInit(KeyStore ks, char[] password)` Initializes this factory with a source of key material.
    `protected abstract void` | `engineInit(ManagerFactoryParameters spec)` Initializes this factory with a source of key material.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### KeyManagerFactorySpi

          public KeyManagerFactorySpi()

  - ### Method Detail

    - #### engineInit

          protected abstract void engineInit(KeyStore ks,
                                             char[] password)
                                      throws KeyStoreException,
                                             NoSuchAlgorithmException,
                                             UnrecoverableKeyException

      Initializes this factory with a source of key material.
      Parameters:
        `ks` - the key store or null
        `password` - the password for recovering keys
      Throws:
        `KeyStoreException` - if this operation fails
        `NoSuchAlgorithmException` - if the specified algorithm is not available from the specified provider.
        `UnrecoverableKeyException` - if the key cannot be recovered
      See Also:
        `KeyManagerFactory.init(KeyStore, char[])`

    - #### engineInit

          protected abstract void engineInit(ManagerFactoryParameters spec)
                                      throws InvalidAlgorithmParameterException

      Initializes this factory with a source of key material.

      In some cases, initialization parameters other than a keystore and password may be needed by a provider. Users of that particular provider are expected to pass an implementation of the appropriate `ManagerFactoryParameters` as defined by the provider. The provider can then call the specified methods in the ManagerFactoryParameters implementation to obtain the needed information.

      Parameters:
        `spec` - an implementation of a provider-specific parameter specification
      Throws:
        `InvalidAlgorithmParameterException` - if there is problem with the parameters
      See Also:
        `KeyManagerFactory.init(ManagerFactoryParameters spec)`

    - #### engineGetKeyManagers

          protected abstract KeyManager[] engineGetKeyManagers()

      Returns one key manager for each type of key material.
      Returns:
        the key managers
      Throws:
        `IllegalStateException` - if the KeyManagerFactorySpi is not initialized

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.