src/server/util/util.c

changeset 127
84e206063b64
parent 119
155cbab9eefd
child 256
19259b6c5cf7
--- 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 ---------------------------- */
 

mercurial