1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| static public string Signature(string _sPrivateKeyXML,string _sDataToSign, ref string __sMessErr)
{
try
{
//Create a new instance of RSACryptoServiceProvider.
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSA.FromXmlString(_sPrivateKeyXML);
//Create a new instance of RSAPKCS1SignatureFormatter.
RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSA);
RSAFormatter.SetHashAlgorithm("SHA1");
//Create a new instance of SHA1CryptoServiceProvider.
SHA1CryptoServiceProvider UnCrypto = new SHA1CryptoServiceProvider();
byte[] DataSign = Encoding.ASCII.GetBytes(_sDataToSign);
byte[] Sign = UnCrypto.ComputeHash(DataSign);
byte[] SignedHash = RSAFormatter.CreateSignature(Sign);
return Convert.ToBase64String(SignedHash);
}
catch (CryptographicException e)
{
__sMessErr = e.ToString();
return null;
}
} |