8

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

4

2 に答える 2

5

既存のキーを使用するには、ImportParameters-methodを使用できます。

RSAParameters parameters = new RSAParameters()
parameters.Modulus = // ...
parameters.Exponent = // ...
RSA rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(parameters);
rsa.Encrypt(/*...*/);

復号化または署名に使用するために、プライベート パラメータも追加できます。

既存のキーデータからパラメーターを取得する方法を説明するには、それらがどのようにエンコードされているかを正確に知る必要があります。文字列を表示してみてください (実際の鍵の場合は、ほとんどの秘密鍵を X に置き換えてください)。

于 2009-10-08T15:44:48.317 に答える