- java.lang.Object
-
- javax.net.ssl.KeyManagerFactory
-
public class KeyManagerFactory extends Object
该类作为关键管理人员基于关键材料来源的工厂。 每个密钥管理器管理特定类型的密钥材料供安全套接字使用。 关键材料是基于KeyStore和/或提供者的具体来源。- 从以下版本开始:
- 1.4
- 另请参见:
-
KeyManager
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protectedKeyManagerFactory(KeyManagerFactorySpi factorySpi, Provider provider, String algorithm)创建一个KeyManagerFactory对象。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 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对象,作为关键管理器的工厂。此方法遍历已注册的安全提供程序列表,从最优选的提供程序开始。 返回从支持指定算法的第一个Provider中封装KeyManagerFactorySpi实现的新KeyManagerFactory对象。
注意,可以通过
Security.getProviders()方法检索注册提供商的列表。- Implementation Note:
-
JDK参考实现另外使用
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对象。返回从指定提供程序封装KeyManagerFactorySpi实现的新KeyManagerFactory对象。 指定的提供者必须在安全提供程序列表中注册。
请注意,注册提供商的列表可以通过
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对象,作为密钥管理器的工厂。返回从指定的Provider对象封装KeyManagerFactorySpi实现的新KeyManagerFactory对象。 请注意,指定的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未初始化
-
-