OpenSSL Base64解码

OpenSSL Base64解码,openssl,Openssl,我正在尝试使用openSSL库进行Base64解码,然后使用CMS来验证签名 下面的代码总是将缓冲区打印为空 char signed_data[] = "MIIO"; int signed_data_length = sizeof(signed_data); BIO *b64, *bmem; char *buffer = (char *)malloc(signed_data_length); memset(buffer, 0, signed_data_length); b64 = BIO_

我正在尝试使用openSSL库进行Base64解码,然后使用CMS来验证签名

下面的代码总是将缓冲区打印为空

char signed_data[] = "MIIO";
int signed_data_length = sizeof(signed_data);

BIO *b64, *bmem;

char *buffer = (char *)malloc(signed_data_length);
memset(buffer, 0, signed_data_length);

b64 = BIO_new(BIO_f_base64());
bmem = BIO_new_mem_buf(signed_data, signed_data_length);
bmem = BIO_push(b64, bmem);

BIO_read(bmem, buffer, signed_data_length);
printf("%s", buffer);
在BIO_new()调用之后添加BIO_set_标志(b64,BIO_标志\u BASE64\u NO_NL),以告知OpenSSL所有输入都显示在一行中,没有换行符