2015-08-18 10 views
9

E 'possibile in Inno Setup firmare contemporaneamente Uninstaller e Installer con sha1 e sha256?È possibile installare e disinstallare con doppia firma i certificati sha1 e sha256?

So che è possible to sign l'eseguibile con entrambi i certificati tramite lo strumento comandi, ma voglio sapere se è possibile ottenere con SignTool in Inno.

+2

Perché non dovrebbe essere possibile? È possibile passare un file batch come il firmtool che chiama signtool.exe due volte. – Wosi

risposta

9

Autoanswer ...

Sì, questo è possibile. Come suggerito da @Wosi, è possibile scrivere un batch e quindi chiamarlo con il parametro $f aggiunto.

lotto di campioni (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 

Poi nel Inno Setup è possibile chiamare signtool.bat $f dove sarà passato al %1$f per il lotto.

Per la compatibilità di Windows XP per SHA1: rimosso /as, /tr sostituito con /t, rimosso /td (in quanto richiede /tr)

Lascio qui come forse qualcuno potrebbe trovare utile.

+1

Mentre funziona, si noti che [poiché Inno Setup 5.5.8] (http://jrsoftware.github.io/issrc/whatsnew.htm#5.5.8), si possono avere più [direttive 'SignTool'] (http: //www.jrsoftware.org/ishelp/topic_setup_signtool.htm), come mostra la [risposta di @TheArtTrooper] (http://stackoverflow.com/a/38753662/850848). –

+0

Ho avuto alcuni errori di compilazione - è necessario scrivere il percorso completo: c: \ ... \ signtool.bat $ f – ViH

3

Sto usando InnoSetup 5.5.9. Compilo il mio script dalla riga di comando usando ISCC. Il mio script di installazione include queste due righe nella sezione [Setup]:

SignTool=sha1 
SignTool=sha256 

Il comando ISCC si presenta come:

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 firmerà l'installazione e disinstallazione con entrambe le certs.

Problemi correlati