Я использую подпись SHA1 уже много лет, но с 2016 года Windows заставляет разработчиков использовать SHA256.
Принудительное использование Windows Authenticode Code Signing и Timestamping
При использовании Windows 7 SDK signtool функции для подписи SHA-256 являются "неизвестными командами", поэтому этот signtool устарел как signtool и больше не должен использоваться.
Чтобы подписать с SHA256, я скачал Windows 8.1 SDK, чтобы получить signtool.exe, который получил новые функции (/fd и другие). Файл BAT и signtool работают в Windows 8 и 10, так что я знаю, что это работает, но происходит сбой в Windows 7, когда он пытается установить временную метку файла.
Я использую файл bat для подписи файлов, который выглядит следующим образом (я отредактировал файл BAT, чтобы он не отображал переменные, полные пути, название компании и пароли):
Path\signtool.exe sign /f "Path\Certificate.p12" /fd sha256 /p *password* /du "URL" /tr "timestampServer?td=sha256" /td sha256 /d "Product name" "Filename"
Думаю, у меня нет нужного SDK для поддержки некоторых функций, но я не могу найти в интернете никакой информации о том, как настроить это в Windows 7. Я пытался установить MS Visual C++ 2015 Redistributable (x64), но все еще не решил проблему.