Now I am not sure in that failure of verification was caused by SHA-1 deprecation. Let me speculate: it looks like SHA-1 deprecation was introduced by some update and Windows 7 won't invalidate SHA-1 signatures just because of timestamp more recent than 31.12.2015. I will retry installing updates without KB3033929 sometime later.
In my specific case the failure seems to be caused by the wsusscn2.cab integrity itself - both signatures (SHA256 revealed after KB3033929) appear invalid, yet both signatures of some downloaded updates which I checked are OK. I redownloaded wsusscn2 (relaunched the collection tool) it and updates install just fine now.
BUT: judging by the logs I can say that the file which I used before SHOULD work.
download.log:
08.02.2016 8:47:46,53 - Info: Verified digital file signatures of Windows Update Agent installation and catalog files
hashes-wsus.txt (calculated at the download time):
%%%% HASHDEEP-1.0
%%%% size,md5,sha1,sha256,filename
## Invoked from: C:\Users\LIL\Desktop\4save\updates\wsusoffline\client\md
## C:\Users\LIL\Desktop\4save\updates\wsusoffline\client\md> ..\bin\hashdeep64.exe -c md5,sha1,sha256 -l -r ..\wsus
##
7749976,b46c93117c07626bebc7af83a7562034,fc0ee3a9af88ef2237aac450bc94b2fc08af79f5,d500a5b5945fafc6a52fb54b7169b62c6c1137e1694184ff2eff790aa1394ece,..\wsus\WindowsUpdateAgent30-x64.exe
6776168,f723820b8656e82958fa7ed854a7eefe,50186ec913a4896a92d72e5e5384693bf3a71182,b2512e0c2786f72ed41559580261c782a13fb5ea7fe23878873f83ecaeeec25f,..\wsus\WindowsUpdateAgent30-x86.exe
154503008,8dbcf49b8743df29d854870c08ab9ebe,d4d2aff053328b3fff8ead3e5c2e2af31ba96698,a8fd301e9d558e4cc93ffec3af78aec128b6625be2370f5940f69187258edca6,..\wsus\wsusscn2.cab
hashdeep64 output (manual recalculation):
h:\upds\wsusoffline\client\bin>hashdeep64.exe -c md5,sha1,sha256 %temp%\wsusscn2.cab
%%%% HASHDEEP-1.0
%%%% size,md5,sha1,sha256,filename
## Invoked from: h:\upds\wsusoffline\client\bin
## h:\upds\wsusoffline\client\bin> hashdeep64.exe -c md5,sha1,sha256 C:\Users\ani\AppData\Local\Temp\wsusscn2.cab
##
154503008,8dbcf49b8743df29d854870c08ab9ebe,d4d2aff053328b3fff8ead3e5c2e2af31ba96698,a8fd301e9d558e4cc93ffec3af78aec128b6625be2370f5940f69187258edca6,C:\Users\ani\AppData\Local\Temp\wsusscn2.cab
So: WSUSOU checked the digital signature and it did verify (according to the logs).
Yet, the sigcheck output:
c:\users\lil\appdata\local\temp\w\wsusscn2.cab:
Verified: The digital signature of the object did not verify.
File date: 8:51 08.02.2016
Publisher: n/a
Company: n/a
Description: n/a
Product: n/a
Prod version: n/a
File version: n/a
MachineType: n/a
Or, the CSV output:
"c:\users\lil\appdata\local\temp\w\wsusscn2.cab","The digital signature of the object did not verify.","8:51 08.02.2016","n/a","n/a","n/a","n/a","n/a","n/a","n/a"
NOW, the quote from DownloadUpdates.cmd:
- Code: Select all
...............
if "%VERIFY_DL%"=="1" (
if not exist ..\bin\sigcheck.exe goto NoSigCheck
echo Verifying digital file signatures of Windows Update Agent installation and catalog files...
..\bin\sigcheck.exe %SIGCHK_COPT% -s ..\client\wsus >"%TEMP%\sigcheck-wsus.txt"
for /F "tokens=1 delims=," %%i in ('%SystemRoot%\System32\findstr.exe /I "Unsigned" "%TEMP%\sigcheck-wsus.txt"') do (
del %%i
echo Warning: Deleted unsigned file %%i.
echo %DATE% %TIME% - Warning: Deleted unsigned file %%i>>%DOWNLOAD_LOGFILE%
echo File signature verification failure >"%TEMP%\sigerror-wsus.txt"
)
if exist "%TEMP%\sigcheck-wsus.txt" del "%TEMP%\sigcheck-wsus.txt"
if exist "%TEMP%\sigerror-wsus.txt" (
if exist ..\client\md\hashes-wsus.txt del ..\client\md\hashes-wsus.txt
del "%TEMP%\sigerror-wsus.txt"
goto SignatureError
)
echo %DATE% %TIME% - Info: Verified digital file signatures of Windows Update Agent installation and catalog files>>%DOWNLOAD_LOGFILE%
...........
WSUSOU does not check the verification of the cabs, it just checks whether they are signed or not. It would be nice if WSUSOU checked not just the presence of signature but the "Verified" status.