Class DESKeySpec

All Implemented Interfaces:
KeySpec

public class DESKeySpec
extends Object
implements KeySpec

This class specifies a DES key.

Since:
1.4

Fields

Modifier and Type Field and Description
static int DES_KEY_LEN

The constant which defines the length of a DES key in bytes.

Constructors

Constructor and Description
DESKeySpec(byte[] key)

Creates a DESKeySpec object using the first 8 bytes in key as the key material for the DES key.

DESKeySpec(byte[] key, int offset)

Creates a DESKeySpec object using the first 8 bytes in key, beginning at offset inclusive, as the key material for the DES key.

Methods

Modifier and Type Method and Description
byte[] getKey()

Returns the DES key material.

static boolean isParityAdjusted(byte[] key, int offset)

Checks if the given DES key material, starting at offset inclusive, is parity-adjusted.

static boolean isWeak(byte[] key, int offset)

Checks if the given DES key material is weak or semi-weak.

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Fields

DES_KEY_LEN

public static final int DES_KEY_LEN

The constant which defines the length of a DES key in bytes.

See Also:
Constant Field Values

Constructors

DESKeySpec

public DESKeySpec(byte[] key)
           throws InvalidKeyException

Creates a DESKeySpec object using the first 8 bytes in key as the key material for the DES key.

The bytes that constitute the DES key are those between key[0] and key[7] inclusive.

Parameters:
key - the buffer with the DES key material. The first 8 bytes of the buffer are copied to protect against subsequent modification.
Throws:
NullPointerException - if the given key material is null
InvalidKeyException - if the given key material is shorter than 8 bytes.

DESKeySpec

public DESKeySpec(byte[] key,
                  int offset)
           throws InvalidKeyException

Creates a DESKeySpec object using the first 8 bytes in key, beginning at offset inclusive, as the key material for the DES key.

The bytes that constitute the DES key are those between key[offset] and key[offset+7] inclusive.

Parameters:
key - the buffer with the DES key material. The first 8 bytes of the buffer beginning at offset inclusive are copied to protect against subsequent modification.
offset - the offset in key, where the DES key material starts.
Throws:
NullPointerException - if the given key material is null
InvalidKeyException - if the given key material, starting at offset inclusive, is shorter than 8 bytes.

Methods

getKey

public byte[] getKey()

Returns the DES key material.

Returns:
the DES key material. Returns a new array each time this method is called.

isParityAdjusted

public static boolean isParityAdjusted(byte[] key,
                                       int offset)
                                throws InvalidKeyException

Checks if the given DES key material, starting at offset inclusive, is parity-adjusted.

Parameters:
key - the buffer with 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:
InvalidKeyException - if the given key material is null, or starting at offset inclusive, is shorter than 8 bytes.

isWeak

public static boolean isWeak(byte[] key,
                             int offset)
                      throws InvalidKeyException

Checks if the given DES key material is weak or semi-weak.

Parameters:
key - the buffer with the DES key material.
offset - the offset in key, where the DES key material starts.
Returns:
true if the given DES key material is weak or semi-weak, false otherwise.
Throws:
InvalidKeyException - if the given key material is null, or starting at offset inclusive, is shorter than 8 bytes.

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/javase/8/docs/api/javax/crypto/spec/DESKeySpec.html