returning length in base64_decode

This commit is contained in:
Václav Šmejkal 2025-01-30 19:58:44 +01:00
parent 210d23369b
commit c8d197f6b9
Signed by: ENGO150
GPG Key ID: 4A57E86482968843

View File

@ -66,14 +66,14 @@ char *base64_encode(char *message, size_t length)
return encoded_message;
}
char *base64_decode(char *encoded_message)
char *base64_decode(char *encoded_message, size_t *length)
{
//VARIABLES
BIO *bio;
BIO *b64;
char *separator_ptr = strrchr(encoded_message, WHY2_CHAT_BASE64_LENGTH_DELIMITER); //GET THE DELIMITER POINTER
size_t length = strtoull(separator_ptr + 1, NULL, 10);
char* decoded_message = why2_malloc(length + 1);
*length = strtoull(separator_ptr + 1, NULL, 10);
char* decoded_message = why2_malloc(*length + 1);
int decoded_length;
//INIT BIOs
@ -83,7 +83,7 @@ char *base64_decode(char *encoded_message)
bio = BIO_push(b64, bio);
//DECODE
decoded_length = BIO_read(bio, decoded_message, length);
decoded_length = BIO_read(bio, decoded_message, *length);
//NULL-TERM
decoded_message[decoded_length] = '\0';