2015-08-18 14 views
9

Возможно ли в Inno Setup подписать Uninstaller и Installer вместе с sha1 и sha256?Возможно ли установить установщик и деинсталлятор с двумя знаками с сертификатами sha1 и sha256?

Я знаю, что это possible to sign Исполняемый с обоими сертификатами с помощью командного инструмента, но вы хотите знать, можно ли это сделать с SignTool в Inno.

+2

Почему это не должно быть возможно? Вы можете передать командный файл как ваш signtool, который вызывает signtool.exe два раза. – Wosi

ответ

9

Автоответчик

Да, это возможно. Поскольку @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 вы можете вызвать signtool.bat $f где $f будет передана %1 для партии.

Для совместимости Windows XP для sha1: удалены /as, /tr заменены /t, удалены /td (как это требует /tr)

Я оставлю его здесь, как, возможно, кто-то может оказаться полезным.

+1

Хотя это работает, обратите внимание, что [с помощью Inno Setup 5.5.8] (http://jrsoftware.github.io/issrc/whatsnew.htm#5.5.8) вы можете иметь несколько ['SignTool' директив] (http: //www.jrsoftware.org/ishelp/topic_setup_signtool.htm), как показывает [ответ @TheArtTrooper] (http://stackoverflow.com/a/38753662/850848). –

+0

У меня были некоторые ошибки компиляции - нужно написать полный путь: c: \ ... \ signtool.bat $ f – ViH

3

Я пользуюсь InnoSetup 5.5.9. Я скомпилирую свой сценарий из командной строки с помощью ISCC. Моя установка сценарий включает в себя эти две строки в секции [Setup]:

SignTool=sha1 
SignTool=sha256 

МНКК команда выглядит следующим образом:

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 будет подписывать установки и удаления с обоих сертификаты.