public void ComputeAndSignHash_VerifiesComputedSignature_Pass() { Random rdm = new Random(); byte[] message = new byte[256]; byte[] signedMessage; string nativeXmlString; bool isMessageNotTamperedWith = true; rdm.NextBytes(message); using (var rsacsp = new RSACipher<RSACryptoServiceProvider>()) { signedMessage = rsacsp.ComputeAndSignHash<SHA384Cng>(message); nativeXmlString = rsacsp.ToXmlString(true); } using (var cipher = new RSACipher<RSACryptoServiceProvider>(nativeXmlString)) { isMessageNotTamperedWith = cipher.ComputeAndVerifyHash<SHA384Cng>(message, signedMessage); } Assert.IsTrue(isMessageNotTamperedWith); }