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); }
public void SignHash_CompareSignaturesOfRSACSPAndRSACipher_Pass() { int wantedKeySize = 4096; Random rdm = new Random(); byte[] message = new byte[256]; byte[] signedMessage; byte[] signedMessageNative; string nativeXmlString; rdm.NextBytes(message); using (var rsacsp = new RSACryptoServiceProvider(wantedKeySize)) { byte[] native = new SHA1Cng().ComputeHash(message); signedMessageNative = rsacsp.SignHash(native, "SHA1"); nativeXmlString = rsacsp.ToXmlString(true); } using (var cipher = new RSACipher<RSACryptoServiceProvider>(nativeXmlString)) { //byte[] hash = new SHA1Managed().ComputeHash(message); signedMessage = cipher.ComputeAndSignHash<SHA1Cng>(message); } CollectionAssert.AreEqual(signedMessage, signedMessageNative); }