wine
wine copied to clipboard
Handle ALG_ID_ECDH_P384 in BCryptGenerateKeyPair to make Anno 1800 Multiplayer work
https://github.com/ValveSoftware/wine/blob/492470267af486cb24ad0deaa028168eb94618a4/dlls/bcrypt/bcrypt_main.c#L1713
Anno 1800 Multiplayer uses ALG_ID_ECDH_P384 in BCryptGenerateKeyPair when accepting an invite to a Multiplayer Game via Ubisoft Connect and fails with connection error LR05 if it is not handled.
Handling this case in the function seems to make it work (can start and see other player's actions in the game), although I'm not sure if anything else is required here or if the case was just forgotten.
I'm very interested in a solution to make Anno 1800 multiplayer work. However I'm not sure if I can follow you. Your linked commit with the ECDH_P384 case handled seems to be included since Proton 7.0. However using Proton 7.0-5 doesn't seem to work with Anno 1800 multiplayer. What exactly am I missing here?
@chrisbmr Would be great if you could open a PR with your solution to make it work and how to replicate it. It probably needs more testing, but i would love it actually test this, before it ends up in a proton version :thinking:
I'm very interested in a solution to make Anno 1800 multiplayer work. However I'm not sure if I can follow you. Your linked commit with the ECDH_P384 case handled seems to be included since Proton 7.0. However using Proton 7.0-5 doesn't seem to work with Anno 1800 multiplayer. What exactly am I missing here?
It handles ECDSA_P384 and ECDH_P256 but not ECDH_P384.
It handles ECD_SA__P384 and ECDH_P_256_ but not ECDH_P384.
Thanks, I'm blind.
@chrisbmr Would be great if you could open a PR with your solution to make it work and how to replicate it. It probably needs more testing, but i would love it actually test this, before it ends up in a proton version thinking
Well. Someone who actually knows the bcrypt code needs to check this and see whether it is safe and whether other places in the code need to be modified, too...
My layman's assumption would be: the case for ALG_ID_ECDH_P256 is handled in a similar way, so it would be enough to add ALG_ID_ECDH_P384.
Can you go for a PR, in order to reproduce your solution until it's in? Unfortunately I wasn't able to get it working this way. At least when searching for a random session.
Anno 2070 has a somewhat similar problem. The connection to a lobby is working fine, however when starting the game all players will be disconnected because of a connection error. Could this also solve the issue in Anno 2070?