如何使用c#验证.jar Java applet签名

时间:2014-01-10 09:58:39

标签: c# java applet digital-signature

我正在尝试检查.jar文件是否使用C#正确签名。我研究了一下但找不到检查方法(很像jarsigner)。

我已经尝试读取文件的内容并成功从清单和.sf文件中获取了* -digest字符串,但如果我无法验证它们是否为正确的签名。

我知道这是一个非常奇怪的问题,但我们将非常感谢任何帮助。

提前致谢!

1 个答案:

答案 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.
    }
}