java.lang.Object
javax.net.ssl.KeyManagerFactory
该类充当基于密钥材料源的密钥管理器工厂。每个密钥管理器管理用于安全套接字的特定类型的密钥材料。密钥材料基于KeyStore和/或特定提供程序的源。
- 自版本:
- 1.4
- 参见:
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedKeyManagerFactory(KeyManagerFactorySpi factorySpi, Provider provider, String algorithm) 创建一个KeyManagerFactory对象。 -
Method Summary
Modifier and TypeMethodDescriptionfinal String返回此KeyManagerFactory对象的算法名称。static final String获取默认的KeyManagerFactory算法名称。static final KeyManagerFactorygetInstance(String algorithm) 返回一个充当密钥管理器工厂的KeyManagerFactory对象。static final KeyManagerFactorygetInstance(String algorithm, String provider) 返回一个充当密钥管理器工厂的KeyManagerFactory对象。static final KeyManagerFactorygetInstance(String algorithm, Provider provider) 返回一个充当密钥管理器工厂的KeyManagerFactory对象。final KeyManager[]为每种类型的密钥材料返回一个密钥管理器。final Provider返回此KeyManagerFactory对象的提供程序。final void使用密钥材料源初始化此工厂。final voidinit(ManagerFactoryParameters spec) 使用特定于提供程序的密钥材料源初始化此工厂。
-
Constructor Details
-
KeyManagerFactory
创建一个KeyManagerFactory对象。- 参数:
-
factorySpi- 代理 -
provider- 提供程序 -
algorithm- 算法
-
-
Method Details
-
getDefaultAlgorithm
获取默认的KeyManagerFactory算法名称。默认算法可以通过将
ssl.KeyManagerFactory.algorithm安全属性的值设置为所需的算法名称在运行时更改。- 返回:
-
根据
ssl.KeyManagerFactory.algorithm安全属性指定的默认算法名称,如果不存在此类属性,则返回特定于实现的默认值。 - 参见:
-
getAlgorithm
返回此KeyManagerFactory对象的算法名称。这是在创建此
KeyManagerFactory对象的getInstance调用中指定的相同名称。- 返回:
-
此
KeyManagerFactory对象的算法名称。
-
getInstance
返回一个充当密钥管理器工厂的KeyManagerFactory对象。此方法遍历已注册的安全提供程序列表,从最首选的提供程序开始。返回一个封装了来自支持指定算法的第一个提供程序的KeyManagerFactorySpi实现的新KeyManagerFactory对象。
请注意,已注册提供程序的列表可以通过
Security.getProviders()方法检索。- 实现注意:
-
JDK参考实现还使用
jdk.security.provider.preferredSecurity属性来确定指定算法的首选提供程序顺序。这可能与Security.getProviders()返回的提供程序顺序不同。 - 参数:
-
algorithm- 请求算法的标准名称。有关标准算法名称的信息,请参阅Java安全标准算法名称规范中的KeyManagerFactory部分。 - 返回:
-
新的
KeyManagerFactory对象 - 抛出:
-
NoSuchAlgorithmException- 如果没有Provider支持指定算法的KeyManagerFactorySpi实现 -
NullPointerException- 如果algorithm为null - 参见:
-
getInstance
public static final KeyManagerFactory getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException 返回一个充当密钥管理器工厂的KeyManagerFactory对象。返回一个封装了来自指定提供程序的KeyManagerFactorySpi实现的新KeyManagerFactory对象。指定的提供程序必须在安全提供程序列表中注册。
请注意,已注册提供程序的列表可以通过
Security.getProviders()方法检索。- 参数:
-
algorithm- 请求算法的标准名称。有关标准算法名称的信息,请参阅Java安全标准算法名称规范中的KeyManagerFactory部分。 -
provider- 提供程序的名称。 - 返回:
-
新的
KeyManagerFactory对象 - 抛出:
-
IllegalArgumentException- 如果提供程序名称为null或空 -
NoSuchAlgorithmException- 如果指定提供程序中不可用指定算法的KeyManagerFactorySpi实现 -
NoSuchProviderException- 如果指定提供程序未在安全提供程序列表中注册 -
NullPointerException- 如果algorithm为null - 参见:
-
getInstance
public static final KeyManagerFactory getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException 返回一个充当密钥管理器工厂的KeyManagerFactory对象。返回一个封装了来自指定Provider对象的KeyManagerFactorySpi实现的新KeyManagerFactory对象。请注意,指定的Provider对象不必在提供程序列表中注册。
- 参数:
-
algorithm- 请求算法的标准名称。有关标准算法名称的信息,请参阅Java安全标准算法名称规范中的KeyManagerFactory部分。 -
provider- 提供程序的实例。 - 返回:
-
新的
KeyManagerFactory对象 - 抛出:
-
IllegalArgumentException- 如果提供程序为null -
NoSuchAlgorithmException- 如果指定Provider对象中不可用指定算法的@KeyManagerFactorySpi实现 -
NullPointerException- 如果algorithm为null - 参见:
-
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
使用特定于提供程序的密钥材料源初始化此工厂。在某些情况下,提供程序可能需要除密钥库和密码之外的初始化参数。预期使用该特定提供程序的用户将传递由提供程序定义的适当
ManagerFactoryParameters的实现。然后,提供程序可以调用ManagerFactoryParameters实现中指定的方法以获取所需的信息。- 参数:
-
spec- 提供程序特定参数规范的实现 - 抛出:
-
InvalidAlgorithmParameterException- 如果遇到错误
-
getKeyManagers
为每种类型的密钥材料返回一个密钥管理器。- 返回:
- 密钥管理器
- 抛出:
-
IllegalStateException- 如果KeyManagerFactory未初始化
-