summaryrefslogtreecommitdiffstats
path: root/bcprov/src/main/java/org/bouncycastle/pqc/crypto/test/McElieceFujisakiCipherTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/pqc/crypto/test/McElieceFujisakiCipherTest.java')
-rw-r--r--bcprov/src/main/java/org/bouncycastle/pqc/crypto/test/McElieceFujisakiCipherTest.java102
1 files changed, 0 insertions, 102 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/pqc/crypto/test/McElieceFujisakiCipherTest.java b/bcprov/src/main/java/org/bouncycastle/pqc/crypto/test/McElieceFujisakiCipherTest.java
deleted file mode 100644
index dfc44b6..0000000
--- a/bcprov/src/main/java/org/bouncycastle/pqc/crypto/test/McElieceFujisakiCipherTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package org.bouncycastle.pqc.crypto.test;
-
-import java.security.SecureRandom;
-import java.util.Random;
-
-import org.bouncycastle.crypto.AsymmetricCipherKeyPair;
-import org.bouncycastle.crypto.Digest;
-import org.bouncycastle.crypto.digests.SHA256Digest;
-import org.bouncycastle.crypto.params.ParametersWithRandom;
-import org.bouncycastle.pqc.crypto.mceliece.McElieceCCA2KeyGenerationParameters;
-import org.bouncycastle.pqc.crypto.mceliece.McElieceCCA2KeyPairGenerator;
-import org.bouncycastle.pqc.crypto.mceliece.McElieceCCA2Parameters;
-import org.bouncycastle.pqc.crypto.mceliece.McElieceFujisakiCipher;
-import org.bouncycastle.pqc.crypto.mceliece.McElieceFujisakiDigestCipher;
-import org.bouncycastle.util.test.SimpleTest;
-
-public class McElieceFujisakiCipherTest
- extends SimpleTest
-{
-
- SecureRandom keyRandom = new SecureRandom();
-
- public String getName()
- {
- return "McElieceFujisaki";
-
- }
-
-
- public void performTest()
- {
- int numPassesKPG = 1;
- int numPassesEncDec = 10;
- Random rand = new Random();
- byte[] mBytes;
- for (int j = 0; j < numPassesKPG; j++)
- {
-
- McElieceCCA2Parameters params = new McElieceCCA2Parameters();
- McElieceCCA2KeyPairGenerator mcElieceCCA2KeyGen = new McElieceCCA2KeyPairGenerator();
- McElieceCCA2KeyGenerationParameters genParam = new McElieceCCA2KeyGenerationParameters(keyRandom, params);
-
- mcElieceCCA2KeyGen.init(genParam);
- AsymmetricCipherKeyPair pair = mcElieceCCA2KeyGen.generateKeyPair();
-
- ParametersWithRandom param = new ParametersWithRandom(pair.getPublic(), keyRandom);
- Digest msgDigest = new SHA256Digest();
- McElieceFujisakiDigestCipher mcElieceFujisakiDigestCipher = new McElieceFujisakiDigestCipher(new McElieceFujisakiCipher(), msgDigest);
-
-
- for (int k = 1; k <= numPassesEncDec; k++)
- {
- System.out.println("############### test: " + k);
- // initialize for encryption
- mcElieceFujisakiDigestCipher.init(true, param);
-
- // generate random message
- int mLength = (rand.nextInt() & 0x1f) + 1;;
- mBytes = new byte[mLength];
- rand.nextBytes(mBytes);
-
- // encrypt
- mcElieceFujisakiDigestCipher.update(mBytes, 0, mBytes.length);
- byte[] enc = mcElieceFujisakiDigestCipher.messageEncrypt();
-
- // initialize for decryption
- mcElieceFujisakiDigestCipher.init(false, pair.getPrivate());
- byte[] constructedmessage = mcElieceFujisakiDigestCipher.messageDecrypt(enc);
-
- // XXX write in McElieceFujisakiDigestCipher?
- msgDigest.update(mBytes, 0, mBytes.length);
- byte[] hash = new byte[msgDigest.getDigestSize()];
- msgDigest.doFinal(hash, 0);
-
- boolean verified = true;
- for (int i = 0; i < hash.length; i++)
- {
- verified = verified && hash[i] == constructedmessage[i];
- }
-
- if (!verified)
- {
- fail("en/decryption fails");
- }
- else
- {
- System.out.println("test okay");
- System.out.println();
- }
-
- }
- }
-
- }
-
- public static void main(
- String[] args)
- {
- runTest(new McElieceFujisakiCipherTest());
- }
-
-}