Usando BouncyCastle para encriptar con ECIES en Java

Estoy tratando de encriptar algunos contenidos usando el algoritmo ECC usando BouncyCastle en Java. Pero recibo una excepción de la biblioteca BouncyCastle que dice que no se puede emitirJCEECPublicKey aIESKey. Que entendí que la clave pública generada porKeyPairGenerator esJCEECPublicKey que no se puede usar en javaCipher.init método. ¿Alguien puede decirme cómo convertirlo en clave pública o especificación X509 para que pueda usarlo encriptado?

Aquí está el código que probé

// add instance of provider class
Security.addProvider(new BouncyCastleProvider());

// initializing parameter specs secp256r1/prime192v1
ECParameterSpec ecSpec = ECNamedCurveTable.getParameterSpec("prime192v1");

// key pair generator to generate public and private key
KeyPairGenerator generator = KeyPairGenerator.getInstance("ECDH", new BouncyCastleProvider());

// initialize key pair generator
generator.initialize(ecSpec);

// Key pair to store public and private key
KeyPair keyPair = generator.generateKeyPair();

Cipher iesCipher = Cipher.getInstance("ECIES", new BouncyCastleProvider());
iesCipher.init(Cipher.ENCRYPT_MODE, keyPair.getPublic());

También intenté convertir la clave pública en X509EncodedSpec pero obtengo la misma excepción

X509EncodedKeySpec spec = new X509EncodedKeySpec(keyPair.getPublic().getEncoded());
KeyFactory factory = KeyFactory.getInstance("ECDH");

PublicKey publicKey = factory.generatePublic(spec);

La excepción que estoy recibiendo es

java.lang.ClassCastException: org.bouncycastle.jce.provider.JCEECPublicKey cannot be cast to org.bouncycastle.jce.interfaces.IESKey
    at org.bouncycastle.jce.provider.JCEIESCipher.engineGetKeySize(JCEIESCipher.java:49)
    at javax.crypto.Cipher.passCryptoPermCheck(Cipher.java:1057)
    at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1015)
    at javax.crypto.Cipher.init(Cipher.java:1229)
    at javax.crypto.Cipher.init(Cipher.java:1173)
    at com.test.EciesTest.main(EciesTest.java:45)

EDITAR

Según el comentario, la versión de JDK que estoy usando es JDK 7 - Declaraciones de Oracle Import que estoy usando:

import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.Security;
import java.security.spec.ECGenParameterSpec;
import javax.crypto.Cipher;
import org.bouncycastle.jce.provider.BouncyCastleProvider;

Respuestas a la pregunta(1)

Su respuesta a la pregunta