Re: encode/decode support for base64url
От | Florents Tselai |
---|---|
Тема | Re: encode/decode support for base64url |
Дата | |
Msg-id | CA+v5N424R-m_rVge8KKVVmJ_XwjPFOMV7oD385e81CYLMNkJdA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: encode/decode support for base64url (Florents Tselai <florents.tselai@gmail.com>) |
Ответы |
Re: encode/decode support for base64url
|
Список | pgsql-hackers |
On Sun, Mar 9, 2025 at 12:28 AM Florents Tselai <florents.tselai@gmail.com> wrote:
On 7 Mar 2025, at 4:40 PM, Aleksander Alekseev <aleksander@timescale.com> wrote:Hi,Sometimes support for base64url from RFC 4648 would be useful.
Does anyone else need a patch like this?
While not a frequent ask, it has been mentioned in the past. I think it would
make sense to add so please do submit a patch for it for consideration.
IMO it would be nice to have.
Would you like to submit such a patch or are you merely suggesting an
idea for others to implement?
--
Best regards,
Aleksander AlekseevJust to confirm:In a plan SQL flavor, we’re talking about something like this, correct?CREATE FUNCTION base64url_encode(input bytea) RETURNS text AS $$SELECT regexp_replace(replace(replace(encode(input, 'base64'), '+', '-'), '/', '_'),'=+$', '', 'g');$$ LANGUAGE sql IMMUTABLE;CREATE FUNCTION base64url_decode(input text) RETURNS bytea AS $$SELECT decode(rpad(replace(replace(input, '-', '+'), '_', '/'), (length(input) + 3) & ~3, '='),'base64');$$ LANGUAGE sql IMMUTABLE;With minimal testing, this yields the same results with https://base64.guru/standards/base64url/encodeselect base64url_encode('post+gres')base64url_encode------------------cG9zdCtncmVz(1 row)
Here's a C implementation for this, along with some tests and documentation.
Tests are copied from cpython's implementation of urlsafe_b64encode and urlsafe_b64decode.
The signatures look like this:
SELECT base64url_encode('www.postgresql.org'::bytea) → d3d3LnBvc3RncmVzcWwub3Jn
SELECT convert_from(base64url_decode('d3d3LnBvc3RncmVzcWwub3Jn'), 'UTF8') → http://www.postgresql.org
Вложения
В списке pgsql-hackers по дате отправления: