Возможна ли двойная подпись установщика и деинсталлятора с сертификатами sha1 и sha256?
Можно ли в Inno Setup одновременно подписывать деинсталлятор и установщик с помощью sha1 и sha256?
Я знаю, что можно подписать исполняемый файл обоими сертификатами с помощью командного инструмента, но хочу знать, возможно ли это сделать с помощью SignTool
в Инно.
2 ответа
Автоматический ответ...
Да, это возможно. Как предложил @Wosi, вы можете написать пакет и затем вызвать его $f
Параметр добавлен.
Образец партии (signtool.bat):
@echo off
"PATH_TO_SIGNTOOL\signtool.exe" sign /v /du "COMPANY_NAME" /fd sha1 /t "http://timestamp.verisign.com/scripts/timstamp.dll" /f "sha1_cert.pfx" /p PASSWORD %1
set SIGN_RESULT_1=%ERRORLEVEL%
"PATH_TO_SIGNTOOL\signtool.exe" sign /as /v /du "COMPANY_NAME" /fd sha256 /tr "http://timestamp.comodoca.com/rfc3161" /td sha256 /f "sha256_cert.pfx" /p PASSWORD %1
set SIGN_RESULT_2=%ERRORLEVEL%
set /a RESULT=%SIGN_RESULT_1%+%SIGN_RESULT_2%
if %RESULT% NEQ 0 (
echo Warning! Signing failed with %SIGN_RESULT_1% for sh1 and %SIGN_RESULT_2% for sha256
pause
exit /B %RESULT%
)
echo Signing succeeded
exit /B 0
Тогда в Inno Setup вы можете позвонить signtool.bat $f
где $f
будет передан %1
для партии.
Для Windows XP совместимость для sha1: удалено /as
, /tr
заменено на /t
удалено /td
(как это требуется /tr
)
Я оставлю это здесь, так как, возможно, кто-то может найти это полезным.
Я использую InnoSetup 5.5.9. Я компилирую свой скрипт из командной строки, используя ISCC. Мой скрипт установки включает в себя эти две строки в разделе [Setup]:
SignTool=sha1
SignTool=sha256
Команда ISCC выглядит так:
ISCC "/ssha1=signtool.exe /f <cert.pfx> /p <certpwd> /fd SHA1 /t <timestamp.url> /v $f" "/ssha256=signtool.exe /f <cert.pfx> /p <certpwd> /fd SHA256 /tr <timestamp.url> /td SHA256 /as /v $f" setup.iss
Innosetup подпишет установку и удаление с обоими сертификатами.