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
Doch wenn nun mein WebService an die Stelle "new RSACryptoServiceProvider(cspParams);" kommt, schmeißt er folgende Exception:
Hat vielleicht jemand eine Idee, was da schief läuft?
Gruß, Peter
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