--- a/src/server/util/util.c Sun Oct 30 11:44:04 2016 +0100 +++ b/src/server/util/util.c Mon Dec 26 14:00:10 2016 +0100 @@ -59,6 +59,9 @@ #include "pblock.h" #include "util.h" +#include <openssl/bio.h> +#include <openssl/buffer.h> +#include <openssl/evp.h> /* ------------------------------ _uudecode ------------------------------- */ @@ -111,6 +114,29 @@ return nbytesdecoded; } +char* util_base64encode(char *in, size_t len) { + BIO *b; + BIO *e; + BUF_MEM *mem; + + e = BIO_new(BIO_f_base64()); + b = BIO_new(BIO_s_mem()); + BIO_set_flags(e, BIO_FLAGS_BASE64_NO_NL); + + e = BIO_push(e, b); + BIO_write(e, in, len); + BIO_flush(e); + + BIO_get_mem_ptr(e, &mem); + char *out = malloc(mem->length + 1); + memcpy(out, mem->data, mem->length); + out[mem->length] = '\0'; + + BIO_free_all(e); + + return out; +} + /* --------------------------- util_env_create ---------------------------- */