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);
Здесь сертификат - это путь к файлу .pfx, содержащему сертификат, и fileToSign - файл для подписания.