用于替换signtool.exe的API /库

Aru*_*run 11 .net signing certificate

Windows SDK附带了一个名为signtool.exe的工具,可让您使用证书对文件进行签名.我需要做同样的事情,但在后台服务,所以我正在寻找一个库(最好是托管代码,但COM会做),做同样的事情.有任何想法吗?

找到了答案.以下是如何使用X.509证书在.NET中签名文件:

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);
Run Code Online (Sandbox Code Playgroud)

这里,certificate是包含证书的.pfx文件的路径,fileToSign是要签名的文件.

On *_*und 3

SignTool 使用 CAPICOM,它是 Crypto API 的 COM 包装器。您可以使用其中任何一个。如果您要使用 CAPICOM,您可以在此处查看信息。