Программно вычислить "SHA-256-Digest-Manifest-Main-Attributes" в файле jar?
Из-за использования оборудования HSM нам нужно подписать JAR-файл без использования Jarsigner. Все это довольно очевидно, за исключением дайджеста SHA256 основных атрибутов манифеста, атрибута "SHA-256-Digest-Manifest-Main-Attributes" в файле.SF.
Основные атрибуты определены в спецификации манифеста.
Тем не менее, я не могу найти правильный порядок и / или значения для хеширования. Я сканировал исходный код Jarsigner, но не могу найти класс, читающий атрибуты.
Кто-нибудь знает, как это работает?
[ОБНОВЛЕНИЕ: поставщик PKCS11 Sun]
Использование Java PKCS11 провайдер работает, но он дает пустое хранилище ключей
name = OpenSC
description = SunPKCS11 w/ OpenSC Smart card Framework
library = /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
slotListIndex = 0
Пример кода
final InputStream inputStream = Signer.class.getClassLoader().getResourceAsStream("opensc-java.cfg");
final SunPKCS11 pkcs11 = new SunPKCS11(inputStream);
final KeyStore ks = KeyStore.getInstance("PKCS11", pkcs11);
ks.load(null, "*****".toCharArray());