Tag: signtool

为什么我的根证书不受信任?

我从证书服务器发给自己一个代码签名证书。 我也从同一个证书服务器发给自己的根证书。 根证书存在于“受信任的根证书颁发机构”文件夹中的“当前用户”和“本地计算机”证书存储中。 我已使用signtool.exe向导成功签名了DLL: “C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\signtool.exe” signwizard .dll 但是,当我尝试validation我的DLL时,它validation失败并出现以下错误: “C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\signtool.exe” verify .dll SignTool Error: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. SignTool Error: File not valid: .dll 为什么会这样? 我认为在受信任的根证书颁发机构文件夹中拥有根证书将validationDLL。

C#:如何检测authenticode签名文件的篡改

我正在尝试编写一个C#程序来validationexe的数字签名。 exe是用authenticode证书签名的,我想检测篡改。 我已经能够创建一个SignedCms实例,如下所述: 从.NET中的Authenticode签名文件中获取时间戳 我假设SignedCms.CheckSignature可以做到这一点,但是这个方法永远不会引发exception……即使不是当我修改exe的某些部分时……

validation可执行文件是否已签名(用于签署该exe的signtool)

在我的应用程序中,我需要validation它是否已签名。 如果签名继续执行并退出应用程序,如果没有。 signtool将用于签署应用程序。 有没有C#代码可以做到这一点?

如何从签名的C#exe中读取公钥

我正在签署一个dot net exe signcode.exe with an spc/pvk combo 该文件需要在运行时读取自己的公钥以validation某些数据。 我走了很多不同的途径。 我试过了 X509Certificate executingCert = X509Certificate.CreateFromSignedFile(exe); 那么executionCert就是null。 我猜测signcode没有创建一个X509签名文件,但如果有一个改变的转换,我很高兴这样做。 编辑结果以上工作….我向后检查了我的空检查(!=!= ==):) Assembly asm = Assembly.GetExecutingAssembly(); string exe = asm.Location; X509Certificate executingCert = X509Certificate.CreateFromSignedFile(exe); if (executingCert != null) { Console.WriteLine(“Assembly is signed”); byte[] assemblyKey = executingCert.GetPublicKey(); }