gpt4 book ai didi

c++ - 使用 OpenSSL 库将 C++ 中的 BIO* 转换为 PKCS7*

转载 作者:行者123 更新时间:2023-11-30 17:58:08 25 4
gpt4 key购买 nike

我遇到了有关 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.c:381:Type = PKCS7

知道如何解决吗?是因为编码的问题吗?还是转换问题?

提前致谢

最佳答案

这可能是由于输入格式错误造成的:d2i_PKCS7_bio 需要 PKCS7 的二进制文件。

另一方面,如果您的输入是 pem 格式,您应该调用 PEM_read_bio_PKCS7。

关于c++ - 使用 OpenSSL 库将 C++ 中的 BIO* 转换为 PKCS7*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12438379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com