aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/spongycastle/core/src/test/java/org/spongycastle/crypto/test/AESVectorFileTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/spongycastle/core/src/test/java/org/spongycastle/crypto/test/AESVectorFileTest.java')
-rw-r--r--libraries/spongycastle/core/src/test/java/org/spongycastle/crypto/test/AESVectorFileTest.java258
1 files changed, 0 insertions, 258 deletions
diff --git a/libraries/spongycastle/core/src/test/java/org/spongycastle/crypto/test/AESVectorFileTest.java b/libraries/spongycastle/core/src/test/java/org/spongycastle/crypto/test/AESVectorFileTest.java
deleted file mode 100644
index 504b4bd40..000000000
--- a/libraries/spongycastle/core/src/test/java/org/spongycastle/crypto/test/AESVectorFileTest.java
+++ /dev/null
@@ -1,258 +0,0 @@
-package org.spongycastle.crypto.test;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.spongycastle.crypto.BlockCipher;
-import org.spongycastle.crypto.engines.AESEngine;
-import org.spongycastle.crypto.engines.AESFastEngine;
-import org.spongycastle.crypto.engines.AESLightEngine;
-import org.spongycastle.crypto.params.KeyParameter;
-import org.spongycastle.util.encoders.Hex;
-import org.spongycastle.util.test.SimpleTestResult;
-import org.spongycastle.util.test.Test;
-import org.spongycastle.util.test.TestResult;
-
-/**
- * Test vectors from the NIST standard tests and Brian Gladman's vector set
- * <a href="http://fp.gladman.plus.com/cryptography_technology/rijndael/">
- * http://fp.gladman.plus.com/cryptography_technology/rijndael/</a>
- */
-public class AESVectorFileTest
- implements Test
-{
-
- private int countOfTests = 0;
- private int testNum = 0;
-
- protected BlockCipher createNewEngineForTest()
- {
- return new AESEngine();
- }
-
- private Test[] readTestVectors(InputStream inStream)
- {
- // initialize key, plaintext, ciphertext = null
- // read until find BLOCKSIZE=
- // return if not 128
- // read KEYSIZE= or ignore
- // loop
- // read a line
- // if starts with BLOCKSIZE=
- // parse the rest. return if not 128
- // if starts with KEY=
- // parse the rest and set KEY
- // if starts with PT=
- // parse the rest and set plaintext
- // if starts with CT=
- // parse the rest and set ciphertext
- // if starts with TEST= or end of file
- // if key, plaintext, ciphertext are all not null
- // save away their values as the next test
- // until end of file
- List tests = new ArrayList();
- String key = null;
- String plaintext = null;
- String ciphertext = null;
-
- BufferedReader in = new BufferedReader(new InputStreamReader(inStream));
-
- try
- {
- String line = in.readLine();
-
- while (line != null)
- {
- line = line.trim().toLowerCase();
- if (line.startsWith("blocksize="))
- {
- int i = 0;
- try
- {
- i = Integer.parseInt(line.substring(10).trim());
- }
- catch (Exception e)
- {
- }
- if (i != 128)
- {
- return null;
- }
- }
- else if (line.startsWith("keysize="))
- {
- int i = 0;
- try
- {
- i = Integer.parseInt(line.substring(10).trim());
- }
- catch (Exception e)
- {
- }
- if ((i != 128) && (i != 192) && (i != 256))
- {
- return null;
- }
- }
- else if (line.startsWith("key="))
- {
- key = line.substring(4).trim();
- }
- else if (line.startsWith("pt="))
- {
- plaintext = line.substring(3).trim();
- }
- else if (line.startsWith("ct="))
- {
- ciphertext = line.substring(3).trim();
- }
- else if (line.startsWith("test="))
- {
- if ((key != null) && (plaintext != null)
- && (ciphertext != null))
- {
- tests.add(new BlockCipherVectorTest(testNum++,
- createNewEngineForTest(), new KeyParameter(Hex
- .decode(key)), plaintext, ciphertext));
- }
- }
-
- line = in.readLine();
- }
- try
- {
- in.close();
- }
- catch (IOException e)
- {
- }
- }
- catch (IOException e)
- {
- }
- if ((key != null) && (plaintext != null) && (ciphertext != null))
- {
- tests.add(new BlockCipherVectorTest(testNum++,
- createNewEngineForTest(),
- new KeyParameter(Hex.decode(key)), plaintext, ciphertext));
- }
- return (Test[])(tests.toArray(new Test[tests.size()]));
- }
-
- public String getName()
- {
- return "AES";
- }
-
- private TestResult performTestsFromZipFile(File zfile)
- {
- try
- {
- ZipFile inZip = new ZipFile(zfile);
- for (Enumeration files = inZip.entries(); files.hasMoreElements();)
- {
- Test[] tests = null;
- try
- {
- tests = readTestVectors(inZip
- .getInputStream((ZipEntry)(files.nextElement())));
- }
- catch (Exception e)
- {
- return new SimpleTestResult(false, getName() + ": threw "
- + e);
- }
- if (tests != null)
- {
- for (int i = 0; i != tests.length; i++)
- {
- TestResult res = tests[i].perform();
- countOfTests++;
-
- if (!res.isSuccessful())
- {
- return res;
- }
- }
- }
- }
- inZip.close();
- return new SimpleTestResult(true, getName() + ": Okay");
- }
- catch (Exception e)
- {
- return new SimpleTestResult(false, getName() + ": threw " + e);
- }
- }
-
- private static final String[] zipFileNames = { "rijn.tv.ecbnk.zip",
- "rijn.tv.ecbnt.zip", "rijn.tv.ecbvk.zip", "rijn.tv.ecbvt.zip" };
-
- public TestResult perform()
- {
- countOfTests = 0;
- for (int i = 0; i < zipFileNames.length; i++)
- {
- File inf = new File(zipFileNames[i]);
- TestResult res = performTestsFromZipFile(inf);
- if (!res.isSuccessful())
- {
- return res;
- }
- }
- return new SimpleTestResult(true, getName() + ": " + countOfTests
- + " performed Okay");
- }
-
- public static void main(String[] args)
- {
- AESVectorFileTest test = new AESVectorFileTest();
- TestResult result = test.perform();
- System.out.println(result);
-
- test = new AESLightVectorFileTest();
- result = test.perform();
- System.out.println(result);
-
- test = new AESFastVectorFileTest();
- result = test.perform();
- System.out.println(result);
-
- }
-
- private static class AESLightVectorFileTest extends AESVectorFileTest
- {
- protected BlockCipher createNewEngineForTest()
- {
- return new AESLightEngine();
- }
-
- public String getName()
- {
- return "AESLight";
- }
-
- }
-
- private static class AESFastVectorFileTest extends AESVectorFileTest
- {
- protected BlockCipher createNewEngineForTest()
- {
- return new AESFastEngine();
- }
-
- public String getName()
- {
- return "AESFast";
- }
-
- }
-}