Re: encode/decode support for base64url
От | Florents Tselai |
---|---|
Тема | Re: encode/decode support for base64url |
Дата | |
Msg-id | CA+v5N41Qs5Zpe6G+-VtiK=gLfHgzfgJij0tXHWuMXLfyHjDOYQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: encode/decode support for base64url ("David E. Wheeler" <david@justatheory.com>) |
Ответы |
Re: encode/decode support for base64url
|
Список | pgsql-hackers |
On Thu, Jul 10, 2025 at 11:55 PM David E. Wheeler <david@justatheory.com> wrote:
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’s changed at the end?
Attached
Вложения
В списке pgsql-hackers по дате отправления: