我正在尝试检查.jar文件是否使用C#正确签名。我研究了一下但找不到检查方法(很像jarsigner
)。
我已经尝试读取文件的内容并成功从清单和.sf文件中获取了* -digest字符串,但如果我无法验证它们是否为正确的签名。
我知道这是一个非常奇怪的问题,但我们将非常感谢任何帮助。
提前致谢!
答案 0 :(得分:1)
上面的评论似乎确实是最好的方法,就是将jarsigner称为C#中的外部进程。所以,让我给你一些代码。
using System;
using System.Diagnostics;
public class VerifyJar
{
public static void Main()
{
Process p = new Process();
p.StartInfo.FileName = "jarsigner"; // put in full path
p.StartInfo.Arguments = "-verify liblinear-1.92.jar"; // put in your jar file
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
// Handle the output with a string check probably yourself
// Here I just display what the result for debugging purposes
Console.WriteLine("Output:");
Console.WriteLine(output);
// For me, the output is "jar is unsigned. (signature missing or not parsable)"
// which is correct for this particular jar file.
}
}