- java.lang.Object
-
- javax.net.ssl.KeyManagerFactory
-
public class KeyManagerFactory extends Object
该类作为关键管理人员基于关键材料来源的工厂。 每个密钥管理器管理特定类型的密钥材料供安全套接字使用。 关键材料是基于KeyStore和/或提供者的具体来源。- 从以下版本开始:
- 1.4
- 另请参见:
-
KeyManager
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
KeyManagerFactory(KeyManagerFactorySpi factorySpi, Provider provider, String algorithm)
创建一个KeyManagerFactory对象。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 String
getAlgorithm()
返回此KeyManagerFactory
对象的算法名称。static String
getDefaultAlgorithm()
获取默认的KeyManagerFactory算法名称。static KeyManagerFactory
getInstance(String algorithm)
返回一个KeyManagerFactory
对象,作为密钥管理器的工厂。static KeyManagerFactory
getInstance(String algorithm, String provider)
返回一个KeyManagerFactory
对象,作为主要管理员的工厂。static KeyManagerFactory
getInstance(String algorithm, Provider provider)
返回一个KeyManagerFactory
对象,作为主要管理员的工厂。KeyManager[]
getKeyManagers()
返回每种类型的密钥材料的一个密钥管理器。Provider
getProvider()
返回此KeyManagerFactory
对象的提供者。void
init(KeyStore ks, char[] password)
使用关键材料来源初始化该工厂。void
init(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.preferred
Security
属性来确定指定算法的首选提供者顺序。 这可能与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未初始化
-
-