From 4ced11d56755717dfa00735125241472cfba5d76 Mon Sep 17 00:00:00 2001 From: KingRainbow44 Date: Sat, 6 Jul 2024 22:33:46 -0400 Subject: [PATCH] fix(auth): Skip further decryption if encrypted password fails to decrypt this should only occur if the wrong RSA key is used on the client, otherwise the patch probably forgot to set `is_crypto` to false --- .../java/emu/grasscutter/auth/DefaultAuthenticators.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/emu/grasscutter/auth/DefaultAuthenticators.java b/src/main/java/emu/grasscutter/auth/DefaultAuthenticators.java index 1892d4504..0fb6acfc6 100644 --- a/src/main/java/emu/grasscutter/auth/DefaultAuthenticators.java +++ b/src/main/java/emu/grasscutter/auth/DefaultAuthenticators.java @@ -112,7 +112,13 @@ public final class DefaultAuthenticators { cipher.doFinal(Utils.base64Decode(request.getPasswordRequest().password)), StandardCharsets.UTF_8); } catch (Exception ignored) { - decryptedPassword = request.getPasswordRequest().password; + if (requestData.is_crypto) { + response.retcode = -201; + response.message = translate("messages.dispatch.account.password_crypto_error"); + return response; + } else { + decryptedPassword = request.getPasswordRequest().password; + } } if (decryptedPassword == null) {