20 const std::string magic_string =
"258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
21 std::string combined = client_key + magic_string;
23 unsigned char hash[SHA_DIGEST_LENGTH];
24 SHA1(
reinterpret_cast<const unsigned char*
>(combined.c_str()), combined.length(), hash);
27 int expected_len = 4 * ((SHA_DIGEST_LENGTH + 2) / 3);
28 std::string base64_key(
static_cast<size_t>(expected_len),
'\0');
30 int encoded_len = EVP_EncodeBlock(
31 reinterpret_cast<unsigned char*
>(&base64_key[0]),
36 base64_key.resize(
static_cast<size_t>(encoded_len));