Cifrar mensajes con RSA

Antonio Gonzalez
13 de Diciembre del 2008
Hola a todos. Estoy intentando firmar unos mensajes utilizando el algoritmo RSA, pero todos los manuals que encuentro por internet hablan de generar las claves dentro del propio código java.

En mi caso, tuve que generar una autoridad de certificación que firmase los certificados de los usuarios. Por lo que tengo todos los certificados y todos los keystores generados con keyTool. Para generar todo esto indiqué que se usase RSA con clave de 2048 bits.

Tras mucho trastear, consigo leer el contenido de los keystores e imprimir la información de los diferentes certificados. Pero de ahí no paso, no sé cómo utilizar las claves de los certificados para firmar con RSA, porque al parecer esas claves son DSA.

Intento profundizar en el DSA pero me pierdo completamente. He intentado poner un :

"RSAPrivateKey private_key = (RSAPrivateKey)ks.getKey("mykey", pas);"

donde ks es el keystore y pas su contraseña, pero me dice:
"sun.security.provider.DSAPrivateKey cannot be cast to java.security.interfaces.RSAPrivateKey"

y sinceramente ... estoy atascado ...

¿alguien puede echarme una mano?

Os lo agradecería profundamente.