- All Implemented Interfaces:
- Serializable,- Key,- KeySpec,- SecretKey,- Destroyable
public class SecretKeySpec extends Object implements KeySpec, SecretKey
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:
- SecretKey,- SecretKeyFactory, Serialized Form
- 
Constructor SummaryConstructors Constructor Description SecretKeySpec(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 Type Method Description booleanequals(Object obj)Tests for equality between the specified object and this object.StringgetAlgorithm()Returns the name of the algorithm associated with this secret key.byte[]getEncoded()Returns the key material of this secret key.StringgetFormat()Returns the name of the encoding format for this secret key.inthashCode()Calculates a hash code value for the object.
- 
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.
 
- 
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.
 
 
- 
- 
Method Details- 
getAlgorithmReturns the name of the algorithm associated with this secret key.- Specified by:
- getAlgorithmin interface- Key
- Returns:
- the secret key algorithm.
 
- 
getFormatReturns the name of the encoding format for this secret key.
- 
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.
 
- 
hashCodepublic int hashCode()Calculates a hash code value for the object. Objects that are equal will also have the same hashcode.- Overrides:
- hashCodein class- Object
- Returns:
- a hash code value for this object.
- See Also:
- Object.equals(java.lang.Object),- System.identityHashCode(java.lang.Object)
 
- 
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.- Overrides:
- equalsin class- Object
- Parameters:
- obj- the object to test for equality with this object.
- Returns:
- true if the objects are considered equal, false if
 objis null or otherwise.
- See Also:
- Object.hashCode(),- HashMap
 
 
-