javax.crypto.spec
Class SecretKeySpec
- java.lang.Object
javax.crypto.spec.SecretKeySpec
- public class SecretKeySpec
- extends java.lang.Object
- implements java.security.spec.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.
Constructor Summary
| Constructor and Description |
|---|
SecretKeySpec(byte[] key,int offset,int len,java.lang.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,java.lang.String algorithm)
Constructs a secret key from the given byte array.
|
Method Summary
| Modifier and Type | Method and Description |
|---|---|
|
equals(java.lang.Object obj)
Tests for equality between the specified object and this
object.
|
|
getAlgorithm()
Returns the name of the algorithm associated with this secret key.
|
|
getEncoded()
Returns the key material of this secret key.
|
|
getFormat()
Returns the name of the encoding format for this secret key.
|
|
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
SecretKeySpec
- public SecretKeySpec(byte[] key,
- java.lang.String algorithm)
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 Appendix A in the
Java Cryptography Extension Reference Guide
for information about standard algorithm names. java.lang.IllegalArgumentException - if algorithm
is null or key is null or empty. SecretKeySpec
- public SecretKeySpec(byte[] key,
- int offset,
- int len,
- java.lang.String algorithm)
len bytes of key, starting at
offset inclusive.
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.
key - the key material of the secret key. The first
len bytes of the array beginning at
offset inclusive are copied to protect
against subsequent modification. offset - the offset in key where 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 Appendix A in the
Java Cryptography Extension Reference Guide
for information about standard algorithm names. java.lang.IllegalArgumentException - if algorithm
is null or key is null, empty, or too short,
i.e. key.length-offset. java.lang.ArrayIndexOutOfBoundsException - is thrown if
offset or len index bytes outside the
key. Method Detail
getAlgorithm
- public java.lang.String getAlgorithm( )
getAlgorithm in interface java.security.Key
getFormat
- public java.lang.String getFormat( )
getFormat in interface java.security.Key
getEncoded
- public byte[] getEncoded()
getEncoded in interface java.security.Key
hashCode
- public int hashCode()
hashCode in class java.lang.Object
equals
- public boolean equals(java.lang.Object obj)
equals in class java.lang.Object
obj - the object to test for equality with this object. obj is null or otherwise.
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.