Skip to content

Commit 6b3bf89

Browse files
committed
Add Base64UrlConverter.EnableRelaxedDecoding feature
1 parent 0f0dc64 commit 6b3bf89

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

Src/Fido2.Models/Converters/Base64UrlConverter.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ namespace Fido2NetLib;
1212
/// </summary>
1313
public sealed class Base64UrlConverter : JsonConverter<byte[]>
1414
{
15+
public static bool EnableRelaxedDecoding { get; set; }
16+
1517
public override byte[] Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
1618
{
1719
byte[]? rentedBuffer = null;
@@ -39,7 +41,14 @@ public override byte[] Read(ref Utf8JsonReader reader, Type typeToConvert, JsonS
3941
{
4042
if (Base64.IsValid(source))
4143
{
42-
throw new JsonException("Expected data to be in Base64Url format, but received Base64 encoding instead");
44+
if (EnableRelaxedDecoding)
45+
{
46+
return Base64Url.DecodeFromUtf8(source);
47+
}
48+
else
49+
{
50+
throw new JsonException("Expected data to be in Base64Url format, but received Base64 encoding instead.");
51+
}
4352
}
4453
else
4554
{

0 commit comments

Comments
 (0)