From 557cd8e454547616a191ee6482873874436c3931 Mon Sep 17 00:00:00 2001 From: ligd Date: Sun, 27 Jan 2019 07:20:25 -0600 Subject: [PATCH] netutils/codecs/base64.c: Add base64_[de|en]code_length() API --- include/netutils/base64.h | 2 ++ netutils/codecs/base64.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/include/netutils/base64.h b/include/netutils/base64.h index 6ca3c0a5d..d44600333 100644 --- a/include/netutils/base64.h +++ b/include/netutils/base64.h @@ -68,8 +68,10 @@ extern "C" ****************************************************************************/ #ifdef CONFIG_CODECS_BASE64 +size_t base64_encode_length(size_t len); FAR void *base64_encode(FAR const void *src, size_t len, FAR void *dst, FAR size_t *out_len); +size_t base64_decode_length(size_t len); FAR void *base64_decode(FAR const void *src, size_t len, FAR void *dst, FAR size_t *out_len); FAR void *base64w_encode(FAR const void *src, size_t len, FAR void *dst, diff --git a/netutils/codecs/base64.c b/netutils/codecs/base64.c index 5a6eae658..b38155133 100644 --- a/netutils/codecs/base64.c +++ b/netutils/codecs/base64.c @@ -256,6 +256,15 @@ static char *_base64_decode(FAR const char *src, size_t len, FAR char *dst, * Public Functions ****************************************************************************/ +/**************************************************************************** + * Name: base64_encode_length + ****************************************************************************/ + +size_t base64_encode_length(size_t len) +{ + return (len + 2) / 3 * 4; +} + /**************************************************************************** * Name: base64_encode ****************************************************************************/ @@ -266,6 +275,15 @@ FAR void *base64_encode(FAR const void *src, size_t len, FAR void *dst, return _base64_encode(src, len, dst, out_len, false); } +/**************************************************************************** + * Name: base64_decode_length + ****************************************************************************/ + +size_t base64_decode_length(size_t len) +{ + return len * 3 / 4; +} + /**************************************************************************** * Name: base64_decode ****************************************************************************/