/* * Copyright (c) 2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace AK { size_t size_required_to_decode_base64(StringView); ErrorOr decode_base64(StringView); ErrorOr decode_base64url(StringView); struct InvalidBase64 { Error error; size_t valid_input_bytes { 0 }; }; // On success, these return the number of input bytes that were decoded. This might be less than the // string length if the output buffer was not large enough. ErrorOr decode_base64_into(StringView, ByteBuffer&); ErrorOr decode_base64url_into(StringView, ByteBuffer&); enum class OmitPadding { No, Yes, }; ErrorOr encode_base64(ReadonlyBytes, OmitPadding = OmitPadding::No); ErrorOr encode_base64url(ReadonlyBytes, OmitPadding = OmitPadding::No); } #if USING_AK_GLOBALLY using AK::decode_base64; using AK::decode_base64url; using AK::encode_base64; using AK::encode_base64url; #endif