diff options
Diffstat (limited to 'libraries/spongycastle/core/src/test/java/org/spongycastle/pqc/crypto/test/EncryptionKeyTest.java')
-rw-r--r-- | libraries/spongycastle/core/src/test/java/org/spongycastle/pqc/crypto/test/EncryptionKeyTest.java | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/libraries/spongycastle/core/src/test/java/org/spongycastle/pqc/crypto/test/EncryptionKeyTest.java b/libraries/spongycastle/core/src/test/java/org/spongycastle/pqc/crypto/test/EncryptionKeyTest.java new file mode 100644 index 000000000..1b152bffd --- /dev/null +++ b/libraries/spongycastle/core/src/test/java/org/spongycastle/pqc/crypto/test/EncryptionKeyTest.java @@ -0,0 +1,51 @@ +package org.spongycastle.pqc.crypto.test; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +import junit.framework.TestCase; +import org.spongycastle.crypto.AsymmetricCipherKeyPair; +import org.spongycastle.pqc.crypto.ntru.NTRUEncryptionKeyPairGenerator; +import org.spongycastle.pqc.crypto.ntru.NTRUEncryptionKeyGenerationParameters; +import org.spongycastle.pqc.crypto.ntru.NTRUEncryptionPrivateKeyParameters; +import org.spongycastle.pqc.crypto.ntru.NTRUEncryptionPublicKeyParameters; + +public class EncryptionKeyTest + extends TestCase +{ + public void testEncode() + throws IOException + { + for (NTRUEncryptionKeyGenerationParameters params : new NTRUEncryptionKeyGenerationParameters[]{NTRUEncryptionKeyGenerationParameters.APR2011_743, NTRUEncryptionKeyGenerationParameters.APR2011_743_FAST, NTRUEncryptionKeyGenerationParameters.EES1499EP1}) + { + testEncode(params); + } + } + + private void testEncode(NTRUEncryptionKeyGenerationParameters params) + throws IOException + { + NTRUEncryptionKeyPairGenerator kpGen = new NTRUEncryptionKeyPairGenerator(); + + kpGen.init(params); + + AsymmetricCipherKeyPair kp = kpGen.generateKeyPair(); + byte[] priv = ((NTRUEncryptionPrivateKeyParameters)kp.getPrivate()).getEncoded(); + byte[] pub = ((NTRUEncryptionPublicKeyParameters)kp.getPublic()).getEncoded(); + + AsymmetricCipherKeyPair kp2 = new AsymmetricCipherKeyPair(new NTRUEncryptionPublicKeyParameters(pub, params.getEncryptionParameters()), new NTRUEncryptionPrivateKeyParameters(priv, params.getEncryptionParameters())); + assertEquals(kp.getPublic(), kp2.getPublic()); + assertEquals(kp.getPrivate(), kp2.getPrivate()); + + ByteArrayOutputStream bos1 = new ByteArrayOutputStream(); + ByteArrayOutputStream bos2 = new ByteArrayOutputStream(); + ((NTRUEncryptionPrivateKeyParameters)kp.getPrivate()).writeTo(bos1); + ((NTRUEncryptionPublicKeyParameters)kp.getPublic()).writeTo(bos2); + ByteArrayInputStream bis1 = new ByteArrayInputStream(bos1.toByteArray()); + ByteArrayInputStream bis2 = new ByteArrayInputStream(bos2.toByteArray()); + AsymmetricCipherKeyPair kp3 = new AsymmetricCipherKeyPair(new NTRUEncryptionPublicKeyParameters(bis2, params.getEncryptionParameters()), new NTRUEncryptionPrivateKeyParameters(bis1, params.getEncryptionParameters())); + assertEquals(kp.getPublic(), kp3.getPublic()); + assertEquals(kp.getPrivate(), kp3.getPrivate()); + } +}
\ No newline at end of file |