0
を使用してAES 128モードcbcでファイルを暗号化するAES 128モードcbcでファイルを暗号化する必要があります。 AESの鍵は、公開鍵X509 V3を使用して暗号化する必要があります。 バイナリファイルPKCS7に保存する必要があります。公開鍵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がクラッシュします。
クラッシュした場合、コードはどのように正しいでしょうか? – zaph
@zaph呼び出された関数のバグかもしれませんが、最初のオプションとしては入れません。 –
@flonderあなたの質問に適切な言語タグを含めるように[編集]してください:C *または* C++。 –