|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.crypto
类 ExemptionMechanism
java.lang.Object javax.crypto.ExemptionMechanism
-
public class ExemptionMechanism
- extends Object
此类提供了豁免机制的功能,例如,密钥恢复、密钥唤醒 和密钥托管。
使用豁免机制的应用程序或 applet 比不使用豁免机制的应用程序或 applet 具有更强的加密性能。
- 从以下版本开始:
- 1.4
构造方法摘要 | |
---|---|
protected |
ExemptionMechanism(ExemptionMechanismSpi exmechSpi, Provider provider, String mechanism) 创建 ExemptionMechanism 对象。 |
方法摘要 | |
---|---|
protected void |
finalize() 确保不存在对此 ExemptionMechanism 对象另外存储的密钥的引用时,该密钥将被除去。 |
byte[] |
genExemptionBlob() 生成豁免机制密钥 blob。 |
int |
genExemptionBlob(byte[] output) 生成豁免机制密钥 blob 并将结果存储在 output 缓冲区中。 |
int |
genExemptionBlob(byte[] output, int outputOffset) 生成豁免机制密钥 blob 并将结果存储在从 outputOffset (包括)开始的 output 缓冲区中。 |
static ExemptionMechanism |
getInstance(String algorithm) 生成实现该指定的豁免机制算法的 ExemptionMechanism 对象。 |
static ExemptionMechanism |
getInstance(String algorithm, Provider provider) 根据指定的提供程序为指定的豁免机制算法生成 ExemptionMechanism 对象。 |
static ExemptionMechanism |
getInstance(String algorithm, String provider) 从指定的提供程序为指定的豁免机制生成 ExemptionMechanism 对象。 |
String |
getName() 返回此 ExemptionMechanism 对象的豁免机制名称。 |
int |
getOutputSize(int inputLen) 给定了输入长度 inputLen (以字节为单位)的情况下,返回用于保存下一个 genExemptionBlob 操作结果所需的输出缓冲区长度的字节数。 |
Provider |
getProvider() 返回此 ExemptionMechanism 对象的提供程序。 |
void |
init(Key key) 用密钥初始化此豁免机制。 |
void |
init(Key key, AlgorithmParameters params) 用一个密钥和一组算法参数初始化此豁免机制。 |
void |
init(Key key, AlgorithmParameterSpec params) 用一个密钥和一组算法参数初始化此豁免机制。 |
boolean |
isCryptoAllowed(Key key) 返回此豁免机制是否已成功生成结果 blob。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
ExemptionMechanism
protected ExemptionMechanism(ExemptionMechanismSpi exmechSpi, Provider provider, String mechanism)
-
创建 ExemptionMechanism 对象。
- 参数:
-
exmechSpi
- 代理 -
provider
- 提供程序 -
mechanism
- 豁免机制
方法详细信息 |
---|
getName
public final String getName()
-
返回此
ExemptionMechanism
对象的豁免机制名称。这与创建此
ExemptionMechanism
对象的getInstance
调用之一指定的名称相同。 -
- 返回:
-
此
ExemptionMechanism
对象的豁免机制名称。
getInstance
public static final ExemptionMechanism getInstance(String algorithm) throws NoSuchAlgorithmException
-
生成实现该指定的豁免机制算法的
ExemptionMechanism
对象。如果默认的提供程序包提供了请求的豁免机制算法的实现,则会返回包含此实现的一个ExemptionMechanism
实例。如果默认的提供程序包中没有可用的豁免机制,则将搜索其他的提供程序包。 -
- 参数:
-
algorithm
- 所请求的豁免机制的标准名称。有关标准豁免机制名称的信息,请参阅《Java Cryptography Extension Reference Guide》中的附录 A。 - 返回:
-
新的
ExemptionMechanism
对象 - 抛出:
-
NullPointerException
- 如果algorithm
为 null。 -
NoSuchAlgorithmException
- 如果默认的提供程序包中指定的算法不可用,或者搜索到的其他提供程序包都不可用。
getInstance
public static final ExemptionMechanism getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
-
从指定的提供程序为指定的豁免机制生成
ExemptionMechanism
对象。 -
- 参数:
-
algorithm
- 所请求的豁免机制的标准名称。有关标准豁免机制名称的信息,请参阅《 Java Cryptography Extension Reference Guide》中的附录 A。 -
provider
- 提供程序的名称 - 返回:
-
新的
ExemptionMechanism
对象 - 抛出:
-
NullPointerException
- 如果algorithm
为 null。 -
NoSuchAlgorithmException
- 如果指定的提供程序中未提供指定的算法。 -
NoSuchProviderException
- 如果指定的提供程序未配置。 -
IllegalArgumentException
- 如果provider
为 null。
getInstance
public static final ExemptionMechanism getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
-
根据指定的提供程序为指定的豁免机制算法生成
ExemptionMechanism
对象。注:provider
不一定都需要注册。 -
- 参数:
-
algorithm
- 所请求的豁免机制的标准名称。有关标准豁免机制名称的信息,请参阅《Java Cryptography Extension Reference Guide》中的附录 A。 -
provider
- 提供程序 - 返回:
-
新的
ExemptionMechanism
对象 - 抛出:
-
NullPointerException
- 如果algorithm
为 null。 -
NoSuchAlgorithmException
- 如果指定的提供程序中未提供指定的算法。 -
IllegalArgumentException
- 如果provider
为 null。
getProvider
public final Provider getProvider()
-
返回此
ExemptionMechanism
对象的提供程序。 -
- 返回:
-
此
ExemptionMechanism
对象的提供程序。
isCryptoAllowed
public final boolean isCryptoAllowed(Key key) throws ExemptionMechanismException
-
返回此豁免机制是否已成功生成结果 blob。
该方法还确保了传入的密钥与此豁免机制在初始化和生成阶段所使用的密钥相同。
-
- 参数:
-
key
- 加密将使用的密钥。 - 返回:
-
是否此豁免机制已成功生成了相同密钥的结果 blob;如果
key
为 null,则返回 false。 - 抛出:
-
ExemptionMechanismException
- 如果在确定此豁免机制对象是否成功生成了结果 blob 的过程中出现问题。
getOutputSize
public final int getOutputSize(int inputLen) throws IllegalStateException
-
给定了输入长度
inputLen
(以字节为单位)的情况下,返回用于保存下一个genExemptionBlob
操作结果所需的输出缓冲区长度的字节数。下一个
genExemptionBlob
调用的实际输出长度可能小于此方法返回的长度。 -
- 参数:
-
inputLen
- 输入长度(以字节为单位) - 返回:
- 所需的输出缓冲区大小(以字节为单位)
- 抛出:
-
IllegalStateException
- 如果此豁免机制处于错误的状态(例如,尚未初始化)