RSA keys are in pairs, but you used public key in both methods. replacing provided key in CheckSignature
with private key should solve your problem. and in CheckSignature
method you should feed VerifySignature
with MD5 hash of key varibale, the code should be more like this
public static byte\[\] CreateSignature(string key64)
{
var data = Convert.FromBase64String(key64);
var rSaCryptoServiceProvider = new RSACryptoServiceProvider(new CspParameters
{
Flags = CspProviderFlags.UseMachineKeyStore
});
rSaCryptoServiceProvider.FromXmlString(privateKey);
var RSAform = new RSAPKCS1SignatureFormatter();
RSAform.SetKey(rSaCryptoServiceProvider);
RSAform.SetHashAlgorithm("MD5");
var md5 = MD5.Create();
byte\[\] hashData = md5.ComputeHash(data);
return RSAform.CreateSignature(hashData);
}
hope this helps