How do I create an instance of java.security.interfaces.RSAPrivateKey given RSA's d, e and n (let's assume as BigIntegers). (Here d denotes the private exponent, e the public exponent and n=pq the RSA modulus.)
I thought this would be really simple but I can't find anything in the documentation or the internet in general.
If that it is any help, I already have BouncyCastle installed.
Edit to clarify: I'm looking for a class that implements the interface and takes d, e and/or n as arguments to the constructor (or argument to a factory function, etc.) as opposed to creating a new, random key or reading the key from a file in some PKCS* format.
Well, here is how you can construct one given the private exponent and modulus ( all that is required for the private key ):
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
RSAPrivateKeySpec privateKeySpec = new RSAPrivateKeySpec(
new BigInteger("57791d5430d593164082036ad8b29fb157791d5430d593164082036ad8b29fb157791d5430d593164082036ad8b29fb157791d5430d593164082036ad8b29fb1", 16),
new BigInteger("57791d5430d593164082036ad8b29fb157791d5430d593164082036ad8b29fb157791d5430d593164082036ad8b29fb157791d5430d593164082036ad8b29fb1", 16)
);
RSAPrivateKey privateKey = (RSAPrivateKey) keyFactory.generatePrivate(privateKeySpec);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With