https://bugs.winehq.org/show_bug.cgi?id=55086
Bug ID: 55086 Summary: Dotnet 7: System.Net.WebSockets.WebSocketException (0x80004005) - SSL cannot be established Product: Wine Version: 8.10 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: reiichi001@gmail.com Distribution: ---
Created attachment 74637 --> https://bugs.winehq.org/attachment.cgi?id=74637 Error message from POC, which matches error from game modding project
As part of a game modding project, I maintain a plugin that makes use of Discord.Net to relay game messages to Discord.
In recent versions of Wine with .Net 7 for Windows installed (as required by the modding project, as it uses Windows .Net 7), Discord.Net will fail to connect. Previously, this was due to WebSocket mishandling, which looks to have been fixed in Wine 7.18.
When trying to connect to Discord's gateway in Wine 8.10 (current staging), an SSL exception occurs and the connection fails. Please see attached logs.
I've made a quick POC with minimal functionality that can be used for testing/code review. It will run fine on Windows and on native .Net 7 installations, but not in Wine. On discord, the bot will accept a single text command, xl!ping and will respond with "pong" in an embed if working. In Wine, it never connects as noted above.
https://github.com/reiichi001/DiscordNetWinePOC
https://bugs.winehq.org/show_bug.cgi?id=55086
Robert Baker reiichi001@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |Ubuntu CC| |reiichi001@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=55086
--- Comment #1 from Hans Leidekker hans@meelstraat.net --- Can you attach a WINEDEBUG=+secur32 trace?
https://bugs.winehq.org/show_bug.cgi?id=55086
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
--- Comment #2 from Fabian Maurer dark.shadow4@web.de --- Created attachment 74638 --> https://bugs.winehq.org/attachment.cgi?id=74638 Binaries of the program
I took the liberty of adding binaries of the program for easier testing. Needs runtime: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-7.0.7-w... (Self contained app is too big to upload) You need a discord bot with token from https://discord.com/developers/applications/ use like discordbottoken={TOKEN} wine DiscordNetWinePOC
https://bugs.winehq.org/show_bug.cgi?id=55086
--- Comment #3 from Fabian Maurer dark.shadow4@web.de --- Created attachment 74639 --> https://bugs.winehq.org/attachment.cgi?id=74639 Log with +secur32
Need to workaround bug 52396, for example by using wine-staging.
https://bugs.winehq.org/show_bug.cgi?id=55086
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Keywords| |download Status|UNCONFIRMED |NEW
--- Comment #4 from Fabian Maurer dark.shadow4@web.de --- Confirming
https://bugs.winehq.org/show_bug.cgi?id=55086
--- Comment #5 from Robert Baker reiichi001@gmail.com --- Created attachment 74641 --> https://bugs.winehq.org/attachment.cgi?id=74641 log with +secur32
Hello, here's a log from my local testing machine using the POC program. I'll be uploading another from the modding project shortly, which should look similar.
https://bugs.winehq.org/show_bug.cgi?id=55086
--- Comment #6 from Robert Baker reiichi001@gmail.com --- Created attachment 74643 --> https://bugs.winehq.org/attachment.cgi?id=74643 Log with +secur32 from game modding project
wine.log as generated by XIVLauncher/Dalamud using wine-staging environment
https://bugs.winehq.org/show_bug.cgi?id=55086
--- Comment #7 from Fabian Maurer dark.shadow4@web.de --- Not sure if it's relevant, but
0100:fixme:secur32:get_mac_algid unknown algorithm 200, cipher 23 0100:fixme:secur32:get_cipher_algid unknown algorithm 23
algorithm 200 = GNUTLS_MAC_AEAD cipher 23 = GNUTLS_CIPHER_CHACHA20_POLY1305
https://bugs.winehq.org/show_bug.cgi?id=55086
--- Comment #8 from Robert Baker reiichi001@gmail.com --- One additional note I can think of at this time is that we are running using dotnet 7.0.0's release, as we self-contain the runtimes we need. (Only runtime and windows.desktop, as modding project does not use asp.net)
If you want to assemble the same runtime, you can grab the component from here and merge them into a single folder: https://dotnetcli.azureedge.net/dotnet/Runtime/7.0.0/dotnet-runtime-7.0.0-wi... https://dotnetcli.azureedge.net/dotnet/WindowsDesktop/7.0.0/windowsdesktop-r...
This can be used if running the installer is causing issues. From there, you can call dotnet.exe to run the sample code.
Internally, the program is run somewhat like this: "$WINE_BIN/wine64" "$DOTNET_EXE" "$ADDON_PROGRAM"
It should be noted that replacing the runtime with version 7.0.7's components exhibits the same behavior. - Windows 11 will run the code fine - Ubuntu 22.04 using its dotnet7 package will run the code fine - Wine 8.10 calling dotnet 7.0.0 fails - Wine 8.10 calling dotnet 7.0.7 fails
https://bugs.winehq.org/show_bug.cgi?id=55086
--- Comment #9 from Hans Leidekker hans@meelstraat.net --- Created attachment 74650 --> https://bugs.winehq.org/attachment.cgi?id=74650 debug patch
Thanks. Can you get another WINEDEBUG=+secur32 trace with this debug patch applied?
https://bugs.winehq.org/show_bug.cgi?id=55086
--- Comment #10 from Robert Baker reiichi001@gmail.com --- Created attachment 74651 --> https://bugs.winehq.org/attachment.cgi?id=74651 log with +secur32 after patch applied
This is the first time I've compiled wine myself, so I cannot be certain I've done it correctly (even while referencing the build wiki page to make a WoW64 build).
I've uploaded a new log after applying the patch. If it does not look correct, please let me know and I can try again later.
https://bugs.winehq.org/show_bug.cgi?id=55086
--- Comment #11 from Hans Leidekker hans@meelstraat.net --- (In reply to Robert Baker from comment #10)
Created attachment 74651 [details] log with +secur32 after patch applied
This is the first time I've compiled wine myself, so I cannot be certain I've done it correctly (even while referencing the build wiki page to make a WoW64 build).
I've uploaded a new log after applying the patch. If it does not look correct, please let me know and I can try again later.
Thanks, it's passing an SCHANNEL_ALERT control token to ApplyControlToken() which isn't supported in Wine:
015c:trace:secur32:schan_ApplyControlToken 00000000027FE778 00000000027FE798 015c:trace:secur32:dump_buffer_desc Buffer desc 00000000027FE798: 015c:trace:secur32:dump_buffer_desc buffer 0: cbBuffer 12, BufferType 0x2 pvBuffer 00007F9CB84C8DB8 015c:fixme:secur32:schan_ApplyControlToken token 2
https://bugs.winehq.org/show_bug.cgi?id=55086
Hans Leidekker hans@meelstraat.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #74650|0 |1 is obsolete| |
--- Comment #12 from Hans Leidekker hans@meelstraat.net --- Created attachment 74653 --> https://bugs.winehq.org/attachment.cgi?id=74653 patch
Can you try again with this patch applied instead of the previous one?
https://bugs.winehq.org/show_bug.cgi?id=55086
--- Comment #13 from Fabian Maurer dark.shadow4@web.de --- Created attachment 74658 --> https://bugs.winehq.org/attachment.cgi?id=74658 Log with new patch and +secur32
(In reply to Hans Leidekker from comment #12)
Created attachment 74653 [details] patch
Can you try again with this patch applied instead of the previous one?
See attached log
https://bugs.winehq.org/show_bug.cgi?id=55086
--- Comment #14 from Hans Leidekker hans@meelstraat.net --- (In reply to Fabian Maurer from comment #13)
Created attachment 74658 [details] Log with new patch and +secur32
(In reply to Hans Leidekker from comment #12)
Created attachment 74653 [details] patch
Can you try again with this patch applied instead of the previous one?
See attached log
The error has changed. Now it's failure to verify the server certificate. Can you another trace with this patch and +secur32,+crypt,+cryptnet,+chain flags?
https://bugs.winehq.org/show_bug.cgi?id=55086
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #74637|0 |1 is obsolete| | Attachment #74639|0 |1 is obsolete| | Attachment #74641|0 |1 is obsolete| | Attachment #74643|0 |1 is obsolete| | Attachment #74651|0 |1 is obsolete| | Attachment #74658|0 |1 is obsolete| |
--- Comment #15 from Fabian Maurer dark.shadow4@web.de --- Created attachment 74669 --> https://bugs.winehq.org/attachment.cgi?id=74669 Log with the new patch and +secur32,+crypt,+cryptnet,+chain
Sure, see attached file.
https://bugs.winehq.org/show_bug.cgi?id=55086
--- Comment #16 from Robert Baker reiichi001@gmail.com --- Created attachment 75032 --> https://bugs.winehq.org/attachment.cgi?id=75032 updated wine error log with +secur32,+crypt,+cryptnet,+chainl
Hello!
I wanted to update that this issue is still present on wine-staging-8.13 as well. I've attached an updated log with +secur32,+crypt,+cryptnet,+chainl enabled.
I can confirm that it still works using native dotnet packages (Ubuntu 22.04) and on Windows.
https://bugs.winehq.org/show_bug.cgi?id=55086
Robert Baker reiichi001@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|8.10 |8.13
https://bugs.winehq.org/show_bug.cgi?id=55086
Sean Cross winezilla@xobs.io changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |winezilla@xobs.io
--- Comment #17 from Sean Cross winezilla@xobs.io --- I'm trying to get ZofZPCB (3D PCBA Viewer.exe) from https://www.zofzpcb.com/Gerber-Viewer-Download to work, and I'm running into the exact same issue.
I'm on Ubuntu 22.04.1 using the official winehq "Jammy" builds, and whenever it tries to compute the serial number it throws the same errors:
0124:fixme:secur32:get_cipher_algid unknown algorithm 23 0124:fixme:secur32:get_mac_algid unknown algorithm 200, cipher 23
Earlier on in the log it does seem to indicate it knows what it's looking for, but somehow it just fails:
0124:trace:secur32:gnutls_log <4> HSK[0x7f1d6800b2a0]: Cipher Suite: GNUTLS_ECDHE_ECDSA_CHACHA20_POLY1305
https://bugs.winehq.org/show_bug.cgi?id=55086
--- Comment #18 from Sean Cross winezilla@xobs.io --- Created attachment 75419 --> https://bugs.winehq.org/attachment.cgi?id=75419 Failure of zofzpcb to compute the license key
This was run on Ubuntu 22.04 using the official releases from WineHQ.