2009-08-18 2 views
8

Ich benutze Hüpfburg Anbieter für AES-Verschlüsselung. Ich muss ein fettes Glas von bc und meinem Glas schaffen, aber sobald ich es tue, bekomme ich Algorithmus keine Ausnahme gefunden. Ist es möglich, das Zeichen loszuwerden und daraus ein normales Glas zu machen?Ich unterschreibe ein signiertes Glas

Mein Build-Prozess ist ..

  • i entpacken alle Gläser in meinem Build-Verzeichnis.
  • dann META-INF-Verzeichnis
  • kompilieren meine Anwendung
  • jar es ant

den Fehler iGet wenn ich die

SecretKeyFactory.getInstance (Algorithmus) zu verwenden, versuchen Sie es mit entfernen;

Algorithmus ist PBEWITHSHA256AND128BITAES-CBC-BC von Hüpfburg.

+0

Nicht genug Informationen. * Genau * wann bekommst du den Fehler? * Genau * Was ist die Fehlermeldung? Martin hat recht mit den SF/DSA-Dateien, und Sie müssen möglicherweise auch Digests von MANIFEST.MF entfernen. Es ist keine gute Idee, das Verzeichnis META-INF vollständig zu entfernen (nicht sicher, dass es eine gültige JAR ohne Manifest ist) –

+0

Bitte schließen Sie Ihre Frage –

Antwort

9

Wenn Sie eine JAR-Datei signieren, werden neue Dateien zum Verzeichnis META-INF hinzugefügt, z. "MKSIGN.SF" und "MKSIGN.DSA". Entfernen Sie sie einfach aus der JAR-Datei (mit einem Zip-Dienstprogramm), und Sie haben es ohne Signatur.

+0

Ich entferne das META-INF-Verzeichnis immer noch Ich bekomme keine Algorithmus Ausnahme –

+3

Dies ist nicht praktisch. Wenn Ihr Zertifikat abläuft und Sie 40 Gläser in diesem "lib" -Ordner neu signieren müssen, wäre dies ein Problem. –

+0

cherio, das ist immer noch die Antwort, Sie könnten es programmatisch automatisieren, wenn Sie 40 unsignieren müssen. Aber anstatt ein Glas an Ort und Stelle neu zu signieren, signieren Sie es in einem anderen Verzeichnis, um dieses Problem zu vermeiden. – jzd

0

Sie müssen Signaturdateien aus dem signierten Jar entfernen. Ändern Sie die Erweiterung in zip, entfernen Sie Signaturdateien und wechseln Sie zurück in jar. Seit diesem Zeitpunkt ist das Glas nicht mehr signiert.

6

Um die Signatur aus einer JAR-Datei, entfernen Sie das META-INF Verzeichnis von ihm zu entfernen. Eine JAR-Datei ist eine ZIP-Datei, also unter Linux können Sie dies tun:

zip -d file.jar 'META-INF/*.SF' 'META-INF/*.RSA' 
+0

Großartig - genau das, was ich brauchte! Wenn es mehrere Dateien gibt, die man abmelden kann, kann man 'for i in * .jar; do zip -d "$ i" "META-INF/*. SF" "META-INF/*. RSA"; erledigt "... – tohuwawohu