Skip to content

Commit d86fe62

Browse files
committed
added random tests
1 parent d7afa3c commit d86fe62

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed

core/src/test/java/org/bouncycastle/pqc/crypto/test/FalconTest.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.BufferedReader;
44
import java.io.InputStream;
55
import java.io.InputStreamReader;
6+
import java.security.SecureRandom;
67
import java.util.HashMap;
78

89
import junit.framework.TestCase;
@@ -15,6 +16,7 @@
1516
import org.bouncycastle.pqc.crypto.falcon.FalconPublicKeyParameters;
1617
import org.bouncycastle.pqc.crypto.falcon.FalconSigner;
1718
import org.bouncycastle.util.Arrays;
19+
import org.bouncycastle.util.Strings;
1820
import org.bouncycastle.util.encoders.Hex;
1921

2022
public class FalconTest
@@ -171,4 +173,34 @@ public void testVectors()
171173
System.out.println("testing successful!");
172174
}
173175
}
176+
177+
public void testFalconRandom()
178+
{
179+
byte[] msg = Strings.toByteArray("Hello World!");
180+
FalconKeyPairGenerator keyGen = new FalconKeyPairGenerator();
181+
182+
SecureRandom random = new SecureRandom();
183+
184+
keyGen.init(new FalconKeyGenerationParameters(random, FalconParameters.falcon_512));
185+
186+
for (int i = 0; i != 100; i++)
187+
{
188+
AsymmetricCipherKeyPair keyPair = keyGen.generateKeyPair();
189+
190+
// sign
191+
FalconSigner signer = new FalconSigner();
192+
FalconPrivateKeyParameters skparam = (FalconPrivateKeyParameters)keyPair.getPrivate();
193+
ParametersWithRandom skwrand = new ParametersWithRandom(skparam, random);
194+
signer.init(true, skwrand);
195+
196+
byte[] sigGenerated = signer.generateSignature(msg);
197+
198+
// verify
199+
FalconSigner verifier = new FalconSigner();
200+
FalconPublicKeyParameters pkparam = (FalconPublicKeyParameters)keyPair.getPublic();
201+
verifier.init(false, pkparam);
202+
203+
assertTrue("count = " + i, verifier.verifySignature(msg, sigGenerated));
204+
}
205+
}
174206
}

core/src/test/java/org/bouncycastle/pqc/crypto/test/PicnicVectorTest.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.BufferedReader;
44
import java.io.InputStream;
55
import java.io.InputStreamReader;
6+
import java.security.SecureRandom;
67
import java.util.HashMap;
78

89
import junit.framework.TestCase;
@@ -19,6 +20,7 @@
1920
import org.bouncycastle.pqc.crypto.util.SubjectPublicKeyInfoFactory;
2021
import org.bouncycastle.util.Arrays;
2122
import org.bouncycastle.util.Pack;
23+
import org.bouncycastle.util.Strings;
2224
import org.bouncycastle.util.encoders.Hex;
2325

2426
public class PicnicVectorTest
@@ -185,4 +187,32 @@ public void testVectors()
185187
}
186188
}
187189

190+
public void testPicnicRandom()
191+
{
192+
byte[] msg = Strings.toByteArray("Hello World!");
193+
PicnicKeyPairGenerator keyGen = new PicnicKeyPairGenerator();
194+
195+
SecureRandom random = new SecureRandom();
196+
197+
keyGen.init(new PicnicKeyGenerationParameters(random, PicnicParameters.picnic3l1));
198+
199+
for (int i = 0; i != 100; i++)
200+
{
201+
AsymmetricCipherKeyPair keyPair = keyGen.generateKeyPair();
202+
203+
// sign
204+
PicnicSigner signer = new PicnicSigner();
205+
PicnicPrivateKeyParameters skparam = (PicnicPrivateKeyParameters)keyPair.getPrivate();
206+
signer.init(true, skparam);
207+
208+
byte[] sigGenerated = signer.generateSignature(msg);
209+
210+
// verify
211+
PicnicSigner verifier = new PicnicSigner();
212+
PicnicPublicKeyParameters pkparam = (PicnicPublicKeyParameters)keyPair.getPublic();
213+
verifier.init(false, pkparam);
214+
215+
assertTrue("count = " + i, verifier.verifySignature(msg, sigGenerated));
216+
}
217+
}
188218
}

0 commit comments

Comments
 (0)