package com.wesabe.grendel.openpgp.tests; import static org.fest.assertions.Assertions.*; import java.security.KeyPair; import java.security.KeyPairGenerator; import javax.crypto.Cipher; import javax.crypto.spec.DHParameterSpec; import org.junit.Test; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; import com.wesabe.grendel.openpgp.PregeneratedDHParameterSpec; @RunWith(Enclosed.class) public class PregeneratedDHParameterSpecTest { public static class A_Pregenerated_DHParameterSpec { private DHParameterSpec spec = new PregeneratedDHParameterSpec(); @Test public void itCanBeUsedToGenerateElGamalKeyPairs() throws Exception { final KeyPairGenerator generator = KeyPairGenerator.getInstance("ElGamal"); generator.initialize(spec); final KeyPair kp = generator.generateKeyPair(); final Cipher encrypter = Cipher.getInstance("ElGamal/None/OAEPWITHSHA512ANDMGF1PADDING"); encrypter.init(Cipher.ENCRYPT_MODE, kp.getPublic()); final byte[] encrypted = encrypter.doFinal("hello everybody!".getBytes()); final Cipher decrypter = Cipher.getInstance("ElGamal/None/OAEPWITHSHA512ANDMGF1PADDING"); decrypter.init(Cipher.DECRYPT_MODE, kp.getPrivate()); final byte[] decrypted = decrypter.doFinal(encrypted); assertThat(new String(decrypted)).isEqualTo("hello everybody!"); } } }