Cockatrice/libcockatrice_network/libcockatrice/network/server/remote
Lukas Brübach 709233d977
[Security] Add challenge-response auth with scrypt verifiers and stop storing plaintext passwords
Challenge-response authentication: the client derives a scrypt verifier
(RFC 7914, EVP_PBE_scrypt, N=32768, r=8, p=1) and authenticates with
HMAC-SHA256(key, nonce), so neither the password nor its hash is
transmitted. The stored format becomes
"$scrypt$<n>$<r>$<p>$<salt>$<verifier>" and Response_PasswordSalt
now carries the cost parameters. Strict servers only accept scrypt
verifiers; legacy accounts are migrated after a successful login.

Fix #344 for challenge-response servers: a saved profile stores the
derived verifier under the password key instead of the plaintext password.
The connect dialog loads it without revealing it, autoconnect passes it
through, the change-password dialog no longer prefills the old password
field with it, and the client only persists the verifier when
"Save password" is checked.

Took 3 minutes

Took 1 minute

Took 10 seconds

Took 7 minutes
2026-09-06 16:16:22 +02:00
..
game [Server] Add abstract match game factory for future tournament modes (#7132) 2026-08-24 07:54:47 +02:00
CMakeLists.txt [Server] Add abstract match game factory for future tournament modes (#7132) 2026-08-24 07:54:47 +02:00
room_message_type.h Turn Card, Deck_List, Protocol, RNG, Network (Client, Server), Settings and Utility into libraries and remove cockatrice_common. (#6212) 2025-10-09 07:36:12 +02:00
server.cpp [Room][UserList] Introduce style delegate (#6981) 2026-06-26 20:52:24 -04:00
server.h [Security] Add challenge-response auth with scrypt verifiers and stop storing plaintext passwords 2026-09-06 16:16:22 +02:00
server_abstractuserinterface.cpp [Server/Client/Protocol] Reporting users + moderation queue functionality (#7091) 2026-08-21 15:00:13 +02:00
server_abstractuserinterface.h [Server/Client/Protocol] Reporting users + moderation queue functionality (#7091) 2026-08-21 15:00:13 +02:00
server_database_interface.cpp Turn Card, Deck_List, Protocol, RNG, Network (Client, Server), Settings and Utility into libraries and remove cockatrice_common. (#6212) 2025-10-09 07:36:12 +02:00
server_database_interface.h [Security] Add challenge-response auth with scrypt verifiers and stop storing plaintext passwords 2026-09-06 16:16:22 +02:00
server_player_reference.h fix arch compiling (#6895) 2026-05-16 19:39:34 +02:00
server_protocolhandler.cpp [Security] Add challenge-response auth with scrypt verifiers and stop storing plaintext passwords 2026-09-06 16:16:22 +02:00
server_protocolhandler.h [Security] Add challenge-response auth with scrypt verifiers and stop storing plaintext passwords 2026-09-06 16:16:22 +02:00
server_remoteuserinterface.cpp Turn Card, Deck_List, Protocol, RNG, Network (Client, Server), Settings and Utility into libraries and remove cockatrice_common. (#6212) 2025-10-09 07:36:12 +02:00
server_remoteuserinterface.h Turn Card, Deck_List, Protocol, RNG, Network (Client, Server), Settings and Utility into libraries and remove cockatrice_common. (#6212) 2025-10-09 07:36:12 +02:00
server_response_containers.cpp style: Add braces to all control flow statements (#6887) 2026-05-16 19:19:53 +02:00
server_response_containers.h Mark more functions as [[nodiscard]] (#6320) 2025-11-16 01:39:24 +01:00
server_room.cpp Split trice_limits.h into dedicated headers (#7025) 2026-06-29 14:37:52 -07:00
server_room.h [Cleanup] Unused #includes (#6367) 2025-11-29 18:53:11 +01:00
serverinfo_user_container.cpp style: Add braces to all control flow statements (#6887) 2026-05-16 19:19:53 +02:00
serverinfo_user_container.h Mark more functions as [[nodiscard]] (#6320) 2025-11-16 01:39:24 +01:00
user_level.h Turn Card, Deck_List, Protocol, RNG, Network (Client, Server), Settings and Utility into libraries and remove cockatrice_common. (#6212) 2025-10-09 07:36:12 +02:00