#include "string_helpers.h" #include "cpp-base64/base64.h" namespace BareMinimumCrypto { using namespace std; vector copy_to_bytes (const string & s) { return vector ((const uint8_t *)&s [0], (const uint8_t *)&s [s.size ()]); } string base64_encode (const vector & v) { return ::base64_encode (string_view ((const char *)v.data (), v.size ())); } optional > b64_decode (const string & s) { try { const auto decoded = base64_decode (s); return copy_to_bytes (decoded); } catch (const exception &) { return nullopt; } } }