src/server/util/util.c

changeset 127
84e206063b64
parent 119
155cbab9eefd
child 256
19259b6c5cf7
equal deleted inserted replaced
126:631aaa01b2b5 127:84e206063b64
57 #include <ucx/mempool.h> 57 #include <ucx/mempool.h>
58 58
59 #include "pblock.h" 59 #include "pblock.h"
60 #include "util.h" 60 #include "util.h"
61 61
62 #include <openssl/bio.h>
63 #include <openssl/buffer.h>
64 #include <openssl/evp.h>
62 65
63 66
64 /* ------------------------------ _uudecode ------------------------------- */ 67 /* ------------------------------ _uudecode ------------------------------- */
65 68
66 static const unsigned char pr2six[256] = { 69 static const unsigned char pr2six[256] = {
107 else 110 else
108 nbytesdecoded -= 1; 111 nbytesdecoded -= 1;
109 } 112 }
110 113
111 return nbytesdecoded; 114 return nbytesdecoded;
115 }
116
117 char* util_base64encode(char *in, size_t len) {
118 BIO *b;
119 BIO *e;
120 BUF_MEM *mem;
121
122 e = BIO_new(BIO_f_base64());
123 b = BIO_new(BIO_s_mem());
124 BIO_set_flags(e, BIO_FLAGS_BASE64_NO_NL);
125
126 e = BIO_push(e, b);
127 BIO_write(e, in, len);
128 BIO_flush(e);
129
130 BIO_get_mem_ptr(e, &mem);
131 char *out = malloc(mem->length + 1);
132 memcpy(out, mem->data, mem->length);
133 out[mem->length] = '\0';
134
135 BIO_free_all(e);
136
137 return out;
112 } 138 }
113 139
114 140
115 /* --------------------------- util_env_create ---------------------------- */ 141 /* --------------------------- util_env_create ---------------------------- */
116 142

mercurial