2

Base64 デコードに openSSL ライブラリを使用し、続いて CMS を使用して署名を検証しようとしています。

以下のコードは、常にバッファーを 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);
4

1 に答える 1

3

BIO_new() 呼び出しの後に BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL) を追加して、すべての入力が改行なしで 1 行に表示されることを OpenSSL に伝えます。

于 2013-10-02T15:22:41.173 に答える