I am using ECDsa for signing. When I use VerifyData with byte[] it works, but when I use it as Stream VerifyData returns false. Why?
VerifyData byte[]: True VerifyData Stream: False
using System.Security.Cryptography;
using System.Text;
string data = "Hello, World!";
using MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(data));
using ECDsa ecdSa = ECDsa.Create();
byte[] signature = ecdSa.SignData(ms.ToArray(), HashAlgorithmName.SHA256, DSASignatureFormat.Rfc3279DerSequence);
bool verify = ecdSa.VerifyData(ms.ToArray(), signature, HashAlgorithmName.SHA256, DSASignatureFormat.Rfc3279DerSequence);
byte[] signatureStream = ecdSa.SignData(ms, HashAlgorithmName.SHA256, DSASignatureFormat.Rfc3279DerSequence);
bool verifyStream = ecdSa.VerifyData(ms, signatureStream, HashAlgorithmName.SHA256, DSASignatureFormat.Rfc3279DerSequence);
Console.WriteLine("VerifyData byte[]: " + verify);
Console.WriteLine("VerifyData Stream: " + verifyStream);
Console.ReadLine();
please review the example, thanks