aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/spongycastle/core/src/test/java/org/spongycastle/math/ec/test/F2mProofer.java
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/spongycastle/core/src/test/java/org/spongycastle/math/ec/test/F2mProofer.java')
-rw-r--r--libraries/spongycastle/core/src/test/java/org/spongycastle/math/ec/test/F2mProofer.java203
1 files changed, 0 insertions, 203 deletions
diff --git a/libraries/spongycastle/core/src/test/java/org/spongycastle/math/ec/test/F2mProofer.java b/libraries/spongycastle/core/src/test/java/org/spongycastle/math/ec/test/F2mProofer.java
deleted file mode 100644
index 9d7e5195b..000000000
--- a/libraries/spongycastle/core/src/test/java/org/spongycastle/math/ec/test/F2mProofer.java
+++ /dev/null
@@ -1,203 +0,0 @@
-package org.spongycastle.math.ec.test;
-
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.math.BigInteger;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-import java.util.Iterator;
-import java.util.Properties;
-import java.util.Set;
-
-import org.spongycastle.asn1.sec.SECNamedCurves;
-import org.spongycastle.asn1.x9.X9ECParameters;
-import org.spongycastle.math.ec.ECFieldElement;
-import org.spongycastle.math.ec.ECPoint;
-
-public class F2mProofer
-{
- private static final int NUM_SAMPLES = 1000;
-
- private static final String PATH = "crypto/test/src/org/spongycastle/math/ec/test/samples/";
-
- private static final String INPUT_FILE_NAME_PREFIX = "Input_";
-
- private static final String RESULT_FILE_NAME_PREFIX = "Output_";
-
- /**
- * The standard curves on which the tests are done
- */
- public static final String[] CURVES = { "sect163r2", "sect233r1",
- "sect283r1", "sect409r1", "sect571r1" };
-
- private String pointToString(ECPoint.F2m p)
- {
- ECFieldElement.F2m x = (ECFieldElement.F2m) p.getAffineXCoord();
- ECFieldElement.F2m y = (ECFieldElement.F2m) p.getAffineYCoord();
-
- int m = x.getM();
- int len = m / 2 + 5;
-
- StringBuffer sb = new StringBuffer(len);
- sb.append('(');
- sb.append(x.toBigInteger().toString(16));
- sb.append(", ");
- sb.append(y.toBigInteger().toString(16));
- sb.append(')');
-
- return sb.toString();
- }
-
- private void generateRandomInput(X9ECParameters x9ECParameters)
- throws NoSuchAlgorithmException, IOException
- {
- ECPoint.F2m g = (ECPoint.F2m) x9ECParameters.getG();
- int m = ((ECFieldElement.F2m) (g.getAffineXCoord())).getM();
-
- SecureRandom secRand = SecureRandom.getInstance("SHA1PRNG");
- Properties inputProps = new Properties();
- for (int i = 0; i < NUM_SAMPLES; i++)
- {
- BigInteger rand = new BigInteger(m, secRand);
- inputProps.put(Integer.toString(i), rand.toString(16));
- }
- String bits = Integer.toString(m);
- FileOutputStream fos = new FileOutputStream(PATH
- + INPUT_FILE_NAME_PREFIX + bits + ".properties");
- inputProps.store(fos, "Input Samples of length" + bits);
- }
-
- private void multiplyPoints(X9ECParameters x9ECParameters,
- String classPrefix) throws IOException
- {
- ECPoint.F2m g = (ECPoint.F2m) x9ECParameters.getG();
- int m = ((ECFieldElement.F2m) (g.getAffineXCoord())).getM();
-
- String inputFileName = PATH + INPUT_FILE_NAME_PREFIX + m
- + ".properties";
- Properties inputProps = new Properties();
- inputProps.load(new FileInputStream(inputFileName));
-
- Properties outputProps = new Properties();
-
- for (int i = 0; i < NUM_SAMPLES; i++)
- {
- BigInteger rand = new BigInteger(inputProps.getProperty(Integer
- .toString(i)), 16);
- ECPoint.F2m result = (ECPoint.F2m) g.multiply(rand).normalize();
- String resultStr = pointToString(result);
- outputProps.setProperty(Integer.toString(i), resultStr);
- }
-
- String outputFileName = PATH + RESULT_FILE_NAME_PREFIX + classPrefix
- + "_" + m + ".properties";
- FileOutputStream fos = new FileOutputStream(outputFileName);
- outputProps.store(fos, "Output Samples of length" + m);
- }
-
- private Properties loadResults(String classPrefix, int m)
- throws IOException
- {
- FileInputStream fis = new FileInputStream(PATH
- + RESULT_FILE_NAME_PREFIX + classPrefix + "_" + m + ".properties");
- Properties res = new Properties();
- res.load(fis);
- return res;
-
- }
-
- private void compareResult(X9ECParameters x9ECParameters,
- String classPrefix1, String classPrefix2) throws IOException
- {
- ECPoint.F2m g = (ECPoint.F2m) x9ECParameters.getG();
- int m = ((ECFieldElement.F2m) (g.getAffineXCoord())).getM();
-
- Properties res1 = loadResults(classPrefix1, m);
- Properties res2 = loadResults(classPrefix2, m);
-
- Set keys = res1.keySet();
- Iterator iter = keys.iterator();
- while (iter.hasNext())
- {
- String key = (String) iter.next();
- String result1 = res1.getProperty(key);
- String result2 = res2.getProperty(key);
- if (!(result1.equals(result2)))
- {
- System.err.println("Difference found: m = " + m + ", "
- + result1 + " does not equal " + result2);
- }
- }
-
- }
-
- private static void usage()
- {
- System.err.println("Usage: F2mProofer [-init | -multiply <className> "
- + "| -compare <className1> <className2>]");
- }
-
- public static void main(String[] args) throws Exception
- {
- if (args.length == 0)
- {
- usage();
- return;
- }
- F2mProofer proofer = new F2mProofer();
- if (args[0].equals("-init"))
- {
- System.out.println("Generating random input...");
- for (int i = 0; i < CURVES.length; i++)
- {
- X9ECParameters x9ECParameters = SECNamedCurves
- .getByName(CURVES[i]);
- proofer.generateRandomInput(x9ECParameters);
- }
- System.out
- .println("Successfully generated random input in " + PATH);
- }
- else if (args[0].equals("-compare"))
- {
- if (args.length < 3)
- {
- usage();
- return;
- }
- String classPrefix1 = args[1];
- String classPrefix2 = args[2];
- System.out.println("Comparing results...");
- for (int i = 0; i < CURVES.length; i++)
- {
- X9ECParameters x9ECParameters = SECNamedCurves
- .getByName(CURVES[i]);
- proofer.compareResult(x9ECParameters, classPrefix1,
- classPrefix2);
- }
- System.out.println("Successfully compared results in " + PATH);
- }
- else if (args[0].equals("-multiply"))
- {
- if (args.length < 2)
- {
- usage();
- return;
- }
- String classPrefix = args[1];
- System.out.println("Multiplying points...");
- for (int i = 0; i < CURVES.length; i++)
- {
- X9ECParameters x9ECParameters = SECNamedCurves
- .getByName(CURVES[i]);
- proofer.multiplyPoints(x9ECParameters, classPrefix);
- }
- System.out.println("Successfully generated multiplied points in "
- + PATH);
- }
- else
- {
- usage();
- }
- }
-}