Cockatrice/servatrice/src
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
..
smtp [CI] Remove Qt5 (#7071) 2026-08-08 22:04:50 +02:00
email_parser.cpp Strip dashes in Yahoo addresses (#6284) 2025-11-07 13:35:44 -05:00
email_parser.h Fix #4903: Parse Email Addresses whenever used (#4932) 2023-12-09 00:52:47 -05:00
isl_interface.cpp style: Add braces to all control flow statements (#6887) 2026-05-16 19:19:53 +02:00
isl_interface.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
main.cpp [Security] Use a CSPRNG for salts, tokens, and RNG seeding (#7192) 2026-09-04 13:49:18 +02:00
main.h Refactor servatrice email send 2015-07-25 18:48:34 +02:00
servatrice.cpp [Security] Add challenge-response auth with scrypt verifiers and stop storing plaintext passwords 2026-09-06 16:16:22 +02:00
servatrice.h [Security] Add challenge-response auth with scrypt verifiers and stop storing plaintext passwords 2026-09-06 16:16:22 +02:00
servatrice_connection_pool.cpp clangify everything with the new header sorting (#3908) 2020-03-18 17:36:02 -04:00
servatrice_connection_pool.h Support Qt6, Min Qt5.8, Fix Win32, Fix Servatrice 2022-05-06 17:31:08 -04:00
servatrice_database_interface.cpp [Security] Add challenge-response auth with scrypt verifiers and stop storing plaintext passwords 2026-09-06 16:16:22 +02:00
servatrice_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_logger.cpp style: Add braces to all control flow statements (#6887) 2026-05-16 19:19:53 +02:00
server_logger.h Support Qt6, Min Qt5.8, Fix Win32, Fix Servatrice 2022-05-06 17:31:08 -04:00
serversocketinterface.cpp [Security] Add challenge-response auth with scrypt verifiers and stop storing plaintext passwords 2026-09-06 16:16:22 +02:00
serversocketinterface.h [Security] Add challenge-response auth with scrypt verifiers and stop storing plaintext passwords 2026-09-06 16:16:22 +02:00
settingscache.cpp style: Add braces to all control flow statements (#6887) 2026-05-16 19:19:53 +02:00
settingscache.h remove dependency on deprecated qt5 libraries for qt6 (#4692) 2022-10-31 23:24:11 +01:00
signalhandler.cpp style: Add braces to all control flow statements (#6887) 2026-05-16 19:19:53 +02:00
signalhandler.h update format.sh (#6240) 2025-11-07 15:00:39 +01:00
smtpclient.cpp style: Add braces to all control flow statements (#6887) 2026-05-16 19:19:53 +02:00
smtpclient.h Clang-format (#3028) 2018-01-27 10:41:32 +01:00