mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-21 18:00:16 +00:00
AK: Use new simdutf option to add padding to Base64URL encodings
This commit is contained in:
parent
60252eca2e
commit
408532c910
Notes:
github-actions[bot]
2024-08-31 05:48:18 +00:00
Author: https://github.com/trflynn89
Commit: 408532c910
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/1230
1 changed files with 3 additions and 11 deletions
|
@ -33,22 +33,14 @@ static ErrorOr<ByteBuffer> decode_base64_impl(StringView input, simdutf::base64_
|
||||||
static ErrorOr<String> encode_base64_impl(StringView input, simdutf::base64_options options)
|
static ErrorOr<String> encode_base64_impl(StringView input, simdutf::base64_options options)
|
||||||
{
|
{
|
||||||
Vector<u8> output;
|
Vector<u8> output;
|
||||||
|
TRY(output.try_resize(simdutf::base64_length_from_binary(input.length(), options)));
|
||||||
|
|
||||||
// simdutf does not append padding to base64url encodings. We use the default encoding option here to allocate room
|
simdutf::binary_to_base64(
|
||||||
// for the padding characters that we will later append ourselves if necessary.
|
|
||||||
TRY(output.try_resize(simdutf::base64_length_from_binary(input.length(), simdutf::base64_default)));
|
|
||||||
|
|
||||||
auto size_written = simdutf::binary_to_base64(
|
|
||||||
input.characters_without_null_termination(),
|
input.characters_without_null_termination(),
|
||||||
input.length(),
|
input.length(),
|
||||||
reinterpret_cast<char*>(output.data()),
|
reinterpret_cast<char*>(output.data()),
|
||||||
options);
|
options);
|
||||||
|
|
||||||
if (options == simdutf::base64_url) {
|
|
||||||
for (size_t i = size_written; i < output.size(); ++i)
|
|
||||||
output[i] = '=';
|
|
||||||
}
|
|
||||||
|
|
||||||
return String::from_utf8_without_validation(output);
|
return String::from_utf8_without_validation(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,7 +61,7 @@ ErrorOr<String> encode_base64(ReadonlyBytes input)
|
||||||
|
|
||||||
ErrorOr<String> encode_base64url(ReadonlyBytes input)
|
ErrorOr<String> encode_base64url(ReadonlyBytes input)
|
||||||
{
|
{
|
||||||
return encode_base64_impl(input, simdutf::base64_url);
|
return encode_base64_impl(input, simdutf::base64_url_with_padding);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue