com.ibm.crypto.hdwrCCA.provider
Class DESKeySpec
- java.lang.Object
-
- com.ibm.crypto.hdwrCCA.provider.DESKeySpec
-
- All Implemented Interfaces:
- java.security.spec.KeySpec
public class DESKeySpec extends java.lang.Object implements java.security.spec.KeySpecThis class specifies a DES key.- Implementation Note:
- This class allows for the specification of key "types" ("RAW" or "CLEAR", "CKDSLabel" or "CKDS", "ICSFToken" or "SECURE_INTERNAL_TOKEN"). Some JCECCA operations are restricted to specific key types. Provider support, ICSF support, and hardware support all determine which key and algorithm types will function on a given system. For details on the supported operations for each key type please consult the z/OS Unique Considerations Hardware Crypto Reference Guide. More information can also be found in the Javadoc reference for the specific SPI class in use (KeyFactory, KeyGenerator, etc.)"
- See Also:
DESKeyFactory,DESKeyGenerator,DESCipher
-
-
Field Summary
Fields Modifier and Type Field and Description static intDES_KEY_LENThe constant which defines the length of a DES key in bytes.
-
Constructor Summary
Constructors Constructor and Description DESKeySpec(byte[] key)Creates a DESKeySpec object using the first 8 bytes inkeyas the key material for the DES key.DESKeySpec(byte[] key, int offset)Creates a DESKeySpec object using the first 8 bytes inkey, beginning atoffsetinclusive, as the key material for the DES key.DESKeySpec(byte[] key, int offset, java.lang.String type)Creates a DESKeySpec object using the first 8 bytes inkey, beginning atoffsetinclusive, as the key material for the DES key.DESKeySpec(byte[] key, java.lang.String type)Creates a DESKeySpec object using the first 8 bytes inkeyas the key material for the DES key.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description byte[]getKey()Returns a clone of the DES key material.java.lang.StringgetType()Returns the DES key type.static booleanisParityAdjusted(byte[] key, int offset)Checks if the given DES key material, starting atoffsetinclusive, is parity-adjusted.static booleanisWeak(byte[] key, int offset)Checks if the given DES key material is weak or semi-weak.
-
-
-
Field Detail
-
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
-
-
Constructor Detail
-
DESKeySpec
public DESKeySpec(byte[] key) throws java.security.InvalidKeyExceptionCreates a DESKeySpec object using the first 8 bytes inkeyas the key material for the DES key. A specification for a RAW (also known as CLEAR) key is created with this constructor.The bytes that constitute the DES key are those between
key[0]andkey[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:
java.lang.NullPointerException- if the given key material isnulljava.security.InvalidKeyException- if the given key material is shorter than 8 bytes.
-
DESKeySpec
public DESKeySpec(byte[] key, java.lang.String type) throws java.security.InvalidKeyExceptionCreates a DESKeySpec object using the first 8 bytes inkeyas the key material for the DES key.The bytes that constitute the DES key are those between
key[0]andkey[7]inclusive.- Parameters:
key- the buffer with the DES key material, CCA token, or CKDS label. If a "RAW" type is specified the first 8 bytes of the buffer are used. If a "CKDSLabel" type is specified it must be encoded in the IBM-1047 codepage. The buffer is copied to protect against subsequent modification.type- the type of key, one of "RAW", "CKDSLabel", "ICSFToken". Please note that we recommend the use of theKeyLabelKeySpecclass to create a key specification using a"CKDSLabel".- Throws:
java.lang.NullPointerException- if the given key material isnulljava.security.InvalidKeyException- if the given key material is shorter than 8 bytes.
-
DESKeySpec
public DESKeySpec(byte[] key, int offset) throws java.security.InvalidKeyExceptionCreates a DESKeySpec object using the first 8 bytes inkey, beginning atoffsetinclusive, as the key material for the DES key. A specification for a RAW (also known as CLEAR) key is created with this constructor.The bytes that constitute the DES key are those between
key[offset]andkey[offset+7]inclusive.- Parameters:
key- the buffer with the DES key material. The first 8 bytes of the buffer beginning atoffsetinclusive are copied to protect against subsequent modification.offset- the offset inkey, where the DES key material starts.- Throws:
java.lang.NullPointerException- if the given key material isnulljava.security.InvalidKeyException- if the given key material, starting atoffsetinclusive, is shorter than 8 bytes.
-
DESKeySpec
public DESKeySpec(byte[] key, int offset, java.lang.String type) throws java.security.InvalidKeyExceptionCreates a DESKeySpec object using the first 8 bytes inkey, beginning atoffsetinclusive, as the key material for the DES key.The bytes that constitute the DES key are those between
key[offset]andkey[offset+7]inclusive.- Parameters:
key- the buffer with the DES key material, CCA token, or CKDS label. If a "RAW" type is specified the first 8 bytes of the buffer are used. If a "CKDSLabel" type is specified it must be encoded in the IBM-1047 codepage. The buffer is copied to protect against subsequent modification.offset- the offset inkey, where the DES key material starts.type- the type of key, one of "RAW", "CKDSLabel", "ICSFToken". Please note that we recommend the use of theKeyLabelKeySpecclass to create a key specification using a"CKDSLabel".- Throws:
java.lang.NullPointerException- if the given key material isnulljava.security.InvalidKeyException- if the given key material, starting atoffsetinclusive, is shorter than 8 bytes.
-
-
Method Detail
-
getKey
public byte[] getKey()
Returns a clone of the DES key material.Note that this method returns a clone of sensitive information. It is the caller's responsibility to zero out the information after it is no longer needed.
- Returns:
- A clone of the DES key material. Returns a new array each time this method is called.
-
getType
public java.lang.String getType()
Returns the DES key type.- Returns:
- the DES key type.
-
isParityAdjusted
public static boolean isParityAdjusted(byte[] key, int offset) throws java.security.InvalidKeyExceptionChecks if the given DES key material, starting atoffsetinclusive, is parity-adjusted.- Parameters:
key- the buffer with the DES key material.offset- the offset inkey, 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 isnull, or starting atoffsetinclusive, is shorter than 8 bytes.
-
isWeak
public static boolean isWeak(byte[] key, int offset) throws java.security.InvalidKeyExceptionChecks if the given DES key material is weak or semi-weak.- Parameters:
key- the buffer with the DES key material.offset- the offset inkey, where the DES key material starts.- Returns:
- true if the given DES key material is weak or semi-weak, false otherwise.
- Throws:
java.security.InvalidKeyException- if the given key material isnull, or starting atoffsetinclusive, is shorter than 8 bytes.
-
-