diff --git a/LarpixServer/Account/Requests.cs b/LarpixServer/Account/Requests.cs index de9be00..1d17b6e 100644 --- a/LarpixServer/Account/Requests.cs +++ b/LarpixServer/Account/Requests.cs @@ -488,8 +488,20 @@ public static async Task Auth(HttpContext context, Func next, IQueryCollec body, AppJsonSerializerContext.Default.Universal2String ); - //string publicKey = serializedBody.string1; - //string privateEncryptedKey = serializedBody.string2; + string existingRaw = await Utils.GetUserKeys(id); + if (!string.IsNullOrWhiteSpace(existingRaw)) + { + Universal2String existing = JsonSerializer.Deserialize( + existingRaw, + AppJsonSerializerContext.Default.Universal2String + ); + string existingPub = existing.string2?.Trim() ?? ""; + string newPub = serializedBody.string2?.Trim() ?? ""; + if (!string.IsNullOrEmpty(existingPub) && !string.IsNullOrEmpty(newPub) && existingPub != newPub) + { + return "error:keys.public.mismatch"; + } + } await Utils.UpdateUserKeys(id, body); return "success:keys.updated"; }