gpt4 book ai didi

c++ - 使用公钥 X509 V3 (PKCS7) 使用 AES 128 模式 cbc 加密文件

转载 作者:行者123 更新时间:2023-11-30 16:48:47 25 4
gpt4 key购买 nike

我需要使用 AES 128 模式 cbc 加密文件。AES的 key 需要使用公钥X509 V3进行加密。所有这些都需要保存在二进制文件PKCS7中。

BIO* certBIO = BIO_new_mem_buf((void*)&certData[0], certData.size());
if (certBIO)
x509 = d2i_X509_bio(certBIO, 0);
BIO_free(certBIO);

sk_X509_push(x509_stack, x509);

BIO* bio = BIO_new(BIO_s_mem());
BIO_write(bio, &inData[0], inData.size());
BIO_flush(bio);

PKCS7* pkcs7_encrypt = PKCS7_encrypt(x509_stack, bio, EVP_aes_128_cbc(), PKCS7_BINARY);

FILE *fpPKCS7 = fopen(szPKCS7File, "wb");
if (!fpPKCS7)
return 1;

i2d_PKCS7_fp(fpPKCS7, pkcs7_encrypt);
fclose(fpPKCS7);
X509_free(x509);
sk_X509_pop_free(x509_stack, X509_free);

代码正确吗?函数 i2d_PKCS7_fp 崩溃。

最佳答案

我找到了解决方案:

PKCS7* pkcs7_encrypt = PKCS7_encrypt(x509_stack, bioIn, EVP_aes_128_cbc(), PKCS7_BINARY);

BIO *bioOut = BIO_new(BIO_s_file());
BIO_write_filename(bioOut, szPKCS7File);
i2d_PKCS7_bio(bioOut, pkcs7_encrypt);

但是我还有一个问题。该文件中到底包含哪些信息?是否包含通过证书公钥进行AES加密的 key ?

关于c++ - 使用公钥 X509 V3 (PKCS7) 使用 AES 128 模式 cbc 加密文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42834835/

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