使用密码作为参数

时间:2016-10-17 12:24:27

标签: batch-file code-signing signtool

我可以(Authenticode)使用批处理文件对文件进行签名。一切正常。私钥存储在用户存储中。 由于我们使用sha1和sha256实现了双重签名,因此我们需要在此过程中输入两次密码,每次散列一次。我想重写批处理,因此我们只需输入一次密码,它将用作两个签名步骤的参数。我这样做是通过添加/p参数来实现的 - 但这只适用于存储在.pfx文件中的证书:

  

SignTool Error: The /p option requires the /f option.

我是否需要使用pfx文件,或者是否有办法在用户存储中使用私钥密码?

我认为保留商店里的钥匙会更安全(我实际上并不确定) - 我是否正确?如果不是,为什么我会把私钥保存在那里?

这是示例批处理文件 - / p选项不起作用

REM @echo off
set /p SoftwareName=Enter Software Name:
set /p SignPass=Enter Certificate Password:
echo %SoftwareName%

CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86

REM SHA1 signature
signtool sign /v /sha1 <certhash> /n "CompanyName" /t http://timestamp.verisign.com/scripts/timstamp.dll /p %SignPass% /d "%SoftwareName%" %1 
REM SHA256 signature added for security reasons
signtool sign /v /sha1 <certhash> /fd sha256 /n "CompanyName" /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /as /p %SignPass% /d "%SoftwareName%" %1 

0 个答案:

没有答案