CryptographicException bei WebService

Meldur

Erfahrenes Mitglied
Hallo!

Hier mal eine Nuß von der ich glaube, dass sie schwer zu knacken sein wird. Ich möchte einen WebService schreiben, der eine RSA-Verschlüsselung nutzt. Lokal funktioniert folgender Code einwandfrei

Code:
public static RSACryptoServiceProvider rsa;
 
public static void AssignParameter()
{
cons tint 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);
}
 
public static string DecryptData(string data2Decrypt)
{
AssignParameter();
byte[] getpassword = Convert.FromBase64String(data2Decrypt);
StreamReader reader = new StreamReader(@"C:\Inetpub\wwwroot\privatekey.xml");
string publicPrivateKeyXML = reader.ReadToEnd();
rsa.FromXmlString(publicPrivateKeyXML);
reader.Close();
//read ciphertext, decrypt it to plaintext
byte[] plain = rsa.Decrypt(getpassword, false);
return System.Text.Encoding.UTF8.GetString(plain);
}

Doch wenn nun mein WebService an die Stelle "new RSACryptoServiceProvider(cspParams);" kommt, schmeißt er folgende Exception:

Code:
System.Security.Cryptography.CryptographicException: Das Objekt ist bereits vorhanden.

   at System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr)

   at System.Security.Cryptography.Utils._CreateCSP(CspParameters param, Boolean randomKeyContainer, SafeProvHandle& hProv)

   at System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer)

   at System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle)

   at System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair()

   at System.Security.Cryptography.RSACryptoServiceProvider..ctor(Int32 dwKeySize, CspParameters parameters, Boolean useDefaultKeySize)

   at System.Security.Cryptography.RSACryptoServiceProvider..ctor(CspParameters parameters)

   at Service.AssignParameter() in c:\Inetpub\wwwroot\DummyWS\App_Code\Service.cs:line 36

   at Service.DecryptData(String data2Decrypt) in c:\Inetpub\wwwroot\DummyWS\App_Code\Service.cs:line 44

   at Service.identClient(String clearText, String cryptedText) in 
c:\Inetpub\wwwroot\DummyWS\App_Code\Service.cs:line 20

Hat vielleicht jemand eine Idee, was da schief läuft?

Gruß, Peter
 

Neue Beiträge

Zurück