| package org.bouncycastle.crypto.params; |
| |
| public class DESedeParameters |
| extends DESParameters |
| { |
| /* |
| * DES-EDE Key length in bytes. |
| */ |
| static public final int DES_EDE_KEY_LENGTH = 24; |
| |
| public DESedeParameters( |
| byte[] key) |
| { |
| super(key); |
| |
| if (isWeakKey(key, 0, key.length)) |
| { |
| throw new IllegalArgumentException("attempt to create weak DESede key"); |
| } |
| } |
| |
| /** |
| * return true if the passed in key is a DES-EDE weak key. |
| * |
| * @param key bytes making up the key |
| * @param offset offset into the byte array the key starts at |
| * @param length number of bytes making up the key |
| */ |
| public static boolean isWeakKey( |
| byte[] key, |
| int offset, |
| int length) |
| { |
| for (int i = offset; i < length; i += DES_KEY_LENGTH) |
| { |
| if (DESParameters.isWeakKey(key, i)) |
| { |
| return true; |
| } |
| } |
| |
| return false; |
| } |
| |
| /** |
| * return true if the passed in key is a DES-EDE weak key. |
| * |
| * @param key bytes making up the key |
| * @param offset offset into the byte array the key starts at |
| */ |
| public static boolean isWeakKey( |
| byte[] key, |
| int offset) |
| { |
| return isWeakKey(key, offset, key.length - offset); |
| } |
| } |