Class SecretKeySpec
- All Implemented Interfaces:
- Serializable,- Key,- KeySpec,- SecretKey,- Destroyable
It can be used to construct a SecretKey from a byte array,
 without having to go through a (provider-based)
 SecretKeyFactory.
 
This class is only useful for raw secret keys that can be represented as a byte array and have no key parameters associated with them, e.g., DES or Triple DES keys.
- Since:
- 1.4
- See Also:
- 
Constructor SummaryConstructorsConstructorDescriptionSecretKeySpec(byte[] key, int offset, int len, String algorithm) Constructs a secret key from the given byte array, using the firstlenbytes ofkey, starting atoffsetinclusive.SecretKeySpec(byte[] key, String algorithm) Constructs a secret key from the given byte array.
- 
Method SummaryModifier and TypeMethodDescriptionbooleanTests for equality between the specified object and this object.Returns the name of the algorithm associated with this secret key.byte[]Returns the key material of this secret key.Returns the name of the encoding format for this secret key.inthashCode()Calculates a hash code value for the object.Methods declared in class java.lang.Objectclone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods declared in interface javax.security.auth.Destroyabledestroy, isDestroyed
- 
Constructor Details- 
SecretKeySpecConstructs a secret key from the given byte array.This constructor does not check if the given bytes indeed specify a secret key of the specified algorithm. For example, if the algorithm is DES, this constructor does not check if keyis 8 bytes long, and also does not check for weak or semi-weak keys. In order for those checks to be performed, an algorithm-specific key specification class (in this case:DESKeySpec) should be used.- Parameters:
- key- the key material of the secret key. The contents of the array are copied to protect against subsequent modification.
- algorithm- the name of the secret-key algorithm to be associated with the given key material. See the Java Security Standard Algorithm Names document for information about standard algorithm names.
- Throws:
- IllegalArgumentException- if- algorithmis null or- keyis null or empty.
- External Specifications
 
- 
SecretKeySpecConstructs a secret key from the given byte array, using the firstlenbytes ofkey, starting atoffsetinclusive.The bytes that constitute the secret key are those between key[offset]andkey[offset+len-1]inclusive.This constructor does not check if the given bytes indeed specify a secret key of the specified algorithm. For example, if the algorithm is DES, this constructor does not check if keyis 8 bytes long, and also does not check for weak or semi-weak keys. In order for those checks to be performed, an algorithm-specific key specification class (in this case:DESKeySpec) must be used.- Parameters:
- key- the key material of the secret key. The first- lenbytes of the array beginning at- offsetinclusive are copied to protect against subsequent modification.
- offset- the offset in- keywhere the key material starts.
- len- the length of the key material.
- algorithm- the name of the secret-key algorithm to be associated with the given key material. See the Java Security Standard Algorithm Names document for information about standard algorithm names.
- Throws:
- IllegalArgumentException- if- algorithmis null or- keyis null, empty, or too short, i.e.- key.length-offset<len.
- ArrayIndexOutOfBoundsException- is thrown if- offsetor- lenindex bytes outside the- key.
- External Specifications
 
 
- 
- 
Method Details- 
getAlgorithmReturns the name of the algorithm associated with this secret key.- Specified by:
- getAlgorithmin interface- Key
- Returns:
- the secret key algorithm.
- External Specifications
 
- 
getFormat
- 
getEncodedpublic byte[] getEncoded()Returns the key material of this secret key.- Specified by:
- getEncodedin interface- Key
- Returns:
- the key material. Returns a new array each time this method is called.
 
- 
hashCode
- 
equalsTests for equality between the specified object and this object. Two SecretKeySpec objects are considered equal if they are both SecretKey instances which have the same case-insensitive algorithm name and key encoding.
 
-