簡體   English   中英

使用OpenSSL庫在C ++中將BIO *轉換為PKCS7 *

[英]Converting BIO* to PKCS7* in C++ using OpenSSL library

關於BIO *到PKCS7 *的轉換,我遇到了問題。 我想調用PKCS7_decrypt()函數來解密密文。 在此之前,我有這段代碼:

in = BIO_new_mem_buf(chEnc, iLength);
if (!in) {
    fprintf(stderr, "\nError in BIO_new_mem_buf in verifyEC. STDERR: ");
    ERR_print_errors_fp(stderr);
    return 0;
}

p7 = d2i_PKCS7_bio(in, NULL);
if (!p7) {
    fprintf(stderr, "Error in d2i_PKCS7_bio.\n");
    ERR_print_errors_fp(stderr);
    return 0;
}

d2i_PKCS7_bio()始終失敗,並返回以下錯誤消息:

140172957116064:錯誤:0D0680A8:asn1編碼例程:ASN1_CHECK_TLEN:錯誤的標簽:tasn_dec.c:1319:140172957116064:錯誤:0D07803A:asn1編碼例程:ASN1_ITEM_EX_D2I:嵌套的asn1錯誤:tasn_dec.c7:381:類型

知道如何解決嗎? 這是由於編碼引起的問題嗎? 還是轉換問題?

提前致謝

這可能是由於錯誤的輸入格式所致:d2i_PKCS7_bio期望二進制為der PKCS7。

另一方面,如果您輸入的內容是pem格式,則應改為調用PEM_read_bio_PKCS7。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM