- java.lang.Object
-
- javax.net.ssl.KeyManagerFactory
-
public class KeyManagerFactory extends Object
此类充当基于密钥材料源的密钥管理器的工厂。 每个密钥管理器管理特定类型的密钥材料以供安全套接字使用。 关键材料基于KeyStore和/或提供商特定来源。- 从以下版本开始:
- 1.4
- 另请参见:
-
KeyManager
-
-
构造方法摘要
构造方法 变量 构造器 描述 protectedKeyManagerFactory(KeyManagerFactorySpi factorySpi, Provider provider, String algorithm)创建KeyManagerFactory对象。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 StringgetAlgorithm()返回此KeyManagerFactory对象的算法名称。static StringgetDefaultAlgorithm()获得默认的KeyManagerFactory算法名称。static KeyManagerFactorygetInstance(String algorithm)返回一个KeyManagerFactory对象,该对象充当密钥管理器的工厂。static KeyManagerFactorygetInstance(String algorithm, String provider)返回KeyManagerFactory对象,该对象充当密钥管理器的工厂。static KeyManagerFactorygetInstance(String algorithm, Provider provider)返回一个KeyManagerFactory对象,该对象充当密钥管理器的工厂。KeyManager[]getKeyManagers()为每种类型的密钥材料返回一个密钥管理器。ProvidergetProvider()返回此KeyManagerFactory对象的提供程序。voidinit(KeyStore ks, char[] password)使用密钥材料源初始化此工厂。voidinit(ManagerFactoryParameters spec)使用提供程序特定的密钥材料源初始化此工厂。
-
-
-
构造方法详细信息
-
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.preferredSecurity属性来确定指定算法的首选提供程序顺序。 这可能与Security.getProviders()返回的提供商的顺序不同。 - 参数
-
algorithm- 请求的算法的标准名称。 有关标准算法名称的信息,请参见Java Security Standard Algorithm Names文档。 - 结果
-
新的
KeyManagerFactory对象 - 异常
-
NoSuchAlgorithmException- 如果没有Provider支持指定算法的KeyManagerFactorySpi实现 -
NullPointerException- 如果algorithm是null - 另请参见:
-
Provider
-
getInstance
public static final KeyManagerFactory getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
返回KeyManagerFactory对象,该对象充当密钥管理器的工厂。将返回一个新的KeyManagerFactory对象,该对象封装了指定提供程序的KeyManagerFactorySpi实现。 必须在安全提供程序列表中注册指定的提供程序。
请注意,可以通过
Security.getProviders()方法检索已注册提供商的列表。- 参数
-
algorithm- 请求的算法的标准名称。 有关标准算法名称的信息,请参见Java Security Standard Algorithm Names文档。 -
provider- 提供者的名称。 - 结果
-
新的
KeyManagerFactory对象 - 异常
-
IllegalArgumentException- 如果提供程序名称为null或为空 -
NoSuchAlgorithmException- 如果指定提供程序的指定算法的KeyManagerFactorySpi实现不可用 -
NoSuchProviderException- 如果指定的提供程序未在安全提供程序列表中注册 -
NullPointerException- 如果algorithm是null - 另请参见:
-
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- 如果algorithm是null - 另请参见:
-
Provider
-
getProvider
public final Provider getProvider()
返回此KeyManagerFactory对象的提供程序。- 结果
-
此
KeyManagerFactory对象的提供者
-
init
public final void init(KeyStore ks, char[] password) throws KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException
使用密钥材料源初始化此工厂。提供者通常使用KeyStore来获取在安全套接字协商期间使用的密钥材料。 KeyStore通常受密码保护。
有关更灵活的初始化,请参阅
init(ManagerFactoryParameters)。- 参数
-
ks- 密钥库或null -
password- 在KeyStore中恢复密钥的密码 - 异常
-
KeyStoreException- 如果此操作失败 -
NoSuchAlgorithmException- 如果指定的算法在指定的提供程序中不可用。 -
UnrecoverableKeyException- 如果密钥无法恢复(例如,给定的密码错误)。
-
init
public final void init(ManagerFactoryParameters spec) throws InvalidAlgorithmParameterException
使用提供程序特定的密钥材料源初始化此工厂。在某些情况下,提供者可能需要除密钥库和密码之外的初始化参数。 预期该特定提供商的用户将通过提供商定义的适当
ManagerFactoryParameters的实施。 然后,提供程序可以调用ManagerFactoryParameters实现中的指定方法来获取所需的信息。- 参数
-
spec- 特定于提供程序的参数规范的实现 - 异常
-
InvalidAlgorithmParameterException- 如果遇到错误
-
getKeyManagers
public final KeyManager[] getKeyManagers()
为每种类型的密钥材料返回一个密钥管理器。- 结果
- 关键经理
- 异常
-
IllegalStateException- 如果未初始化KeyManagerFactory
-
-