about summary refs log tree commit diff
path: root/LibMatrix.Federation/Utilities/UnpaddedBase64.cs
diff options
context:
space:
mode:
Diffstat (limited to 'LibMatrix.Federation/Utilities/UnpaddedBase64.cs')
-rw-r--r--LibMatrix.Federation/Utilities/UnpaddedBase64.cs17
1 files changed, 17 insertions, 0 deletions
diff --git a/LibMatrix.Federation/Utilities/UnpaddedBase64.cs b/LibMatrix.Federation/Utilities/UnpaddedBase64.cs
new file mode 100644

index 0000000..06f84b2 --- /dev/null +++ b/LibMatrix.Federation/Utilities/UnpaddedBase64.cs
@@ -0,0 +1,17 @@ +namespace LibMatrix.FederationTest.Utilities; + +public static class UnpaddedBase64 { + public static string Encode(byte[] data) { + return Convert.ToBase64String(data).TrimEnd('='); + } + + public static byte[] Decode(string base64) { + string paddedBase64 = base64; + switch (paddedBase64.Length % 4) { + case 2: paddedBase64 += "=="; break; + case 3: paddedBase64 += "="; break; + } + + return Convert.FromBase64String(paddedBase64); + } +} \ No newline at end of file