2009-05-11 8 views
1

Ich möchte nicht die jarsigner -verify verwenden. Gibt es kein JAR-Util-Paket für mein Problem? Ich möchte nur eine JAR in reinem Java verifizieren.Wie kann ich signierte JARs mit reinem Java überprüfen?

+0

Haben Sie sich bereits die Klassen im Paket java.util.jar angesehen? – rudolfson

+0

Ich habe JarFile und JarInputStream mit dem Verify-Flag versucht. Aber ich arbeite nicht. Es funktioniert mit dem Jarsigner. – alexvetter

+0

Werfen Sie einen Blick auf http://java.sun.com/j2se/1.4.2/docs/toolocs/windows/jarsigner.html#Verifying. Die Überprüfung sieht wie eine komplexe Prozedur aus. Und wie ich es sehe, muss man diesen ganzen Prozess programmieren. – rudolfson

Antwort

4

Der "Jarsigner" ist nur ein kleiner Wrapper für ein Java-Programm, das das Glas überprüft. In Ihrem JDK befindet sich eine "tools.jar" (normalerweise "C: \ Programme \ Java \ jdk1.6.0_13 \ lib \ tools.jar" oder etwas Ähnliches). Innerhalb dieser Bibliothek gibt es eine Klasse "JarSigner", die die gewünschte Fähigkeit bietet. Legen Sie einfach die "tools.jar" auf Ihren Klassenpfad!

Heres ein Beispielprogramm, das Verhalten

import sun.security.tools.JarSigner zu demonstrieren;

public class TestJarSigner { 

public static void main(String[] args) { 
    JarSigner signer = new JarSigner(); 
    signer.run(new String[] { "-verify", "tools.jar" }); 
} 

} 

Ausgang ist:

jar is unsigned. (signatures missing or not parsable) 

Die sources are availible, wenn Sie ein tieferes Verständnis für die Signierung benötigen.