java.lang.Object javax.crypto.ExemptionMechanism
public class 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
algorithm) Returns an ExemptionMechanism object that implements the specified exemption mechanism algorithm. |
static ExemptionMechanism |
getInstance
(
String
algorithm,
Provider
provider) Returns an ExemptionMechanism object that implements the specified exemption mechanism algorithm. |
static ExemptionMechanism |
getInstance
(
String
algorithm,
String
provider) Returns an ExemptionMechanism object that implements the specified exemption mechanism algorithm. |
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 ExemptionMechanism getInstance(String algorithm) throws NoSuchAlgorithmException
This method traverses the list of registered security Providers, starting with the most preferred Provider. A new ExemptionMechanism object encapsulating the ExemptionMechanismSpi implementation from the first Provider that supports the specified algorithm is returned.
Note that the list of registered providers may be retrieved via the Security.getProviders() method.
public static final ExemptionMechanism getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
A new ExemptionMechanism object encapsulating the ExemptionMechanismSpi implementation from the specified provider is returned. The specified provider must be registered in the security provider list.
Note that the list of registered providers may be retrieved via the Security.getProviders() method.
public static final ExemptionMechanism getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
A new ExemptionMechanism object encapsulating the ExemptionMechanismSpi implementation from the specified Provider object is returned. Note that the specified Provider object does not have to be registered in the provider list.
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.
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()