javax.crypto.spec
Class DESKeySpec

java.lang.Object
  |
  +--javax.crypto.spec.DESKeySpec

public class DESKeySpec
extends java.lang.Object
implements java.security.spec.KeySpec

A class that provides a specification for a DES key.

See Also:
Key, java.security.KeyFactory, KeySpec

Field Summary
static int DES_KEY_LEN
           
static java.lang.String ident
           
 
Constructor Summary
DESKeySpec(byte[] key)
          Uses the first 8 bytes in key as the key material for the DES key
DESKeySpec(byte[] key, int offset)
          Uses the first 8 bytes in key, beginning at offset, as the key material for the DES key.
 
Method Summary
 byte[] getKey()
          Returns the DES key material.
static boolean isParityAdjusted(byte[] key, int offset)
          Checks if the given DES key, starting at offset, is parity-adjusted.
static boolean isWeak(byte[] key, int offset)
          DES has a number of weak keys.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ident

public static final java.lang.String ident

DES_KEY_LEN

public static final int DES_KEY_LEN
Constructor Detail

DESKeySpec

public DESKeySpec(byte[] key)
           throws java.security.InvalidKeyException
Uses the first 8 bytes in key as the key material for the DES key
Parameters:
key - the buffer with the DES key material.
Throws:
java.security.InvalidKeyException - if the given key material is shorter than 8 bytes.

DESKeySpec

public DESKeySpec(byte[] key,
                  int offset)
           throws java.security.InvalidKeyException
Uses the first 8 bytes in key, beginning at offset, as the key material for the DES key.
Parameters:
key - the buffer with the DES key material.
offset - the offset in key, where the DES key material starts.
Throws:
java.security.InvalidKeyException - if the given key material, starting at offset, is shorter than 8 bytes.
Method Detail

getKey

public byte[] getKey()
Returns the DES key material.
Returns:
the DES key material.

isParityAdjusted

public static boolean isParityAdjusted(byte[] key,
                                       int offset)
                                throws java.security.InvalidKeyException
Checks if the given DES key, starting at offset, is parity-adjusted.
Parameters:
key - the DES key material.
offset - the offset in key, where the DES key material starts.
Returns:
true if the given DES key material is parity-adjusted, false otherwise.
Throws:
java.security.InvalidKeyException - if the given key material, starting at offset, is shorter than 8 bytes.

isWeak

public static boolean isWeak(byte[] key,
                             int offset)
                      throws java.security.InvalidKeyException
DES has a number of weak keys. This method will check if the given DES key material is weak or semi-weak.

See "Applied Cryptography" by Bruce Schneier for more information.

Returns:
true if the given DES key material is weak or semi-weak, false otherwise.
Throws:
java.security.InvalidKeyException - if the given key material, starting at offset, is shorter than 8 bytes.