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 Summary
ConstructorsConstructorDescriptionSecretKeySpec(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 Summary
Modifier 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.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods declared in interface javax.security.auth.Destroyable
destroy, isDestroyed
-
Constructor Details
-
SecretKeySpec
Constructs 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- ifalgorithmis null orkeyis null or empty.- External Specifications
-
SecretKeySpec
Constructs 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 firstlenbytes of the array beginning atoffsetinclusive are copied to protect against subsequent modification.offset- the offset inkeywhere 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- ifalgorithmis null orkeyis null, empty, or too short, i.e.key.length-offset<len.ArrayIndexOutOfBoundsException- is thrown ifoffsetorlenindex bytes outside thekey.- External Specifications
-
-
Method Details
-
getAlgorithm
Returns the name of the algorithm associated with this secret key.- Specified by:
getAlgorithmin interfaceKey- Returns:
- the secret key algorithm.
- External Specifications
-
getFormat
-
getEncoded
public byte[] getEncoded()Returns the key material of this secret key.- Specified by:
getEncodedin interfaceKey- Returns:
- the key material. Returns a new array each time this method is called.
-
hashCode
-
equals
Tests 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.
-