java.lang.Objectjavax.crypto.SecretKeyFactory
public class SecretKeyFactory
This class represents a factory for secret keys.
Key factories are used to convert keys (opaque cryptographic keys of type Key) into key specifications (transparent representations of the underlying key material), and vice versa. Secret key factories operate only on secret (symmetric) keys.
Key factories are bi-directional, i.e., they allow to build an opaque key object from a given key specification (key material), or to retrieve the underlying key material of a key object in a suitable format.
Application developers should refer to their provider's documentation to find out which key specifications are supported by the generateSecret and getKeySpec methods. For example, the DES secret-key factory supplied by the "SunJCE" provider supports DESKeySpec as a transparent representation of DES keys, and that provider's secret-key factory for Triple DES keys supports DESedeKeySpec as a transparent representation of Triple DES keys.
Constructor Summary | |
---|---|
protected |
SecretKeyFactory
(
SecretKeyFactorySpi
keyFacSpi,
Provider
provider,
String
algorithm) Creates a SecretKeyFactory object. |
Method Summary | |
---|---|
SecretKey |
generateSecret
(
KeySpec
keySpec) Generates a SecretKey object from the provided key specification (key material). |
String |
getAlgorithm
() Returns the algorithm name of this SecretKeyFactory object. |
static SecretKeyFactory |
getInstance
(
String
algorithm) Returns a SecretKeyFactory object that converts secret keys of the specified algorithm. |
static SecretKeyFactory |
getInstance
(
String
algorithm,
Provider
provider) Returns a SecretKeyFactory object that converts secret keys of the specified algorithm. |
static SecretKeyFactory |
getInstance
(
String
algorithm,
String
provider) Returns a SecretKeyFactory object that converts secret keys of the specified algorithm. |
KeySpec |
getKeySpec
(
SecretKey
key,
Class
keySpec) Returns a specification (key material) of the given key object in the requested format. |
Provider |
getProvider
() Returns the provider of this SecretKeyFactory object. |
SecretKey |
translateKey
(
SecretKey
key) Translates a key object, whose provider may be unknown or potentially untrusted, into a corresponding key object of this secret-key factory. |
Methods inherited from class java.lang. Object |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
Constructor Detail |
---|
protected SecretKeyFactory(SecretKeyFactorySpi keyFacSpi, Provider provider, String algorithm)
Method Detail |
---|
public static final SecretKeyFactory getInstance(String algorithm) throws NoSuchAlgorithmException
This method traverses the list of registered security Providers, starting with the most preferred Provider. A new SecretKeyFactory object encapsulating the SecretKeyFactorySpi 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 SecretKeyFactory getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
A new SecretKeyFactory object encapsulating the SecretKeyFactorySpi 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 SecretKeyFactory getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
A new SecretKeyFactory object encapsulating the SecretKeyFactorySpi 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 String getAlgorithm()
This is the same name that was specified in one of the getInstance calls that created this SecretKeyFactory object.
public final SecretKey generateSecret(KeySpec keySpec) throws InvalidKeySpecException
public final KeySpec getKeySpec(SecretKey key, Class keySpec) throws InvalidKeySpecException
public final SecretKey translateKey(SecretKey key) throws InvalidKeyException