diff --git a/sys/base64/base64.c b/sys/base64/base64.c index 048fc99f4867056b464bfc914b9d9b806121e7ae..d43f1b5f8a28b8accfe72873c1711334e3b44f74 100644 --- a/sys/base64/base64.c +++ b/sys/base64/base64.c @@ -56,9 +56,10 @@ static char getsymbol(unsigned char code) return (char)BASE64_NOT_DEFINED; } -int base64_encode(unsigned char *data_in, size_t data_in_size, \ +int base64_encode(const void *data_in, size_t data_in_size, unsigned char *base64_out, size_t *base64_out_size) { + const unsigned char *in = data_in; size_t required_size = 4 * ((data_in_size + 2) / 3); if (data_in == NULL) { @@ -86,7 +87,7 @@ int base64_encode(unsigned char *data_in, size_t data_in_size, \ for (int i = 0; i < (int)(data_in_size); ++i) { unsigned char tmpval; njump++; - tmpval = *(data_in + i); + tmpval = *(in + i); nNum = (tmpval >> (2 * njump)); @@ -159,9 +160,10 @@ static int getcode(char symbol) return BASE64_NOT_DEFINED; } -int base64_decode(unsigned char *base64_in, size_t base64_in_size, \ - unsigned char *data_out, size_t *data_out_size) +int base64_decode(const unsigned char *base64_in, size_t base64_in_size, + void *data_out, size_t *data_out_size) { + unsigned char *out = data_out; size_t required_size = ((base64_in_size / 4) * 3); if (base64_in == NULL) { @@ -200,13 +202,13 @@ int base64_decode(unsigned char *base64_in, size_t base64_in_size, \ nNum = nLst + ((code & (0xFF & nm)) >> (2 * mask)); nLst = (code & (0xFF & ~nm)) << (8 - (2 * mask)); - (mask != 3) ? data_out[iterate_data_buffer++] = nNum : nNum; + (mask != 3) ? out[iterate_data_buffer++] = nNum : nNum; (mask == 0) ? mask = 3 : mask--; } if (code == BASE64_EQUALS) { /* add the last character to the data_out buffer */ - data_out[iterate_data_buffer] = nNum; + out[iterate_data_buffer] = nNum; } *data_out_size = iterate_data_buffer; diff --git a/sys/include/base64.h b/sys/include/base64.h index c678ef368af951718c4045fd270c0d5d5489b0f4..e4a039cd8db7074dca2b712a4279240d7cb58d36 100644 --- a/sys/include/base64.h +++ b/sys/include/base64.h @@ -50,7 +50,7 @@ extern "C" { BASE64_ERROR_DATA_IN if `data_in` equals NULL, BASE64_ERROR_DATA_IN_SIZE if `data_in_size` is less then 1. */ -int base64_encode(unsigned char *data_in, size_t data_in_size, \ +int base64_encode(const void *data_in, size_t data_in_size, unsigned char *base64_out, size_t *base64_out_size); /** @@ -71,8 +71,8 @@ int base64_encode(unsigned char *data_in, size_t data_in_size, \ BASE64_ERROR_DATA_IN if `base64_in` equals NULL, BASE64_ERROR_DATA_IN_SIZE if `base64_in_size` is less then 4. */ -int base64_decode(unsigned char *base64_in, size_t base64_in_size, \ - unsigned char *data_out, size_t *data_out_size); +int base64_decode(const unsigned char *base64_in, size_t base64_in_size, + void *data_out, size_t *data_out_size); #ifdef __cplusplus }