Das Windows SDK wird mit einem Tool namens signtool.exe ausgeliefert, mit dem Sie eine Datei mit einem Zertifikat signieren können. Ich muss dasselbe tun, aber in einem Hintergrunddienst, also bin ich auf der Suche nach einer Bibliothek (vorzugsweise verwalteten Code, aber COM wird tun), um das Gleiche zu tun. Irgendwelche Ideen?API/Bibliothek zum Ersetzen von signtool.exe
Die Antwort gefunden. Hier ist, wie ein X.509-Zertifikat verwenden, um eine Datei in .NET zu unterschreiben:
CmsSigner signer = new CmsSigner();
signer.Certificate = new X509Certificate2(certificate);
SignedCms content = new SignedCms(new ContentInfo(File.ReadAllBytes(fileToSign)));
content.ComputeSignature(signer, true);
byte[] signedFile = content.Encode();
string signedFileName = fileToSign + ".signed";
File.WriteAllBytes(signedFileName, signedFile);
Console.WriteLine("Signed file: " + signedFileName);
Hier Zertifikat ist der Pfad zu der PFX-Datei enthält das Zertifikat und fileToSign ist die Datei zu signieren.
Gefunden meine Antwort. Dokumentation zur Verwendung der CAPICOM-Bibliothek für die Signierung hier: http://msdn.microsoft.com/en-us/library/aa387760(VS.85).aspx Da die CAPICOM-API veraltet ist, zeigt diese Seite was Die .NET-Ersetzungen sind: http://msdn.microsoft.com/en-us/library/cc778518(VS.85).aspx – Arun