- java.lang.Object
-
- javax.net.ssl.KeyManagerFactory
-
public class KeyManagerFactory extends Object
此类充当基于密钥材料源的密钥管理器的工厂。 每个密钥管理器管理特定类型的密钥材料以供安全套接字使用。 关键材料基于KeyStore和/或提供商特定来源。- 从以下版本开始:
- 1.4
- 另请参见:
-
KeyManager
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
KeyManagerFactory(KeyManagerFactorySpi factorySpi, Provider provider, String algorithm)
创建KeyManagerFactory对象。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 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
对象,该对象充当密钥管理器的工厂。此方法遍历已注册的安全提供程序列表,从最首选的提供程序开始。 将返回一个新的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
- 如果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
-
-