模块  java.base
软件包  javax.net.ssl

Class KeyManagerFactory


  • public class KeyManagerFactory
    extends Object
    此类充当基于密钥材料源的密钥管理器的工厂。 每个密钥管理器管理特定类型的密钥材料以供安全套接字使用。 关键材料基于KeyStore和/或提供商特定来源。
    从以下版本开始:
    1.4
    另请参见:
    KeyManager
    • 构造方法详细信息

      • KeyManagerFactory

        protected KeyManagerFactory​(KeyManagerFactorySpi factorySpi,
                                    Provider provider,
                                    String algorithm)
        创建KeyManagerFactory对象。
        参数
        factorySpi - 代表
        provider - 提供者
        algorithm - 算法
    • 方法详细信息

      • getDefaultAlgorithm

        public static final String getDefaultAlgorithm()
        获得默认的KeyManagerFactory算法名称。

        通过将ssl.KeyManagerFactory.algorithm安全属性的值设置为所需的算法名称,可以在运行时更改默认算法。

        结果
        ssl.KeyManagerFactory.algorithm安全属性指定的默认算法名称,如果不存在此类属性,则为特定于实现的默认值。
        另请参见:
        security properties
      • getAlgorithm

        public final String getAlgorithm()
        返回此KeyManagerFactory对象的算法名称。

        这与在创建此KeyManagerFactory对象的getInstance调用之一中指定的名称相同。

        结果
        KeyManagerFactory对象的算法名称。
      • getInstance

        public static final KeyManagerFactory getInstance​(String algorithm)
                                                   throws NoSuchAlgorithmException
        返回KeyManagerFactory对象,该对象充当密钥管理器的工厂。

        此方法遍历已注册的安全提供程序列表,从最首选的提供程序开始。 将返回一个新的KeyManagerFactory对象,该对象封装来自第一个支持指定算法的Provider的KeyManagerFactorySpi实现。

        请注意,可以通过Security.getProviders()方法检索已注册提供商的列表。

        Implementation Note:
        JDK Reference Implementation还使用jdk.security.provider.preferred Security属性来确定指定算法的首选提供程序顺序。 这可能与Security.getProviders()返回的提供商的顺序不同。
        参数
        algorithm - 请求的算法的标准名称。 有关标准算法名称的信息,请参见Java Security Standard Algorithm Names文档。
        结果
        新的 KeyManagerFactory对象
        异常
        NoSuchAlgorithmException - 如果没有 Provider支持指定算法的 KeyManagerFactorySpi实现
        NullPointerException - 如果 algorithmnull
        另请参见:
        Provider
      • getInstance

        public static final KeyManagerFactory getInstance​(String algorithm,
                                                          Provider provider)
                                                   throws NoSuchAlgorithmException
        返回KeyManagerFactory对象,该对象充当密钥管理器的工厂。

        将返回一个新的KeyManagerFactory对象,该对象封装了指定Provider对象的KeyManagerFactorySpi实现。 请注意,指定的Provider对象不必在提供程序列表中注册。

        参数
        algorithm - 请求的算法的标准名称。 有关标准算法名称的信息,请参阅Java Security Standard Algorithm Names文档。
        provider - 提供者的实例。
        结果
        新的 KeyManagerFactory对象
        异常
        IllegalArgumentException - 如果提供者是 null
        NoSuchAlgorithmException - 如果指定的算法的 @KeyManagerFactorySpi实现不可用于指定的Provider对象
        NullPointerException - 如果 algorithmnull
        另请参见:
        Provider
      • getProvider

        public final Provider getProvider()
        返回此 KeyManagerFactory对象的提供程序。
        结果
        KeyManagerFactory对象的提供者
      • init

        public final void init​(ManagerFactoryParameters spec)
                        throws InvalidAlgorithmParameterException
        使用提供程序特定的密钥材料源初始化此工厂。

        在某些情况下,提供者可能需要除密钥库和密码之外的初始化参数。 预期该特定提供商的用户将通过提供商定义的适当ManagerFactoryParameters的实施。 然后,提供程序可以调用ManagerFactoryParameters实现中的指定方法来获取所需的信息。

        参数
        spec - 特定于提供程序的参数规范的实现
        异常
        InvalidAlgorithmParameterException - 如果遇到错误
      • getKeyManagers

        public final KeyManager[] getKeyManagers()
        为每种类型的密钥材料返回一个密钥管理器。
        结果
        关键经理
        异常
        IllegalStateException - 如果未初始化KeyManagerFactory