Hallo zusammen,
ich habe den Hash einer Datei und möchte diesen mit einem Zertifikat aus dem Zertifikatsspeicher signieren.
Den Hash (Byte Array) und das Zertifikat (X509Certificate2) bekomme ich übergeben.
Versucht habe ich es mit folgendem Code:
Hier bekomme ich allerdings den Fehler 'Ungültiger Algorithmus angegeben'.
Wenn ich den Key aus dem Store nicht verwende scheint es zu funktionieren:
Hat jemand von euch eine Idee wie ich das Zertifikat für die Signatur verwenden kann?
Danke für eure Ideen.
Aendrew
ich habe den Hash einer Datei und möchte diesen mit einem Zertifikat aus dem Zertifikatsspeicher signieren.
Den Hash (Byte Array) und das Zertifikat (X509Certificate2) bekomme ich übergeben.
Versucht habe ich es mit folgendem Code:
Code:
// http://blogs.msdn.com/b/shawnfa/archive/2008/08/25/using-rsacryptoserviceprovider-for-rsa-sha256-signatures.aspx RSACryptoServiceProvider rsa_msdn = (RSACryptoServiceProvider)cert.PrivateKey; byte[] signature_msdn = rsa_msdn.SignData(data, "SHA256"); if (rsa_msdn.VerifyData(data, "SHA256", signature_msdn)) { Console.WriteLine("RSA-SHA256 signature verified"); Console.WriteLine(ConvertHexToString(signature_msdn)); } else { Console.WriteLine("RSA-SHA256 signature failed to verify"); Console.WriteLine(ConvertHexToString(signature_msdn)); } RSACryptoServiceProvider rsa_msdn2 = (RSACryptoServiceProvider)cert.PrivateKey; byte[] signature_msdn2 = rsa_msdn2.SignData(data, "SHA256"); if (rsa_msdn2.VerifyData(data, "SHA256", signature_msdn2)) { Console.WriteLine("RSA-SHA256 signature verified"); Console.WriteLine(ConvertHexToString(signature_msdn2)); } else { Console.WriteLine("RSA-SHA256 signature failed to verify"); Console.WriteLine(ConvertHexToString(signature_msdn2)); }
Wenn ich den Key aus dem Store nicht verwende scheint es zu funktionieren:
Code:
RSACryptoServiceProvider rsa_msdn = new RSACryptoServiceProvider(); byte[] signature_msdn = rsa_msdn.SignData(data, "SHA256"); if (rsa_msdn.VerifyData(data, "SHA256", signature_msdn)) { Console.WriteLine("RSA-SHA256 signature verified"); Console.WriteLine(ConvertHexToString(signature_msdn)); } else { Console.WriteLine("RSA-SHA256 signature failed to verify"); Console.WriteLine(ConvertHexToString(signature_msdn)); }
Hat jemand von euch eine Idee wie ich das Zertifikat für die Signatur verwenden kann?
Danke für eure Ideen.
Aendrew