2015-08-18 11 views
9

Czy w Inno Setup można podpisać dezinstalatora i instalatora z sha1 i sha256 w tym samym czasie?Czy możliwe jest podwójne podpisywanie instalatora i deinstalatora za pomocą certyfikatów sha1 i sha256?

Wiem, że jest to possible to sign plik wykonywalny z oboma certyfikatami za pomocą narzędzia poleceń, ale chcę wiedzieć, czy jest to możliwe z SignTool w Inno.

+2

Dlaczego nie powinno to być możliwe? Możesz przekazać plik wsadowy jako signtool, który wywołuje signtool.exe dwa razy. – Wosi

Odpowiedz

9

Automatyczne przetwarzanie ...

Tak, jest to możliwe. As @Wosi zasugerował, że możesz napisać partię, a następnie wywołać ją z dodanym parametrem $f.

partii próbek (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 

Następnie w Inno Setup można wywołać signtool.bat $f gdzie $f zostanie przekazany do %1 dla partii.

Dla kompatybilności z systemem Windows XP do SHA1: usunięto /as, /tr zastąpione /t, usunięto /td (gdyż wymaga /tr)

będę go tu zostawić jak może ktoś może okazać się pomocne.

+1

Podczas gdy to działa, zauważ, że [od Inno Setup 5.5.8] (http://jrsoftware.github.io/issrc/whatsnew.htm#5.5.8), możesz mieć wiele dyrektyw ['SignTool'] (http: //www.jrsoftware.org/ishelp/topic_setup_signtool.htm), jak pokazuje [odpowiedź @TheArtTrooper] (http://stackoverflow.com/a/38753662/850848). –

+0

Miałem pewne błędy kompilacji - trzeba napisać pełną ścieżkę: c: \ ... \ signtool.bat $ f – ViH

3

Używam InnoSetup 5.5.9. Skompiluję skrypt z wiersza poleceń za pomocą ISCC. Mój skrypt instalacyjny zawiera te dwa wiersze w sekcji [Setup]:

SignTool=sha1 
SignTool=sha256 

Komenda ISCC wygląda następująco:

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 podpisze zainstalować i odinstalować z obu CERT.

Powiązane problemy