Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle ALG_ID_ECDH_P384 in BCryptGenerateKeyPair to make Anno 1800 Multiplayer work #172

Open
chrisbmr opened this issue Dec 31, 2022 · 8 comments

Comments

@chrisbmr
Copy link

case ALG_ID_ECDSA_P384:

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.

@MaxXor
Copy link

MaxXor commented Jan 1, 2023

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?

@Subwaytime
Copy link

@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 🤔

@chrisbmr
Copy link
Author

chrisbmr commented Jan 1, 2023

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.

@MaxXor
Copy link

MaxXor commented Jan 1, 2023

It handles ECD_SA__P384 and ECDH_P_256_ but not ECDH_P384.

Thanks, I'm blind.

@chrisbmr
Copy link
Author

chrisbmr commented Jan 1, 2023

@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...

@MaxXor
Copy link

MaxXor commented Jan 1, 2023

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.

@Knogle
Copy link

Knogle commented Jan 2, 2023

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.

@svdragster
Copy link

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants