使用signtool.exe扫描基于Windows的应用程序中的文件

时间:2015-03-04 18:27:32

标签: c#

我被分配实现基于Windows的C#程序来拾取文件夹并使用signtool.exe扫描/签署所有文档。

我可以获取该文件夹中的文件列表。现在我如何使用signtool.exe对它们进行签名?客户端计算机没有在任何地方安装signtool.exe。

编辑:我可以使用x509Certificates直接检查,而不是使用外部工具进行签名检查。对于未来需要的人,我的解决方案如下。

2 个答案:

答案 0 :(得分:1)

您将启动signtool.exe,其代码类似于:

var info = new ProcessStartInfo("<path.to>\signtool.exe", "<command line arguments>");
var p = Process.Start(info);
p.WaitForExit();

答案 1 :(得分:1)

抱歉,已经有一段时间了。我找到了一个简单的解决方案。只是希望将来,人们会寻找它:

        public static string CheckSignature(string FileName)
    {
        //X509Certificate2 cert;
        try
        {
            var signer = X509Certificate.CreateFromSignedFile(FileName);
            var cert = new X509Certificate2(signer);
            return "Digitally signed by: " + cert.SubjectName.Name;
        }
        catch (Exception)
        {
            return "NOT digitally signed.";
        }
    }

不要忘记包括:using System.Security.Cryptography.X509Certificates;

JPL