mirror of
https://github.com/bitwarden/mobile.git
synced 2024-12-01 13:04:02 +01:00
Fixes a mojibake bug in web authenticators in some multibyte locales
Fixes #3345 Make the implementation of the character convertion consistent with their consumers in the web app.
This commit is contained in:
parent
8a43bb4655
commit
4e2cec88e4
@ -515,14 +515,8 @@ namespace Bit.App.Utilities
|
|||||||
|
|
||||||
public static string EncodeDataParameter(object obj)
|
public static string EncodeDataParameter(object obj)
|
||||||
{
|
{
|
||||||
string EncodeMultibyte(Match match)
|
var json = JsonConvert.SerializeObject(obj);
|
||||||
{
|
return WebUtility.UrlEncode(Convert.ToBase64String(Encoding.UTF8.GetBytes(json)));
|
||||||
return Convert.ToChar(Convert.ToUInt32($"0x{match.Groups[1].Value}", 16)).ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
var escaped = Uri.EscapeDataString(JsonConvert.SerializeObject(obj));
|
|
||||||
var multiByteEscaped = Regex.Replace(escaped, "%([0-9A-F]{2})", EncodeMultibyte);
|
|
||||||
return WebUtility.UrlEncode(Convert.ToBase64String(Encoding.UTF8.GetBytes(multiByteEscaped)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task LogOutAsync(string userId, bool userInitiated = false)
|
public static async Task LogOutAsync(string userId, bool userInitiated = false)
|
||||||
|
Loading…
Reference in New Issue
Block a user