2
我使用下面的代碼從內存緩衝區中使用BIO_read來執行base64解碼。有時BIO_read
返回0
大小參數。我還無法弄清楚爲什麼會發生這種情況。有任何想法嗎?OpenSSL base64解碼 - BIO_read返回0
static std::vector<unsigned char> base64_decode(void *input, int length)
{
std::vector<unsigned char> result(length, 0);
BIO *b64, *bmem;
b64 = BIO_new(BIO_f_base64());
bmem = BIO_new_mem_buf(input, length);
bmem = BIO_push(b64, bmem);
int size = BIO_read(bmem, &result[0], length);
if (size == 0)
fprintf(stderr, "Problem\n");
result.resize(size);
BIO_free_all(bmem);
return result;
}
當你遇到這個問題時,你需要調用什麼參數? –