Dec. 31st, 2015
Overdesign
Dec. 31st, 2015 10:29 amstd::string base64(const std::string& value) { BIO* bio = BIO_new(BIO_f_base64()); BIO_set_flags(bio, BIO_FLAGS_BASE64_NO_NL); BIO_push(bio, BIO_new(BIO_s_mem())); BIO_write(bio, value.c_str(), value.size()); BIO_flush(bio); std::string res; char* data = nullptr; size_t size = BIO_get_mem_data(bio, &data); if (size != 0 && data != nullptr) res.assign(data, size); BIO_free_all(bio); return res; }
Насправді більше, бо треба ж перевіряти виділення пам'яті...