В настоящее время я пытаюсь написать подписавшего JAR как сторонний проект. В файле манифеста (.MF) я добавляю хэш SHA256 в кодировке Base64 для каждого файла следующим образом:
Name: com/sample/MySample.class
SHA-256-Digest: TRqPMBJdQrIg5jHsAaoT1Rp5fjFjB8z/c2I+AHs5rX8=
В файле подписи (.SF) я должен добавить еще один SHA256-хеш для каждого файла, но я не уверен, как он рассчитывается. В документах говорится, что это хеш SHA256 соответствующего блока манифеста, но хеширование строки от «Имя» до конца дайджеста не дает мне тот же результат, что и оригинальный файл jarsigner.exe. JDK.
Как рассчитать этот хеш?
Я пытался хэшировать различные вещи (например, перефразировать хэш, хэшировать весь блок, хэшировать только имя и хэш), но ничего не получалось. Есть какие-нибудь документы, описывающие лучше, что хэшировать?