is new.
java.lang.Objectjavax.crypto.ExemptionMechanism
This class provides the functionality of an exemption mechanism, examples of which are key recovery , key weakening , and key escrow .
Applications or applets that use an exemption mechanism may be granted stronger encryption capabilities than those which don't.
| Constructor Summary | |
|---|---|
| protected |
ExemptionMechanism
(
ExemptionMechanismSpi
exmechSpi,
Provider
provider,
String
mechanism) Creates a ExemptionMechanism object. |
| Method Summary | |
|---|---|
| protected void |
finalize
() Ensures that the key stored away by this ExemptionMechanism object will be wiped out when there are no more references to it. |
| byte[] |
genExemptionBlob
() Generates the exemption mechanism key blob. |
| int |
genExemptionBlob
(byte[] output) Generates the exemption mechanism key blob, and stores the result in the output buffer. |
| int |
genExemptionBlob
(byte[] output, int outputOffset) Generates the exemption mechanism key blob, and stores the result in the output buffer, starting at outputOffset inclusive. |
| static ExemptionMechanism |
getInstance
(
String
Generates a ExemptionMechanism object that implements the specified exemption
mechanism algorithm.
|
| static ExemptionMechanism |
getInstance
(
String
algorithm,
Generates a ExemptionMechanism object for the specified exemption mechanism
algorithm
from the specified provider. |
| static ExemptionMechanism |
getInstance
(
String
algorithm,
Generates a ExemptionMechanism object for the specified exemption mechanism from the specified provider. |
| String |
getName
() Returns the exemption mechanism name of this ExemptionMechanism object. |
| int |
getOutputSize
(int inputLen) Returns the length in bytes that an output buffer would need to be in order to hold the result of the next genExemptionBlob operation, given the input length inputLen (in bytes). |
| Provider |
getProvider
() Returns the provider of this ExemptionMechanism object. |
| void |
init
(
Key
key) Initializes this exemption mechanism with a key. |
| void |
init
(
Key
key,
AlgorithmParameters
params) Initializes this exemption mechanism with a key and a set of algorithm parameters. |
| void |
init
(
Key
key,
AlgorithmParameterSpec
params) Initializes this exemption mechanism with a key and a set of algorithm parameters. |
| boolean |
isCryptoAllowed
(
Key
key) Returns whether the result blob has been generated successfully by this exemption mechanism. |
| Methods inherited from class java.lang. Object |
|---|
| clone , equals , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
| Constructor Detail |
|---|
protected ExemptionMechanism(ExemptionMechanismSpi exmechSpi,
Provider provider,
String mechanism)
| Method Detail |
|---|
public final String getName()
This is the same name that was specified in one of the getInstance calls that created this ExemptionMechanism object.
public static final ExemptionMechanismgetInstance(Stringalgorithm)
mechanism)throws NoSuchAlgorithmException
mechanism algorithm.
mechanism algorithm,
algorithm
NullPointerException
- if algorithm is null.
algorithm
public static final ExemptionMechanismgetInstance(Stringalgorithm,
mechanism,String provider) throws NoSuchAlgorithmException, NoSuchProviderException
algorithm
NullPointerException
- if algorithm is null.
algorithm
public static final ExemptionMechanismgetInstance(Stringalgorithm,
mechanism,Provider provider) throws NoSuchAlgorithmException
algorithm
from the specified provider. Note: the provider doesn't have to be registered.
algorithm
NullPointerException
- if algorithm is null.
algorithm
public final Provider getProvider()
public final boolean isCryptoAllowed(Key key)
throws ExemptionMechanismException
The method also makes sure that the key passed in is the same as the one this exemption mechanism used in initializing and generating phases.
mechanism; false if key is null.
public final int getOutputSize(int inputLen)
throws IllegalStateException
The actual output length of the next genExemptionBlob call may be smaller than the length returned by this method.
public final void init(Key key)
throws InvalidKeyException,
ExemptionMechanismException
If this exemption mechanism requires any algorithm parameters that cannot be derived from the given key, the underlying exemption mechanism implementation is supposed to generate the required parameters itself (using provider-specific default values); in the case that algorithm parameters must be specified by the caller, an InvalidKeyException is raised.
public final void init(Key key,
AlgorithmParameterSpec params)
throws InvalidKeyException,
InvalidAlgorithmParameterException,
ExemptionMechanismException
If this exemption mechanism requires any algorithm parameters and params is null, the underlying exemption mechanism implementation is supposed to generate the required parameters itself (using provider-specific default values); in the case that algorithm parameters must be specified by the caller, an InvalidAlgorithmParameterException is raised.
public final void init(Key key,
AlgorithmParameters params)
throws InvalidKeyException,
InvalidAlgorithmParameterException,
ExemptionMechanismException
If this exemption mechanism requires any algorithm parameters and params is null, the underlying exemption mechanism implementation is supposed to generate the required parameters itself (using provider-specific default values); in the case that algorithm parameters must be specified by the caller, an InvalidAlgorithmParameterException is raised.
public final byte[] genExemptionBlob()
throws IllegalStateException,
ExemptionMechanismException
public final int genExemptionBlob(byte[] output)
throws IllegalStateException,
ShortBufferException,
ExemptionMechanismException
If the output buffer is too small to hold the result, a ShortBufferException is thrown. In this case, repeat this call with a larger output buffer. Use getOutputSize to determine how big the output buffer should be.
public final int genExemptionBlob(byte[] output,
int outputOffset)
throws IllegalStateException,
ShortBufferException,
ExemptionMechanismException
If the output buffer is too small to hold the result, a ShortBufferException is thrown. In this case, repeat this call with a larger output buffer. Use getOutputSize to determine how big the output buffer should be.
protected void finalize()