diff options
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/crypto/test/DESTest.java')
-rw-r--r-- | bcprov/src/main/java/org/bouncycastle/crypto/test/DESTest.java | 206 |
1 files changed, 0 insertions, 206 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/crypto/test/DESTest.java b/bcprov/src/main/java/org/bouncycastle/crypto/test/DESTest.java deleted file mode 100644 index 08056fc..0000000 --- a/bcprov/src/main/java/org/bouncycastle/crypto/test/DESTest.java +++ /dev/null @@ -1,206 +0,0 @@ -package org.bouncycastle.crypto.test; - -import org.bouncycastle.crypto.KeyGenerationParameters; -import org.bouncycastle.crypto.engines.DESEngine; -import org.bouncycastle.crypto.generators.DESKeyGenerator; -import org.bouncycastle.crypto.modes.CBCBlockCipher; -import org.bouncycastle.crypto.modes.CFBBlockCipher; -import org.bouncycastle.crypto.modes.OFBBlockCipher; -import org.bouncycastle.crypto.params.DESParameters; -import org.bouncycastle.crypto.params.KeyParameter; -import org.bouncycastle.crypto.params.ParametersWithIV; -import org.bouncycastle.util.encoders.Hex; -import org.bouncycastle.util.test.SimpleTest; - -import java.security.SecureRandom; - -class DESParityTest - extends SimpleTest -{ - public String getName() - { - return "DESParityTest"; - } - - public void performTest() - { - byte[] k1In = { (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, - (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff }; - byte[] k1Out = { (byte)0xfe, (byte)0xfe, (byte)0xfe, (byte)0xfe, - (byte)0xfe, (byte)0xfe, (byte)0xfe, (byte)0xfe }; - - byte[] k2In = { (byte)0xef, (byte)0xcb, (byte)0xda, (byte)0x4f, - (byte)0xaa, (byte)0x99, (byte)0x7f, (byte)0x63 }; - byte[] k2Out = { (byte)0xef, (byte)0xcb, (byte)0xda, (byte)0x4f, - (byte)0xab, (byte)0x98, (byte)0x7f, (byte)0x62 }; - - DESParameters.setOddParity(k1In); - - for (int i = 0; i != k1In.length; i++) - { - if (k1In[i] != k1Out[i]) - { - fail("Failed " - + "got " + new String(Hex.encode(k1In)) - + " expected " + new String(Hex.encode(k1Out))); - } - } - - DESParameters.setOddParity(k2In); - - for (int i = 0; i != k2In.length; i++) - { - if (k2In[i] != k2Out[i]) - { - fail("Failed " - + "got " + new String(Hex.encode(k2In)) - + " expected " + new String(Hex.encode(k2Out))); - } - } - } -} - -class KeyGenTest - extends SimpleTest -{ - public String getName() - { - return "KeyGenTest"; - } - - public void performTest() - { - DESKeyGenerator keyGen = new DESKeyGenerator(); - - keyGen.init(new KeyGenerationParameters(new SecureRandom(), 56)); - - byte[] kB = keyGen.generateKey(); - - if (kB.length != 8) - { - fail("DES bit key wrong length."); - } - } -} - -class DESParametersTest - extends SimpleTest -{ - static private byte[] weakKeys = - { - (byte)0x01,(byte)0x01,(byte)0x01,(byte)0x01, (byte)0x01,(byte)0x01,(byte)0x01,(byte)0x01, - (byte)0x1f,(byte)0x1f,(byte)0x1f,(byte)0x1f, (byte)0x0e,(byte)0x0e,(byte)0x0e,(byte)0x0e, - (byte)0xe0,(byte)0xe0,(byte)0xe0,(byte)0xe0, (byte)0xf1,(byte)0xf1,(byte)0xf1,(byte)0xf1, - (byte)0xfe,(byte)0xfe,(byte)0xfe,(byte)0xfe, (byte)0xfe,(byte)0xfe,(byte)0xfe,(byte)0xfe, - /* semi-weak keys */ - (byte)0x01,(byte)0xfe,(byte)0x01,(byte)0xfe, (byte)0x01,(byte)0xfe,(byte)0x01,(byte)0xfe, - (byte)0x1f,(byte)0xe0,(byte)0x1f,(byte)0xe0, (byte)0x0e,(byte)0xf1,(byte)0x0e,(byte)0xf1, - (byte)0x01,(byte)0xe0,(byte)0x01,(byte)0xe0, (byte)0x01,(byte)0xf1,(byte)0x01,(byte)0xf1, - (byte)0x1f,(byte)0xfe,(byte)0x1f,(byte)0xfe, (byte)0x0e,(byte)0xfe,(byte)0x0e,(byte)0xfe, - (byte)0x01,(byte)0x1f,(byte)0x01,(byte)0x1f, (byte)0x01,(byte)0x0e,(byte)0x01,(byte)0x0e, - (byte)0xe0,(byte)0xfe,(byte)0xe0,(byte)0xfe, (byte)0xf1,(byte)0xfe,(byte)0xf1,(byte)0xfe, - (byte)0xfe,(byte)0x01,(byte)0xfe,(byte)0x01, (byte)0xfe,(byte)0x01,(byte)0xfe,(byte)0x01, - (byte)0xe0,(byte)0x1f,(byte)0xe0,(byte)0x1f, (byte)0xf1,(byte)0x0e,(byte)0xf1,(byte)0x0e, - (byte)0xe0,(byte)0x01,(byte)0xe0,(byte)0x01, (byte)0xf1,(byte)0x01,(byte)0xf1,(byte)0x01, - (byte)0xfe,(byte)0x1f,(byte)0xfe,(byte)0x1f, (byte)0xfe,(byte)0x0e,(byte)0xfe,(byte)0x0e, - (byte)0x1f,(byte)0x01,(byte)0x1f,(byte)0x01, (byte)0x0e,(byte)0x01,(byte)0x0e,(byte)0x01, - (byte)0xfe,(byte)0xe0,(byte)0xfe,(byte)0xe0, (byte)0xfe,(byte)0xf1,(byte)0xfe,(byte)0xf1 - }; - - public String getName() - { - return "DESParameters"; - } - - public void performTest() throws Exception - { - try - { - DESParameters.isWeakKey(new byte[4], 0); - fail("no exception on small key"); - } - catch (IllegalArgumentException e) - { - if (!e.getMessage().equals("key material too short.")) - { - fail("wrong exception"); - } - } - - try - { - new DESParameters(weakKeys); - fail("no exception on weak key"); - } - catch (IllegalArgumentException e) - { - if (!e.getMessage().equals("attempt to create weak DES key")) - { - fail("wrong exception"); - } - } - - for (int i = 0; i != weakKeys.length; i += 8) - { - if (!DESParameters.isWeakKey(weakKeys, i)) - { - fail("weakKey test failed"); - } - } - } -} - -/** - * DES tester - vectors from <a href=http://www.itl.nist.gov/fipspubs/fip81.htm>FIPS 81</a> - */ -public class DESTest - extends CipherTest -{ - static String input1 = "4e6f77206973207468652074696d6520666f7220616c6c20"; - static String input2 = "4e6f7720697320746865"; - static String input3 = "4e6f7720697320746865aabbcc"; - - static SimpleTest[] tests = - { - new BlockCipherVectorTest(0, new DESEngine(), - new KeyParameter(Hex.decode("0123456789abcdef")), - input1, "3fa40e8a984d48156a271787ab8883f9893d51ec4b563b53"), - new BlockCipherVectorTest(1, new CBCBlockCipher(new DESEngine()), - new ParametersWithIV(new KeyParameter(Hex.decode("0123456789abcdef")), Hex.decode("1234567890abcdef")), - input1, "e5c7cdde872bf27c43e934008c389c0f683788499a7c05f6"), - new BlockCipherVectorTest(2, new CFBBlockCipher(new DESEngine(), 8), - new ParametersWithIV(new KeyParameter(Hex.decode("0123456789abcdef")), Hex.decode("1234567890abcdef")), - input2, "f31fda07011462ee187f"), - new BlockCipherVectorTest(3, new CFBBlockCipher(new DESEngine(), 64), - new ParametersWithIV(new KeyParameter(Hex.decode("0123456789abcdef")), Hex.decode("1234567890abcdef")), - input1, "f3096249c7f46e51a69e839b1a92f78403467133898ea622"), - new BlockCipherVectorTest(4, new OFBBlockCipher(new DESEngine(), 8), - new ParametersWithIV(new KeyParameter(Hex.decode("0123456789abcdef")), Hex.decode("1234567890abcdef")), - input2, "f34a2850c9c64985d684"), - new BlockCipherVectorTest(5, new CFBBlockCipher(new DESEngine(), 64), - new ParametersWithIV(new KeyParameter(Hex.decode("0123456789abcdef")), Hex.decode("1234567890abcdef")), - input3, "f3096249c7f46e51a69e0954bf"), - new BlockCipherVectorTest(6, new OFBBlockCipher(new DESEngine(), 64), - new ParametersWithIV(new KeyParameter(Hex.decode("0123456789abcdef")), Hex.decode("1234567890abcdef")), - input3, "f3096249c7f46e5135f2c0eb8b"), - new DESParityTest(), - new DESParametersTest(), - new KeyGenTest() - }; - - public DESTest() - { - super(tests, new DESEngine(), new KeyParameter(new byte[8])); - } - - public String getName() - { - return "DES"; - } - - public static void main( - String[] args) - { - runTest(new DESTest()); - } -} |