2013-10-02 120 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的,所有的輸入出現在一行沒有換行符。