public class KeyManagerFactory extends Object
KeyManager
Modifier | Constructor and Description |
---|---|
protected |
KeyManagerFactory(KeyManagerFactorySpi factorySpi, Provider provider, String algorithm)
创建一个KeyManagerFactory对象。
|
Modifier and Type | Method and Description |
---|---|
String |
getAlgorithm()
返回此
KeyManagerFactory 对象的算法名称。
|
static String |
getDefaultAlgorithm()
获取默认的KeyManagerFactory算法名称。
|
static KeyManagerFactory |
getInstance(String algorithm)
返回一个
KeyManagerFactory 对象,作为密钥管理器的工厂。
|
static KeyManagerFactory |
getInstance(String algorithm, Provider provider)
返回一个
KeyManagerFactory 对象,作为密钥管理器的工厂。
|
static KeyManagerFactory |
getInstance(String algorithm, String provider)
返回一个
KeyManagerFactory 对象,作为密钥管理器的工厂。
|
KeyManager[] |
getKeyManagers()
返回每种类型的密钥材料的一个密钥管理器。
|
Provider |
getProvider()
返回此
KeyManagerFactory 对象的提供者。
|
void |
init(KeyStore ks, char[] password)
使用关键材料来源初始化该工厂。
|
void |
init(ManagerFactoryParameters spec)
使用提供商特定的密钥材料来源初始化该工厂。
|
protected KeyManagerFactory(KeyManagerFactorySpi factorySpi, Provider provider, String algorithm)
factorySpi
- 代表
provider
- 提供商
algorithm
- 算法
public static final String getDefaultAlgorithm()
通过将ssl.KeyManagerFactory.algorithm
安全属性的值设置为所需的算法名称,可以在运行时更改默认算法。
ssl.KeyManagerFactory.algorithm
安全属性指定的默认算法名称,如果没有此类属性,则为特定于实现的默认值。
security properties
public final String getAlgorithm()
KeyManagerFactory
对象的算法名称。
这是在创建此KeyManagerFactory
对象的getInstance
调用之一中指定的getInstance
。
KeyManagerFactory
对象的算法名称。
public static final KeyManagerFactory getInstance(String algorithm) throws NoSuchAlgorithmException
KeyManagerFactory
对象,作为主要管理员的工厂。
此方法遍历已注册的安全提供程序列表,从最优选的提供程序开始。 返回从支持指定算法的第一个Provider中封装KeyManagerFactorySpi实现的新KeyManagerFactory对象。
请注意,注册提供商的列表可以通过Security.getProviders()
方法检索 。
algorithm
- 所algorithm
的标准名称。
见Java Secure Socket Extension Reference Guide有关标准算法名称的信息。
KeyManagerFactory
对象。
NoSuchAlgorithmException
- 如果没有提供者支持指定算法的KeyManagerFactorySpi实现。
NullPointerException
- 如果
algorithm
为空。
Provider
public static final KeyManagerFactory getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
KeyManagerFactory
对象,作为主要管理员的工厂。
返回从指定提供程序封装KeyManagerFactorySpi实现的新KeyManagerFactory对象。 指定的提供者必须在安全提供程序列表中注册。
请注意,注册提供商的列表可以通过Security.getProviders()
方法检索 。
algorithm
- 所algorithm
的标准名称。
见Java Secure Socket Extension Reference Guide有关标准算法名称的信息。
provider
- 提供商的名称。
KeyManagerFactory
对象。
NoSuchAlgorithmException
- 如果指定的算法的KeyManagerFactorySpi实现从指定的提供程序中不可用。
NoSuchProviderException
- 如果指定的提供程序未在安全提供程序列表中注册。
IllegalArgumentException
- 如果提供者名称为空或为空。
NullPointerException
- 如果
algorithm
为空。
Provider
public static final KeyManagerFactory getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
KeyManagerFactory
对象,作为关键经理的工厂。
返回从指定的Provider对象封装KeyManagerFactorySpi实现的新KeyManagerFactory对象。 请注意,指定的Provider对象不必在提供者列表中注册。
algorithm
- 所algorithm
的标准名称。
见Java Secure Socket Extension Reference Guide有关标准算法名称的信息。
provider
- 提供者的一个实例。
KeyManagerFactory
对象。
NoSuchAlgorithmException
- 如果指定的算法的KeyManagerFactorySpi实现从指定的Provider对象中不可用。
IllegalArgumentException
- 如果提供程序为空。
NullPointerException
- 如果
algorithm
为null。
Provider
public final Provider getProvider()
KeyManagerFactory
对象的提供者。
KeyManagerFactory
对象的提供者
public final void init(KeyStore ks, char[] password) throws KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException
提供商通常使用KeyStore获取在安全套接字协商期间使用的密钥材料。 KeyStore通常受密码保护。
为了更灵活的初始化,请参阅init(ManagerFactoryParameters)
。
ks
- 密钥库或null
password
- 恢复KeyStore中密钥的密码
KeyStoreException
- 如果此操作失败
NoSuchAlgorithmException
- 如果指定的算法不能从指定的提供者获得。
UnrecoverableKeyException
- 如果密钥无法恢复(例如给定的密码错误)。
public final void init(ManagerFactoryParameters spec) throws InvalidAlgorithmParameterException
在某些情况下,供应商可能需要除密钥库和密码之外的初始化参数。 预期该特定提供商的用户将通过提供商定义的适当的ManagerFactoryParameters
的实现。 然后提供者可以调用指定的方法ManagerFactoryParameters
实施方案以获得所需的信息。
spec
- 提供者特定参数规范的实现
InvalidAlgorithmParameterException
- 如果遇到错误
public final KeyManager[] getKeyManagers()
IllegalStateException
- 如果KeyManagerFactory未初始化
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.