com.ibm.crypto.hdwrCCA.provider
Class DESedeKeySpec
- java.lang.Object
-
- com.ibm.crypto.hdwrCCA.provider.DESedeKeySpec
-
- All Implemented Interfaces:
- java.security.spec.KeySpec
public class DESedeKeySpec extends java.lang.Object implements java.security.spec.KeySpec
This class specifies a DES-EDE ("triple-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:
DESedeKeyFactory
,DESedeKeyGenerator
,DESedeCipher
-
-
Field Summary
Fields Modifier and Type Field and Description static int
DES_EDE_KEY_LEN
The constant which defines the length of a DESede key in bytes.
-
Constructor Summary
Constructors Constructor and Description DESedeKeySpec(byte[] key)
Creates a DESedeKeySpec object using the first 24 bytes inkey
as the key material for the DES-EDE key.DESedeKeySpec(byte[] key, int offset)
Creates a DESedeKeySpec object using the first 24 bytes inkey
, beginning atoffset
inclusive, as the key material for the DES-EDE key.DESedeKeySpec(byte[] key, int offset, java.lang.String type)
Creates a DESedeKeySpec object using the first 24 bytes inkey
, beginning atoffset
inclusive, as the key material for the DES-EDE key.DESedeKeySpec(byte[] key, java.lang.String type)
Creates a DESedeKeySpec object using the first 24 bytes inkey
as the key material for the DES-EDE key.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description byte[]
getKey()
Returns a clone of the DESede key material.java.lang.String
getType()
Returns the DESede key type.static boolean
isParityAdjusted(byte[] key, int offset)
Checks if the given DES-EDE key, starting atoffset
inclusive, is parity-adjusted.
-
-
-
Field Detail
-
DES_EDE_KEY_LEN
public static final int DES_EDE_KEY_LEN
The constant which defines the length of a DESede key in bytes.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DESedeKeySpec
public DESedeKeySpec(byte[] key) throws java.security.InvalidKeyException
Creates a DESedeKeySpec object using the first 24 bytes inkey
as the key material for the DES-EDE key. A specification for a RAW (also known as CLEAR) key is created with this constructor.The bytes that constitute the DES-EDE key are those between
key[0]
andkey[23]
inclusive- Parameters:
key
- the buffer with the DES-EDE key material. The first 24 bytes of the buffer are copied to protect against subsequent modification.- Throws:
java.lang.NullPointerException
- ifkey
is null.java.security.InvalidKeyException
- if the given key material is shorter than 24 bytes.
-
DESedeKeySpec
public DESedeKeySpec(byte[] key, java.lang.String type) throws java.security.InvalidKeyException
Creates a DESedeKeySpec object using the first 24 bytes inkey
as the key material for the DES-EDE key.The bytes that constitute the DES-EDE key are those between
key[0]
andkey[23]
inclusive- Parameters:
key
- the buffer with the DES-EDE key material, CCA token, or CKDS label. If a "RAW" type is specified the first 24 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 theKeyLabelKeySpec
class to create a key specification using a"CKDSLabel"
.- Throws:
java.lang.NullPointerException
- ifkey
is null.java.security.InvalidKeyException
- if the given key material is shorter than 24 bytes.
-
DESedeKeySpec
public DESedeKeySpec(byte[] key, int offset) throws java.security.InvalidKeyException
Creates a DESedeKeySpec object using the first 24 bytes inkey
, beginning atoffset
inclusive, as the key material for the DES-EDE key. A specification for a RAW (also known as CLEAR) key is created with this constructor.The bytes that constitute the DES-EDE key are those between
key[offset]
andkey[offset+23]
inclusive.- Parameters:
key
- the buffer with the DES-EDE key material. The first 24 bytes of the buffer beginning atoffset
inclusive are copied to protect against subsequent modification.offset
- the offset inkey
, where the DES-EDE key material starts.- Throws:
java.lang.NullPointerException
- ifkey
is null.java.security.InvalidKeyException
- if the given key material, starting atoffset
inclusive, is shorter than 24 bytes
-
DESedeKeySpec
public DESedeKeySpec(byte[] key, int offset, java.lang.String type) throws java.security.InvalidKeyException
Creates a DESedeKeySpec object using the first 24 bytes inkey
, beginning atoffset
inclusive, as the key material for the DES-EDE key.The bytes that constitute the DES-EDE key are those between
key[offset]
andkey[offset+23]
inclusive.- Parameters:
key
- the buffer with the DES-EDE key material, CCA token, or CKDS label. If a "RAW" type is specified the first 24 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-EDE key material starts.type
- the type of key, one of "RAW", "CKDSLabel", "ICSFToken".Please note that we recommend the use of theKeyLabelKeySpec
class to create a key specification using a"CKDSLabel"
.- Throws:
java.lang.NullPointerException
- ifkey
is null.java.security.InvalidKeyException
- if the given key material, starting atoffset
inclusive, is shorter than 24 bytes
-
-
Method Detail
-
getKey
public byte[] getKey()
Returns a clone of the DESede 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 DESede key material.
-
getType
public java.lang.String getType()
Returns the DESede key type.- Returns:
- the DESede key type.
-
isParityAdjusted
public static boolean isParityAdjusted(byte[] key, int offset) throws java.security.InvalidKeyException
Checks if the given DES-EDE key, starting atoffset
inclusive, is parity-adjusted.- Parameters:
key
- a byte array which holds the key valueoffset
- the offset into the byte array- Returns:
- true if the given DES-EDE key is parity-adjusted, false otherwise
- Throws:
java.lang.NullPointerException
- ifkey
is null.java.security.InvalidKeyException
- if the given key material, starting atoffset
inclusive, is shorter than 24 bytes
-
-