javax.crypto.spec
Class SecretKeySpec

java.lang.Object
  extended by javax.crypto.spec.SecretKeySpec
All Implemented Interfaces:
Serializable, Key, KeySpec, SecretKey

public class SecretKeySpec
extends Object
implements KeySpec, SecretKey

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.

Version:
$Id: SecretKeySpec.java 1913 2007-08-08 02:41:53Z jpeters $
Author:
Patric Kabus, Jan Peters
See Also:
Serialized Form

Field Summary
private  String algorithm_
          The name of the secret-key algorithm.
private  byte[] key_
          The key material of the secret key.
 
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 obj)
          Calculates a hash code value for the 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
 

Field Detail

algorithm_

private String algorithm_
The name of the secret-key algorithm.


key_

private byte[] key_
The key material of the secret key.

Constructor Detail

SecretKeySpec

public SecretKeySpec(byte[] key,
                     String algorithm)
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 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.

Parameters:
key - the key material of the secret key.
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.
Throws:
IllegalArgumentException - if algorithm is null or key is null or empty.

SecretKeySpec

public 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.

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) should be used.

Parameters:
key - the key material of the secret key.
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.
Throws:
IllegalArgumentException - if algorithm is null or key is null or empty.
ArrayIndexOutOfBoundsException - - is thrown if offset or len index bytes outside the key .
Method Detail

getAlgorithm

public String getAlgorithm()
Returns the name of the algorithm associated with this secret key.

Specified by:
getAlgorithm in interface Key
Returns:
the secret key algorithm.

getFormat

public String getFormat()
Returns the name of the encoding format for this secret key.

Specified by:
getFormat in interface Key
Returns:
the string "RAW".

getEncoded

public byte[] getEncoded()
Returns the key material of this secret key.

Specified by:
getEncoded in interface Key
Returns:
the key material.

hashCode

public int hashCode()
Calculates a hash code value for the object. Objects that are equal will also have the same hashcode.

Overrides:
hashCode in class Object
Returns:
a hash code value for this object.
See Also:
Object#hashCode Object.hasCode()}, {@link Hashtable}

equals

public boolean equals(Object obj)
Calculates a hash code value for the object. Objects that are equal will also have the same hashcode.

Overrides:
equals in class Object
Parameters:
obj - the reference object with which to compare.
Returns:
true if this object is the same as the obj argument; false otherwise.
See Also:
Object#equals() Object.equals(java.lang.Object)}, {@link Hashtable}


Copyright © Fraunhofer Gesellschaft. All Rights Reserved.