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); } }