I am creating a routine to replace old legacy code, that needs to encrypt a chunk of data with an old key. I only have D, the Modulus, and the Exponent. With the old code, I could encrypt using these, but the key sizes are now not flexible enough for the modern use of the code. Key sizes are large - 1024bits, 1152bits, up to 1536bits. (New large keys of course can be created and used via CRT, but I need to maintain support for the existing keys already in use.)
Does the MS .Net RSACryptographicProvider class allow any way of encrypting data with the private key, *without* needing the whole private key parts - ie. P,Q, Inverse Q, etc.. The encryption method is known as ME. Encryption using CRT method is quicker, but requires all parts of the private key to be known.
When I try to use the .Net class, it always responds with an "Only the public parts of the key are known. To encrypt, you require the private key part." error. I have provided the parts that are known - D, modulus, and exponent.
Incidentally, does the .Net class support an exponent of 03?
using namespace System::Security::Cryptography;
CspParameters^ cspParams = gcnew CspParameters;
View Complete Post