2009-08-18 11 views
8

Używam dostawcy bouncy castle do szyfrowania AES. Potrzebuję utworzyć gruby słoik z bc i mojego słoika, ale jak tylko to zrobię, otrzymam wyjątek Algorithm not found. Czy można pozbyć się znaku i stworzyć z niego zwykły słoik?Un podpisanie podpisanego słoiczka

Mój proces kompilacji jest ..

  • i rozpakować wszystkie słoiki do mojego katalogu kompilacji.
  • następnie usunąć katalogu META-INF
  • skompilować mój wniosek
  • słoik to przy użyciu Ant

IGET błąd, gdy próbuję użyć

SecretKeyFactory.getInstance (algorytm);

algorytm to PBEWITHSHA256AND128BITAES-CBC-BC z dmuchanego zamku.

+0

Za mało informacji. * Dokładnie * kiedy pojawi się błąd? * Dokładnie * jaki jest komunikat o błędzie? Martin ma rację co do plików SF/DSA, a ty możesz również usunąć digests z MANIFEST.MF. Nie jest dobrym pomysłem całkowite usunięcie katalogu META-INF (nie jestem pewien, czy jest to prawidłowy JAR bez manifestu) –

+0

proszę zamknąć pytanie –

Odpowiedz

9

Po podpisaniu pliku JAR nowe pliki zostaną dodane do katalogu META-INF, np. "MKSIGN.SF" i "MKSIGN.DSA". Po prostu usuń je z pliku JAR (za pomocą dowolnego narzędzia zip), i masz go bez podpisu.

+0

Całkowicie usuwam katalog META-INF nadal nie otrzymuję wyjątku algorytmu –

+3

Jest to niepraktyczne. Po wygaśnięciu certyfikatu i konieczności ponownego podpisania 40 słoików w tym folderze "lib" robienie tego jeden po drugim byłoby uciążliwe. –

+0

Cherio, to wciąż jest odpowiedź, możesz zautomatyzować programowanie, jeśli masz 40, aby zrezygnować. Ale zamiast ponownie podpisać słoik na miejscu, zaloguj go do innego katalogu, aby uniknąć tego problemu. – jzd

0

Musisz usunąć pliki sygnatur z podpisanego słoika. Zmień jego rozszerzenie na zip, usuń pliki sygnatur i wróć do słoika. Odtąd słoik nie jest już niepodpisany.

6

Aby usunąć podpis z pliku jar, usuń katalog META-INF od niego. Plik jar to plik zip, więc w systemie Linux można to zrobić:

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

Świetnie - dokładnie to, czego potrzebowałem! Jeśli istnieje wiele plików do niezarejestrowania, można użyć 'for i in * .jar; zip -d "$ i" 'META-INF/*. SF' 'META-INF/*. RSA'; done' ... – tohuwawohu

Powiązane problemy