Estoy usando el ejemplo dado en msdn artículo sobre la Clase DSACryptoServiceProvider. El problema es que recibo una firma diferente cada vez que ejecuto el código. Probé OpenSSL y no tuve este problema, pero necesito trabajar con System.Security.Cryptography esta vez.
Este es un código fuente: este es el valor hash que se firmará
byte[] HashValue =
{
59, 4, 248, 102, 77, 97, 142, 201,
210, 12, 224, 93, 25, 41, 100, 197,
213, 134, 130, 135
};
y aquí es donde radica el problema
// The value to hold the signed value.
byte[] SignedHashValue1 = DSASignHash(HashValue, privateKeyInfo, "SHA1");
byte[] SignedHashValue2 = DSASignHash(HashValue, privateKeyInfo, "SHA1");
Usé el depurador para averiguar que SignedHashValue1
no es igual a SignedHashValue2