I have a pre-existing public/private key pair for RSA encryption which I need to use in .net . All the examples I can find online demonstrate how to generate a new private/public pair and then encrypt/decrypt. ie. something like this:
const int PROVIDER_RSA_FULL = 1;
const string CONTAINER_NAME = "SpiderContainer";
CspParameters cspParams;
cspParams = new CspParameters(PROVIDER_RSA_FULL);
cspParams.KeyContainerName = CONTAINER_NAME;
cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
cspParams.ProviderName = "Microsoft Strong Cryptographic Provider";
rsa = new RSACryptoServiceProvider(cspParams);
.....
rsa.encrypt(...)
rsa.decrypt(...)
As can be seen, there is no avenue for specifying a pre-existing public/private key.
Would anyone know how to accomplish what I am trying to do? Any help would be much appreciated.
Cheers Naren
I realise this is a very old question but maybe someone still looks at this...
Nowadays you can retrieve/store your keys in XML format (which you possibly could back in the days too).
Example import:
Example export:
To use an existing key, you can use the
ImportParameters
-method:You can add the private parameters, too, in order to use it for decrypting or signing.
In order to tell you how to get from your existing keydata to the parameters, we need to know exactly how they are encoded. Try showing us the strings (replace most of the private key with Xs if it is a real key).