Файлы, связанные с цифровой подписью Java (MANIFEST.MF, *.SF, *.DSA) и их содержимое?

Я пытаюсь понять, какие шаги проходят jar и jarsigner при создании и регистрации кода Java, чтобы воспроизвести части этих шагов программно.

В частности, я хотел бы знать, что именно входит в файл .SF, потому что я прочитал много документов, в каждом из которых говорится что-то немного отличающееся, некоторые примеры:

Дайджест (или хэш) вычисляется для каждого файла в JAR и включается в манифест, например,

Имя: Hello.class SHA1-Digest: (160-битное хэш-значение файла)

Когда файл JAR подписан, файл подписи с расширением «.SF» создается в каталоге META-INF. Дайджест-значение каждого файла подписывается (или шифруется) с использованием закрытого ключа подписавшего. например.,

Имя: Hello.class SHA1-Digest: (значение дайджеста, зашифрованное с использованием закрытого ключа подписывающей стороны)

Файл подписи содержит записи дайджеста для файлов архива, которые похожи на записи значения дайджеста в манифесте. Однако в то время как значения дайджеста в манифесте вычисляются из самих файлов, значения дайджеста в файле сигнатур вычисляются из соответствующих записей в манифесте. Файлы подписи также содержат значение дайджеста для всего манифеста.

  • другие источники, которые трактуют аргумент расплывчато и не описательно

Итак... что именно содержит файл .SF? Как вычисляются его записи?

Пожалуйста, прежде чем публиковать ответ, проверьте его с помощью хэш-калькулятора примерно так< /strong> при необходимости!


person jj_    schedule 01.08.2013    source источник
comment
Вы можете подписать файл jar, а затем разархивировать его, чтобы увидеть пример...   -  person rogerdpack    schedule 11.11.2020


Ответы (1)


С другой стороны, в файле .SF значением дайджеста для данного исходного файла является хэш трех строк в файле манифеста для исходного файла.

Для получения дополнительной информации, пожалуйста, посмотрите http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html

person Nik theGeeK    schedule 14.05.2014
comment
проверил это, написав программу, которая принимает все содержимое МАНИФЕСТА в виде строки, затем вычисляет хэш SHA-1 для всех его подстрок, затем ищет тот, который соответствует тому, что находится в файле SF, в моем случае это заняло 4 строки, Имя: Дайджест SHA-1: затем две пустые строки. - person Morad; 15.12.2014