diff options
Diffstat (limited to 'src/testgenerator/src/org/crypttech/modexp/testgenerator/TestGeneratorBasic.java')
-rw-r--r-- | src/testgenerator/src/org/crypttech/modexp/testgenerator/TestGeneratorBasic.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/testgenerator/src/org/crypttech/modexp/testgenerator/TestGeneratorBasic.java b/src/testgenerator/src/org/crypttech/modexp/testgenerator/TestGeneratorBasic.java new file mode 100644 index 0000000..71b56ac --- /dev/null +++ b/src/testgenerator/src/org/crypttech/modexp/testgenerator/TestGeneratorBasic.java @@ -0,0 +1,35 @@ +package org.crypttech.modexp.testgenerator; + +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class TestGeneratorBasic { + public static final List<TestVector> getTestVectors() { + Random rng = new Random(0); //any static seed + ArrayList<TestVector> list = new ArrayList<TestVector>(); + + generateTestVectors(rng, list, 33, 2); + generateTestVectors(rng, list, 30, 1); + //generateTestVectors(rng, list, 32, 1); //will generate failing tests in C model + //generateTestVectors(rng, list, 31, 1); //will generate failing tests in C model + return list; + } + + private static void generateTestVectors(Random rng, + ArrayList<TestVector> list, int bitLength, int wordLength) { + for(int i = 0; i < 10; i++) { + final long seed = rng.nextLong(); + rng.setSeed(seed); + BigInteger m = BigInteger.probablePrime(bitLength, rng); + BigInteger x = BigInteger.probablePrime(bitLength, rng); + BigInteger e = BigInteger.probablePrime(bitLength, rng); + BigInteger z = x.modPow(e, m); + TestVector tv = Util.generateTestVector("BASIC", Long.toString(seed), wordLength, m, x, e, z); + list.add(tv); + } + } + + +} |