Я отвечу сам.
Фрагмент моего кода на C ++:
BIO* output = BIO_new(BIO_s_mem());//init
CMS_ContentInfo* cms = CMS_encrypt(certs, NULL, cipher, CMS_STREAM | CMS_BINARY);//init
BIO* input = BIO_new_CMS(output, cms);//init
BIO_write(input, pbData, cbData);//For multiple calls - adding data for cms structure
std::vector<uint8_t> cmsBuf = ReadMemBio(m_output);//For multiple calls - get encrypted data in order to send it to client, which save it to a file.
BIO_flush(input);//finalizing
Надеюсь, он кому-нибудь пригодится. Если у вас есть какие-либо вопросы - просто спросите меня.