Re: encode/decode support for base64url
От | David E. Wheeler |
---|---|
Тема | Re: encode/decode support for base64url |
Дата | |
Msg-id | 961242C4-01FE-473E-B7E1-B5AB0B6E3738@justatheory.com обсуждение исходный текст |
Ответ на | Re: encode/decode support for base64url (Florents Tselai <florents.tselai@gmail.com>) |
Ответы |
Re: encode/decode support for base64url
|
Список | pgsql-hackers |
On Jul 10, 2025, at 16:38, Florents Tselai <florents.tselai@gmail.com> wrote: > Why isn’t this sufficient? > > static uint64 > pg_base64_encode_internal(const char *src, size_t len, char *dst, bool url) > { > const char *alphabet = url ? _base64url : _base64; Ah, it is. I hadn’t got that far. I was tripped up to see this in your patch: ```patch +static uint64 +pg_base64url_encode(const char *src, size_t len, char *dst) +{ + uint64 encoded_len; + if (len == 0) + return 0; + + encoded_len = pg_base64_encode(src, len, dst); + + /* Convert Base64 to Base64URL */ + for (uint64 i = 0; i < encoded_len; i++) { + if (dst[i] == '+') + dst[i] = '-'; + else if (dst[i] == '/') + dst[i] = '_'; + } + + /* Trim '=' padding */ + while (encoded_len > 0 && dst[encoded_len - 1] == '=') + encoded_len--; + + return encoded_len; +} ``` I didn’t realize it was a set of patches for stuff you did and then later undid. Could you flatten the patch into just what’schanged at the end? Best, David
Вложения
В списке pgsql-hackers по дате отправления: