Überprüfen und signieren Sie ein Jar programmgesteuert
Ich bin neu in diesem Thema, deshalb hoffe ich, dass ich den richtigen Wortschatz verwende. Ist es möglich, die Möglichkeit von Jarsigner in Java selbst zu bekommen?
Ich brauche die Möglichkeit, folgende Dinge programmatisch zu erledigen:
Überprüfen Sie, ob eine JAR-Datei mit einem bestimmten privaten Schlüssel aus einem Keystore signiert istWenn das Glas verifiziert ist: Das Glas abzeichnenSignieren Sie das Glas mit einem anderen privaten Schlüssel von einer offiziellen Zertifizierungsstelle, die sich im selben oder in einem anderen Schlüsselspeicher befindetIm Pseudocode stelle ich mir so etwas vor:
JarVerifier verifier = new JarVerifier(/*all needed parameters like the location of the keystore*/);
verifier.verify(jarFile); //returns a value which indicates the result (an Enum or an integer value)
Das Signieren des Glases sollte auf ähnliche Weise funktionieren:
JarSigner signer = new JarSigner(/*all needed parameters like the location of the keystore, passwords, alias*/);
signer.sign(jarFile);
Ich weiß, dass dies ein Duplikat von vielen anderen Fragen ist, aber ich bin mit ihren Antworten nicht zufrieden. Die Lösung dieser Antworten ist in den meisten Fällen eine selbst geschriebene Klasse, eine Modifikation einer Klasse aus OpenJDK oder ein Hinweis darauf, dass der Code noch geschrieben werden muss und wie dies getan werden kann. Dies ist für mich nicht akzeptabel, da sie nicht gepflegt werden (oder ich die Klassen selbst schreiben und pflegen muss), ich nichts über ihre Richtigkeit (insbesondere, wenn ich den Code selbst schreiben muss) und Lizenzprobleme weiß.
Was ich nicht verstehe, ist, dass es scheinbar keine einfache Lösung von Oracle gibt, zumal es sich um ein so kritisches Thema handelt, bei dem ein Fehler zu einem unsicheren System führen könnte.