https://bugs.winehq.org/show_bug.cgi?id=30187
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Status|CLOSED |REOPENED URL| |http://www.tmcs.co.uk/downl | |oad/cisco-ip-communicator-s | |etup-version-7-0-4/ CC| |focht@gmx.net Resolution|ABANDONED |--- Summary|Cisco IP Communicator |Cisco IP Communicator |7.0.4.0 installation fails |7.0.4.0 installation fails | |(Cisco 'certmgr.exe' tool | |fails to install | |certificate to the | |system-wide trusted | |certificate store) Ever confirmed|0 |1
--- Comment #16 from Anastasius Focht focht@gmx.net --- Hello folks,
I was looking at bug 31306 which was suffering from different issue/broken user environment (now marked 'abandoned') and found this issue still being present.
Reopening since I could reproduce this and a download exists.
Although the bug has already been analysed with some trace snippets, here is a slightly longer version (for search/indexers):
--- snip --- $ WINEDEBUG=+tid,+seh,+relay,+msi wine msiexec -i CiscoIPCommunicatorSetup.msi
log.txt 2>&1
... 002e:trace:msi:MSI_EvaluateConditionW 1 <- L"NOT REMOVE~="ALL" AND Not VersionNT64" 002e:trace:msi:ACTION_PerformUIAction Performing action (L"AddCertsRoot.7A023C9A_603E_41F5_8E96_FA2CB0894D3E") ... 002e:trace:msi:ACTION_CustomAction Handling custom action L"AddCertsRoot.7A023C9A_603E_41F5_8E96_FA2CB0894D3E" (c12 L"certmgr.exe.7A023C9A_603E_41F5_8E96_FA2CB0894D3E" L"-add -all "[CDP.7A023C9A_603E_41F5_8E96_FA2CB0894D3E]CDPcredentials.spc" -s -r localMachine root") ... 002e:trace:msi:HANDLE_CustomType18 exe L"C:\Program Files\Cisco Systems\Cisco IP Communicator\CDP\certmgr.exe" arg L"-add -all "C:\Program Files\Cisco Systems\Cisco IP Communicator\CDP\CDPcredentials.spc" -s -r localMachine root" ... 002e:Call KERNEL32.SearchPathW(00000000,003ab2a8 L"C:\Program Files\Cisco Systems\Cisco IP Communicator\CDP\certmgr.exe",7ed15708 L".exe",00000104,011408f0,00000000) ret=7eca0591 002e:Ret KERNEL32.SearchPathW() retval=00000044 ret=7eca0591 ... 002e:Call KERNEL32.CreateProcessW(011408f0 L"C:\Program Files\Cisco Systems\Cisco IP Communicator\CDP\certmgr.exe",01140e28 L""C:\Program Files\Cisco Systems\Cisco IP Communicator\CDP\certmgr.exe" -add -all "C:\Program Files\Cisco Systems\Cisco IP Communicator\CDP\CDPcredentials.spc" -s -r localMachine root",00000000,00000000,00000000,00000000,00000000,7ed14c48 L"C:\",0033f6cc,0033f6bc) ret=7eca07ed .... 0034:Call KERNEL32.__wine_kernel_init() ret=7bc6b5d4 002e:Ret KERNEL32.CreateProcessW() retval=00000001 ret=7eca07ed ... 0034:Starting process L"C:\Program Files\Cisco Systems\Cisco IP Communicator\CDP\certmgr.exe" (entryproc=0x1008320) ... 0034:Call KERNEL32.CreateFileW(001155fa L"C:\Program Files\Cisco Systems\Cisco IP Communicator\CDP\CDPcredentials.spc",80000000,00000001,00000000,00000004,00000080,00000000) ret=7ebb050b 0034:Ret KERNEL32.CreateFileW() retval=00000058 ret=7ebb050b .... 0034:Ret crypt32.CertAddCertificateContextToStore() retval=00000001 ret=01003aee 0034:Call crypt32.CertEnumCertificatesInStore(00155a68,00152d94) ret=01003adb 0034:Ret crypt32.CertEnumCertificatesInStore() retval=00153c9c ret=01003adb 0034:Call crypt32.CertAddCertificateContextToStore(00155ab8,00153c9c,00000003,00000000) ret=01003aee ... 0034:Ret crypt32.CertAddCertificateContextToStore() retval=00000001 ret=01003aee 0034:Call crypt32.CertEnumCertificatesInStore(00155a68,00153c9c) ret=01003adb 0034:Ret crypt32.CertEnumCertificatesInStore() retval=00000000 ret=01003adb 0034:Call crypt32.CertGetCRLFromStore(00155a68,00000000,00000000,0033fd24) ret=01003b41 0034:Ret crypt32.CertGetCRLFromStore() retval=00000000 ret=01003b41 0034:Call crypt32.CertEnumCTLsInStore(00155a68,00000000) ret=01003b0a 0034:Ret crypt32.CertEnumCTLsInStore() retval=00000000 ret=01003b0a 0034:Call crypt32.CertOpenStore(0000000a,00010001,00000000,00020000,001156b8) ret=0100372c 0034:Call KERNEL32.lstrcmpiW(001156b8 L"root",7ebe2c16 L"Root") ret=7ebcf485 0034:Ret KERNEL32.lstrcmpiW() retval=00000000 ret=7ebcf485 ... 0034:Ret crypt32.CertOpenStore() retval=0020de30 ret=0100372c 0034:Call crypt32.CertEnumCertificatesInStore(00155ab8,00000000) ret=01003adb 0034:Ret crypt32.CertEnumCertificatesInStore() retval=001560fc ret=01003adb 0034:Call crypt32.CertAddCertificateContextToStore(0020de30,001560fc,00000003,00000000) ret=01003aee ... 0034:Ret crypt32.CertAddCertificateContextToStore() retval=00000000 ret=01003aee 0034:Call crypt32.CertFreeCertificateContext(001560fc) ret=01003b78 0034:Ret crypt32.CertFreeCertificateContext() retval=00000001 ret=01003b78 0034:Call user32.LoadStringW(01000000,000017c7,0100a6b8,00000200) ret=010086bf 0034:Ret user32.LoadStringW() retval=0000002f ret=010086bf 0034:Call msvcrt.vwprintf(0100a6b8 L"Error: Failed to save to the destination store\n",0033fd28) ret=01008800 ... 0034:Ret msvcrt.vwprintf() retval=0000002f ret=01008800 0034:Call crypt32.CertCloseStore(0020de30,00000000) ret=0100376d ... 0034:Ret crypt32.CertCloseStore() retval=00000001 ret=01001a03 0034:Call msvcrt.exit(ffffffff) ret=0100842c ... 0034:Call KERNEL32.ExitProcess(ffffffff) ret=7ecfaeca ... 0034:Call KERNEL32.WriteFile(00000010,00342360,00000070,0033f88c,00000000) ret=7ed03155 Error: Failed to save to the destination store Error: Failed to save to the destination store CertMgr Failed 0034:Ret KERNEL32.WriteFile() retval=00000001 ret=7ed03155 ... 002e:err:msi:ITERATE_Actions Execution halted, action L"AddCertsRoot.7A023C9A_603E_41F5_8E96_FA2CB0894D3E" returned 1627 ... 002e:trace:msi:MSI_ProcessMessage (nil) (nil) (nil) 0 10 L"Action ended 14:41:38: ExecuteAction. Return value 1627." ... 002e:warn:msi:MSI_InstallPackage installation failed, running rollback script 002e:trace:msi:execute_script executing script 2 ... --- snip ---
To support this feature, Wine would need to maintain certificate stores in registry just as Windows does.
MSDN: https://msdn.microsoft.com/en-us/library/windows/desktop/aa388136%28v=vs.85%...
The system certificates are stored as BLOBs in the registry.
'HKLM\Software\Microsoft\SystemCertificates' 'HKCU\Software\Microsoft\SystemCertificates'
$ du -sh CiscoIPCommunicatorSetup.msi 32M CiscoIPCommunicatorSetup.msi
$ sha1sum CiscoIPCommunicatorSetup.msi 0d08b1c6f18953e3b1fe69f2e3f26cb7450bb033 CiscoIPCommunicatorSetup.msi
$ wine --version wine-1.7.49-41-g36a39ce
Regards