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);
ここで、certificateは、証明書を含む.pfxファイルへのパスであり、fileToSignは署名するファイルです。