From: Stephan Bosch Date: Wed, 28 Aug 2019 22:42:14 +0000 (+0200) Subject: lib: base64 - Add flags and max_line_size parameters to the new high-level encode... X-Git-Tag: 2.3.9~262 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9f88d92519b6435239cfff129e0ad48a9b309f13;p=thirdparty%2Fdovecot%2Fcore.git lib: base64 - Add flags and max_line_size parameters to the new high-level encode functions. Cannot change the API of existing functions. --- diff --git a/src/lib/base64.h b/src/lib/base64.h index 2debd420ad..d965a69238 100644 --- a/src/lib/base64.h +++ b/src/lib/base64.h @@ -199,11 +199,12 @@ int base64_decode_finish(struct base64_decoder *dec); */ 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); } @@ -260,7 +261,7 @@ extern struct base64_scheme base64_scheme; 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 @@ -306,9 +307,11 @@ extern struct base64_scheme base64url_scheme; /* 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 diff --git a/src/lib/test-base64.c b/src/lib/test-base64.c index 8e70d58ffd..534d23139a 100644 --- a/src/lib/test-base64.c +++ b/src/lib/test-base64.c @@ -146,7 +146,8 @@ static void test_base64url_encode(void) 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( @@ -233,7 +234,7 @@ static void test_base64url_random(void) 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 &&