DESedeKeySpecpublic class DESedeKeySpec extends Object implements KeySpecThe key specification for a triple-DES (DES-EDE) key. |
Fields Summary |
---|
public static final int | DES_EDE_KEY_LENThe length of a DES-EDE key in bytes. | private final byte[] | key |
Constructors Summary |
---|
public DESedeKeySpec(byte[] key)Creates a new DESedeKeySpec instance from the first 24 (
{@link #DES_EDE_KEY_LEN}) bytes of the specified key data.
if (key == null) {
throw new NullPointerException(Messages.getString("crypto.2F")); //$NON-NLS-1$
}
if (key.length < DES_EDE_KEY_LEN) {
throw new InvalidKeyException(
Messages.getString("crypto.30")); //$NON-NLS-1$
}
this.key = new byte[DES_EDE_KEY_LEN];
System.arraycopy(key, 0, this.key, 0, DES_EDE_KEY_LEN);
| public DESedeKeySpec(byte[] key, int offset)Creates a new DESedeKeySpec instance from the first 24 (
{@link #DES_EDE_KEY_LEN} ) bytes of the specified key data starting at
offset .
if (key == null) {
throw new NullPointerException(Messages.getString("crypto.2F")); //$NON-NLS-1$
}
if (key.length - offset < DES_EDE_KEY_LEN) {
throw new InvalidKeyException(
Messages.getString("crypto.30")); //$NON-NLS-1$
}
this.key = new byte[DES_EDE_KEY_LEN];
System.arraycopy(key, offset, this.key, 0, DES_EDE_KEY_LEN);
|
Methods Summary |
---|
public byte[] | getKey()Returns a copy of the key.
byte[] result = new byte [DES_EDE_KEY_LEN];
System.arraycopy(this.key, 0, result, 0, DES_EDE_KEY_LEN);
return result;
| public static boolean | isParityAdjusted(byte[] key, int offset)Returns whether the specified key data starting at offset is
parity-adjusted.
if (key.length - offset < DES_EDE_KEY_LEN) {
throw new InvalidKeyException(
Messages.getString("crypto.30")); //$NON-NLS-1$
}
for (int i=offset; i<DES_EDE_KEY_LEN+offset; i++) {
int b = key[i];
if ((((b & 1) + ((b & 2) >> 1) + ((b & 4) >> 2)
+ ((b & 8) >> 3) + ((b & 16) >> 4) + ((b & 32) >> 5)
+ ((b & 64) >> 6)) & 1) == ((b & 128) >> 7)) {
return false;
}
}
return true;
|
|