*/
static inline void
base64_scheme_encode(const struct base64_scheme *b64,
+ enum base64_encode_flags flags, size_t max_line_len,
const void *src, size_t src_size, buffer_t *dest)
{
struct base64_encoder enc;
- base64_encode_init(&enc, b64, 0, 0);
+ base64_encode_init(&enc, b64, flags, max_line_len);
base64_encode_more(&enc, src, src_size, NULL, dest);
base64_encode_finish(&enc, dest);
}
static inline void
base64_encode(const void *src, size_t src_size, buffer_t *dest)
{
- base64_scheme_encode(&base64_scheme, src, src_size, dest);
+ base64_scheme_encode(&base64_scheme, 0, 0, src, src_size, dest);
}
/* Translates base64 data into binary and appends it to dest buffer. See
/* Translates binary data into base64url. See base64_scheme_encode(). */
static inline void
-base64url_encode(const void *src, size_t src_size, buffer_t *dest)
+base64url_encode(enum base64_encode_flags flags, size_t max_line_len,
+ const void *src, size_t src_size, buffer_t *dest)
{
- base64_scheme_encode(&base64url_scheme, src, src_size, dest);
+ base64_scheme_encode(&base64url_scheme, flags, max_line_len,
+ src, src_size, dest);
}
/* Translates base64url data into binary and appends it to dest buffer. See
str = t_str_new(256);
for (i = 0; i < N_ELEMENTS(tests); i++) {
str_truncate(str, 0);
- base64url_encode(tests[i].input, strlen(tests[i].input), str);
+ base64url_encode(0, 0, tests[i].input, strlen(tests[i].input),
+ str);
test_assert_idx(strcmp(tests[i].output, str_c(str)) == 0, i);
test_assert_idx(
str_len(str) == MAX_BASE64_ENCODED_SIZE(
str_truncate(str, 0);
str_truncate(dest, 0);
- base64url_encode(buf, max, str);
+ base64url_encode(0, 0, buf, max, str);
test_assert_idx(base64url_decode(0, str_data(str), str_len(str),
dest) >= 0, i);
test_assert_idx(str_len(dest) == max &&