W jaki sposób można poprawnie podpisać kod ze znacznikiem czasu?
Mam dwa certyfikaty podpisywania kodu (jeden SHA-1, jeden SHA-256), które chciałbym zastosować do tego samego pliku. Próbowałem dołączyć certyfikat SHA-256, ale to się nie udaje:
:: Signs with the SHA-1 certificate
signtool sign /sha1 8f52fa9db30525dfabb35b08bd1966693a30eccf /t http://timestamp.verisign.com/scripts/timestamp.dll my_app_here.exe
:: Signs with the SHA-2 certificate
signtool sign /sha1 8b0026ecbe5bf245993b26e164f02e1313579e47 /as /t http://timestamp.verisign.com/scripts/timestamp.dll my_app_here.exe
Ten błąd kończy się błędem:
Done Adding Additional Store
SignTool Error: SignedCode::Sign returned error: 0x80070057
The parameter is incorrect.
SignTool Error: An error occurred while attempting to sign: my_app_here.exe
Jeśli usunę adres URL znacznika czasu z drugiego polecenia, podpisywanie zakończy się pomyślnie, ale podpis SHA-2 nie ma znacznika czasu. (Bez względu na to, czy umieściłem sygnaturę czasową przy pierwszym podpisie)
Intencją jest umożliwienie komuś zweryfikowania aplikacji za pomocą silniejszego certyfikatu, jeśli są one w systemie operacyjnym, który to obsługuje, ale aby uniknąć niepowodzenia sprawdzania poprawności w systemach operacyjnych, które nie obsługują silniejszych certyfikatów (Vista, XP).
Czy tego rodzaju rzeczy są nawet możliwe?