javax.crypto.spec
Class DESKeySpec

java.lang.Object
  extended by javax.crypto.spec.DESKeySpec
All Implemented Interfaces:
KeySpec

public class DESKeySpec
extends Object
implements KeySpec

This class is a transparent wrapper for DES keys, which are arrays of 8 bytes.

Since:
1.4

Field Summary
static int DES_KEY_LEN
          The length of a DES key, in bytes.
 
Constructor Summary
DESKeySpec(byte[] key)
          Create a new DES key spec, copying the first 8 bytes from the byte array.
DESKeySpec(byte[] key, int offset)
          Create a new DES key spec, starting at offset in the byte array.
 
Method Summary
 byte[] getKey()
          Return the key as a byte array.
static boolean isParityAdjusted(byte[] key, int offset)
          Returns whether or not the given key is parity adjusted; i.e. every byte in the key has an odd number of "1" bits.
static boolean isWeak(byte[] key, int offset)
          Tests if the bytes between [offset, offset+7] constitute a weak or semi-weak DES key.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DES_KEY_LEN

public static final int DES_KEY_LEN
The length of a DES key, in bytes.

See Also:
Constant Field Values
Constructor Detail

DESKeySpec

public DESKeySpec(byte[] key)
           throws InvalidKeyException
Create a new DES key spec, copying the first 8 bytes from the byte array.

Parameters:
key - The key bytes.
Throws:
InvalidKeyException - If there are less than 8 bytes in the array.

DESKeySpec

public DESKeySpec(byte[] key,
                  int offset)
           throws InvalidKeyException
Create a new DES key spec, starting at offset in the byte array. The first 8 bytes starting at offset are copied.

Parameters:
key - The key bytes.
offset - The offset into the byte array at which to begin.
Throws:
InvalidKeyException - If there are less than 8 bytes starting at offset.
Method Detail

isParityAdjusted

public static boolean isParityAdjusted(byte[] key,
                                       int offset)
                                throws InvalidKeyException
Returns whether or not the given key is parity adjusted; i.e. every byte in the key has an odd number of "1" bits.

Parameters:
key - The key bytes, considered between [offset, offset+7]
offset - The offset into the byte array at which to begin.
Returns:
True if all bytes have an odd number of "1" bits.
Throws:
InvalidKeyException - If there are not enough bytes in the array.

isWeak

public static boolean isWeak(byte[] key,
                             int offset)
                      throws InvalidKeyException
Tests if the bytes between [offset, offset+7] constitute a weak or semi-weak DES key.

Parameters:
key - The key bytes to check.
offset - The offset in the byte array to start.
Returns:
true If the key bytes are a weak key.
Throws:
InvalidKeyException

getKey

public byte[] getKey()
Return the key as a byte array. This method does not copy the byte array.

Returns:
The key bytes.