Недопустимый дайджест сигнатур файла SHA1

Я пытаюсь проверить подпись Jar:

    jarsigner -verify -verbose -certs example.jar

У меня возникла следующая проблема:

jarsigner: java.lang.SecurityException: invalid SHA1 signature file digest for o
rg/apache/log4j/net/DefaultEvaluator.class

У меня появилось несколько предложений об использовании -digestalg SHA-1, но я не знаю, где я должен был бы поместить это утверждение!

Надеюсь, вы поможете мне решить проблему.

Ответы

Ответ 1

Вот решение:

jarsigner -keystore mykeystore -digestalg SHA1 jarfile alias

Чтобы проверить:

jarsigner -verify -verbose -certs jarfile

Ответ 2

Эта ошибка может также произойти, когда банка подписана дважды.

Решение заключалось в том, чтобы "unsign" jar удалил файлы *. SF, *. DSA, *. RSA из банки META-INF, а затем снова подпишите банку.

Ответ 3

Это сработало для меня. Мне пришлось изменить мой ANT на версию 1.8.3 и добавить атрибут DIGESTALG:

<!-- VLS2014 ADDED digestalg="SHA1" -->
<signjar keystore="${security.keystore}"
         storepass="${security.storepass}"
         keypass="${security.keypass}"
         alias="${security.alias}"
         jar="${basedir}/temp/tj/${justfname}"
         signedjar="${real.signed.jar}"
     digestalg="SHA1"
        />

<delete file="${basedir}/temp/tj/${justfname}" />
</target>