javax.crypto.spec

Class DESKeySpec

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 intDES_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 booleanisParityAdjusted(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 booleanisWeak(byte[] key, int offset)
Tests if the bytes between [offset, offset+7] constitute a weak or semi-weak DES key.

Field Detail

DES_KEY_LEN

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

Constructor Detail

DESKeySpec

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

Parameters: key The key bytes.

Throws: java.security.InvalidKeyException If there are less than 8 bytes in the array.

DESKeySpec

public DESKeySpec(byte[] key, int offset)
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: java.security.InvalidKeyException If there are less than 8 bytes starting at offset.

Method Detail

getKey

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

Returns: The key bytes.

isParityAdjusted

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

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: java.security.InvalidKeyException If there are not enough bytes in the array.

isWeak

public static boolean isWeak(byte[] key, int offset)
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.