Bouncy Castle Cryptography 1.18

javax.crypto.spec
Class SecretKeySpec

java.lang.Object
  |
  +--javax.crypto.spec.SecretKeySpec
All Implemented Interfaces:
java.security.Key, java.security.spec.KeySpec, SecretKey, java.io.Serializable

public class SecretKeySpec
extends java.lang.Object
implements java.security.spec.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.

See Also:
SecretKey, SecretKeyFactory, Serialized Form

Field Summary
 
Fields inherited from interface java.security.Key
serialVersionUID
 
Constructor Summary
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
 boolean equals(java.lang.Object obj)
           
 java.lang.String getAlgorithm()
          Returns the name of the algorithm associated with this secret key.
 byte[] getEncoded()
          Returns the key material of this secret key.
 java.lang.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

SecretKeySpec

public SecretKeySpec(byte[] key,
                     java.lang.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 See Appendix A in the Java Cryptography Extension API Specification & Reference for information about standard algorithm names.

SecretKeySpec

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

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.

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 API Specification & Reference for information about standard algorithm names.
Method Detail

getAlgorithm

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

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

getFormat

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

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

getEncoded

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

Specified by:
getEncoded in interface java.security.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 java.lang.Object

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

Bouncy Castle Cryptography 1.18