2013-10-02 62 views
2

我想使用openSSL库进行Base64解码,然后使用CMS来验证签名。OpenSSL Base64解码

下面的代码始终将缓冲区打印为NULL。

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); 

回答

3

添加BIO_set_flags(B64,BIO_FLAGS_BASE64_NO_NL)的BIO_new()之后,打电话告诉OpenSSL的,所有的输入出现在一行没有换行符。