# DESKeySpec

public class **DESKeySpec** extends [Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html)  
implements [KeySpec](https://developers.google.com/j2objc/javadoc/jre/reference/java/security/spec/KeySpec.html) This class specifies a DES key.

### Constant Summary

|---|---|---|
| int | [DES_KEY_LEN](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/DESKeySpec.html#DES_KEY_LEN) | The constant which defines the length of a DES key in bytes. |

### Public Constructor Summary

|---|---|
|   | [DESKeySpec](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/DESKeySpec.html#DESKeySpec(byte[]))(byte\[\] key) Creates a DESKeySpec object using the first 8 bytes in `key` as the key material for the DES key. |
|   | [DESKeySpec](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/DESKeySpec.html#DESKeySpec(byte[],%20int))(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. |

### Public Method Summary

|---|---|
| byte\[\] | [getKey](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/DESKeySpec.html#getKey())() Returns the DES key material. |
| static boolean | [isParityAdjusted](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/DESKeySpec.html#isParityAdjusted(byte[],%20int))(byte\[\] key, int offset) Checks if the given DES key material, starting at `offset` inclusive, is parity-adjusted. |
| static boolean | [isWeak](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/DESKeySpec.html#isWeak(byte[],%20int))(byte\[\] key, int offset) Checks if the given DES key material is weak or semi-weak. |

### Inherited Method Summary

From class [java.lang.Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html)

|---|---|
| [Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html) | [clone](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#clone())() Creates and returns a copy of this `Object`. |
| boolean | [equals](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#equals(java.lang.Object))([Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html) obj) Compares this instance with the specified object and indicates if they are equal. |
| void | [finalize](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#finalize())() Invoked when the garbage collector has detected that this instance is no longer reachable. |
| final [Class](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Class.html)\<?\> | [getClass](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#getClass())() Returns the unique instance of `https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Class.html` that represents this object's class. |
| int | [hashCode](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#hashCode())() Returns an integer hash code for this object. |
| final void | [notify](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#notify())() Causes a thread which is waiting on this object's monitor (by means of calling one of the `wait()` methods) to be woken up. |
| final void | [notifyAll](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#notifyAll())() Causes all threads which are waiting on this object's monitor (by means of calling one of the `wait()` methods) to be woken up. |
| [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) | [toString](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#toString())() Returns a string containing a concise, human-readable description of this object. |
| final void | [wait](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#wait(long,%20int))(long timeout, int nanos) Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object or until the specified timeout expires. |
| final void | [wait](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#wait(long))(long timeout) Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object or until the specified timeout expires. |
| final void | [wait](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#wait())() Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object. |

## Constants

#### public static final int
**DES_KEY_LEN**

The constant which defines the length of a DES key in bytes.
Constant Value: 8

## Public Constructors

#### public
**DESKeySpec**
(byte\[\] key)

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](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/NullPointerException.html) | if the given key material is `null` |
| [InvalidKeyException](https://developers.google.com/j2objc/javadoc/jre/reference/java/security/InvalidKeyException.html) | if the given key material is shorter than 8 bytes. |
|---|---|

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

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](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/NullPointerException.html) | if the given key material is `null` |
| [InvalidKeyException](https://developers.google.com/j2objc/javadoc/jre/reference/java/security/InvalidKeyException.html) | if the given key material, starting at `offset` inclusive, is shorter than 8 bytes. |
|---|---|

## Public Methods

#### public byte\[\]
**getKey**
()

Returns the DES key material.

##### Returns

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

#### public static boolean
**isParityAdjusted**
(byte\[\] key, int offset)

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](https://developers.google.com/j2objc/javadoc/jre/reference/java/security/InvalidKeyException.html) | if the given key material is `null`, or starting at `offset` inclusive, is shorter than 8 bytes. |
|---|---|

#### public static boolean
**isWeak**
(byte\[\] key, int offset)

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](https://developers.google.com/j2objc/javadoc/jre/reference/java/security/InvalidKeyException.html) | if the given key material is `null`, or starting at `offset` inclusive, is shorter than 8 bytes. |
|---|---|