summary refs log tree commit diff
path: root/crypto/test
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/test')
-rw-r--r--crypto/test/src/pqc/crypto/test/PicnicVectorTest.cs33
1 files changed, 32 insertions, 1 deletions
diff --git a/crypto/test/src/pqc/crypto/test/PicnicVectorTest.cs b/crypto/test/src/pqc/crypto/test/PicnicVectorTest.cs

index c3c00cba6..6ceb54697 100644 --- a/crypto/test/src/pqc/crypto/test/PicnicVectorTest.cs +++ b/crypto/test/src/pqc/crypto/test/PicnicVectorTest.cs
@@ -6,6 +6,7 @@ using NUnit.Framework; using Org.BouncyCastle.Crypto; using Org.BouncyCastle.Pqc.Crypto.Picnic; using Org.BouncyCastle.Pqc.Crypto.Utilities; +using Org.BouncyCastle.Security; using Org.BouncyCastle.Utilities; using Org.BouncyCastle.Utilities.Encoders; using Org.BouncyCastle.Utilities.Test; @@ -33,6 +34,36 @@ namespace Org.BouncyCastle.Pqc.Crypto.Tests private static readonly IEnumerable<string> TestVectorFiles = Parameters.Keys; + [Test] + public void TestPicnicRandom() + { + byte[] msg = Strings.ToByteArray("Hello World!"); + PicnicKeyPairGenerator keyGen = new PicnicKeyPairGenerator(); + + SecureRandom random = new SecureRandom(); + + keyGen.Init(new PicnicKeyGenerationParameters(random, PicnicParameters.picnic3l1)); + + for (int i = 0; i != 100; i++) + { + AsymmetricCipherKeyPair keyPair = keyGen.GenerateKeyPair(); + + // sign + PicnicSigner signer = new PicnicSigner(); + PicnicPrivateKeyParameters skparam = (PicnicPrivateKeyParameters)keyPair.Private; + signer.Init(true, skparam); + + byte[] sigGenerated = signer.GenerateSignature(msg); + + // verify + PicnicSigner verifier = new PicnicSigner(); + PicnicPublicKeyParameters pkparam = (PicnicPublicKeyParameters)keyPair.Public; + verifier.Init(false, pkparam); + + Assert.True(verifier.VerifySignature(msg, sigGenerated), "count = " + i); + } + } + [TestCaseSource(nameof(TestVectorFiles))] [Parallelizable(ParallelScope.All)] public void TV(string testVectorFile) @@ -82,7 +113,7 @@ namespace Org.BouncyCastle.Pqc.Crypto.Tests Assert.True(smlen == attachedSig.Length, name + " " + count + ": signature length"); signer.Init(false, pubParams); - Assert.True(signer.VerifySignature(msg, attachedSig), (name + " " + count + ": signature verify")); + Assert.True(signer.VerifySignature(msg, sigGenerated), (name + " " + count + ": signature verify")); Assert.True(Arrays.AreEqual(sigExpected, attachedSig), name + " " + count + ": signature gen match"); }