/// <summary> /// This method is used to sign the data using the private key /// </summary> /// <param name="method"></param> /// <param name="data"></param> /// <param name="privateKeyFilePath"></param> /// <returns></returns> public static string Sign(string method, string data, string privateKeyFilePath) { RSACryptoServiceProvider rsaCsp = PemKeyUtils.GetRSAProviderFromPemFile(privateKeyFilePath); string plainText = method + SerializeData(data); byte[] dataBytes = Encoding.UTF8.GetBytes(plainText); byte[] signatureBytes = rsaCsp.SignData(dataBytes, "SHA1"); return(Convert.ToBase64String(signatureBytes)); }
/// <summary> /// This method is used to verified the signed data with the public key /// </summary> /// <param name="method"></param> /// <param name="data"></param> /// <param name="publicKeyPath"></param> /// <param name="signature"></param> /// <returns></returns> public static bool Verify(string method, string data, string publicKeyPath, string signature) { string plainText = method + SerializeData(data); byte[] dataBytes = Encoding.UTF8.GetBytes(plainText); byte[] signBytes = Convert.FromBase64String(signature); RSACryptoServiceProvider rsa = PemKeyUtils.GetRSAProviderFromPemFile(publicKeyPath); bool valid = rsa.VerifyData(dataBytes, "SHA1", signBytes); return(valid); }