On 2021-04-15 12:57, Michal Moravec wrote:
Follow-up on my previous email:
I modified my proof-of-problem program to load PKCS7 file into PKCS7
and convert it to CMS_ContentInfo using the BIO (See convert.c in the
attachment). It is similar to this:
handle_encrypted_content(SCEP *handle, SCEP_DATA *data, PKCS7 *p7env,
X509 *dec_cert, EVP_PKEY *dec_key) {
...
CMS_ContentInfo *cmsMessage = NULL;
BIO *convert = NULL;
conversion = BIO_new(BIO_s_mem());
PEM_write_bio_PKCS7(conversion, p7env);
cmsEnv = PEM_read_bio_CMS(conversion, NULL, NULL, NULL);
CMS_decrypt(cmsEnv, dec_key, dec_cert, NULL, decData, 0);
convert.c works well with my test data and CMS_decrypt successfully
decrypts the CMS_ContentInfo.
When I put this code into practice = using it in the actual library ->
https://github.com/EtneteraLogicworks/libscep/commit/d94a24b28fcf3a1c1f0dc5e48e274627eed2b3f6
Calling CMS_decrypt results in segfault inside libcrypto library:
Apr 15 12:08:36 scepdev kernel: openxpkid (main[759]: segfault at
ffffffffac6d8cd0 ip 00007f6b4d3040a0 sp 00007ffde9477738 error 5 in
libcrypto.so.1.1[7f6b4d29c000+19e000]
I have no idea how to debug this :-( Way out of my league here.
Try linking libcrypto.so.1.1 with debug symbols included (not
stripped). This should make the error message point to the
function, maybe even show the call stack.
Enjoy
Jakob
--
Jakob Bohm, CIO, Partner, WiseMo A/S. https://www.wisemo.com
Transformervej 29, 2860 Søborg, Denmark. Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded