is new.
java.lang.Objectjavax.crypto.spec.SecretKeySpec
This class specifies a secret key in a provider-independent fashion.
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.
| Field Summary |
|---|
| Fields inherited from interface java.security. Key |
|---|
| serialVersionUID |
| Constructor Summary | |
|---|---|
|
SecretKeySpec
(byte[] key, int offset, int len,
String
algorithm) Constructs a secret key from the given byte array, using the first len bytes of key, starting at offset inclusive. |
|
|
SecretKeySpec
(byte[] key,
String
algorithm) Constructs a secret key from the given byte array. |
|
| Method Summary | |
|---|---|
| boolean |
equals
(
Object
Tests for equality between the specified
and
object.
|
| String |
getAlgorithm
() Returns the name of the algorithm associated with this secret key. |
| byte[] |
getEncoded
() Returns the key material of this secret key. |
| String |
getFormat
() Returns the name of the encoding format for this secret key. |
| int |
hashCode
() Calculates a hash code value for the object. |
| Methods inherited from class java.lang. Object |
|---|
| clone , finalize , getClass , notify , notifyAll , toString , wait , wait , wait |
| Constructor Detail |
|---|
public SecretKeySpec(byte[] key,
String algorithm)
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 key is 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.
The contents of the array are copied to protect against subsequent modification.
Throws:
IllegalArgumentException
- if algorithm is null or key is null or empty.
public SecretKeySpec(byte[] key,
int offset,
int len,
String algorithm)
The bytes that constitute the secret key are those between key[offset] and key[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 key is 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.
The first len bytes of the array beginning at offset inclusive are copied to protect against subsequent modification.
Throws:
IllegalArgumentException
- if algorithm is null or key is invalid, i.e. null, empty, or too short.
| Method Detail |
|---|
public String getAlgorithm()
public String getFormat()
public byte[] getEncoded()
the key material. Returns a new array each time this method is called.
public int hashCode()
public boolean equals(Object obj)
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.
The equals method implements an equivalence relation on non-null object references:
The
equals
method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any non-null reference values x and y, this method returns true if and only if x and y refer to the same object (x == y has the value true).
Note that it is generally necessary to override the
hashCode
method whenever this method is overridden, so as to maintain the general contract for the
hashCode
method, which states that equal objects must have equal hash codes.
test for equality with this object.
true if the objects are considered equal, false if obj is null or otherwise.